Показать сообщение отдельно
  #1  
Старый 06.02.2018, 17:25
Henri Laan
Guest
 
Сообщений: n/a
По умолчанию Несколько линков и исходящие сессии

Henri Laan написал(а) к All в Feb 18 15:34:40 по местному времени:

Нello, All.

Все отлично работает, если один аплинк. Пишем письмо, сразу идет прозвонка на аплинка, т.е. исходящая сессия.
После добавления второго аплинка - тоже все хорошо, но до той поры, пока мы не напишем какое-либо одно письмо.
В логе сразу появляется вот такая ошибка:
======
Exception in thread "Timer-0" java.lang.NullPointerException
at jnode.ftn.FtnTools.getRoutingFallback(FtnTools.java:929)
at jnode.main.threads.NetmailFallback.run(NetmailFallback.java:57)
at java.util.TimerThread.mainLoop(Timer.java:555)
at java.util.TimerThread.run(Timer.java:505)
======
Вот тут-то прозвонки куда-либо перестают происходить, письмо висит неотроученное и, что интересно, заодно перестает валиться статистика по линкам в локалку. Спасает только то, что аплинки нынче добрые и "отзваниваются" сами и отдают эхи.
Такая же ошибка возникает и при каждом перезапуске jnode.

Причина ошибки в отсутствии роутинга.

Для решения проблемы достаточно указать дефолтный роутинг. Делает это на вкладке "Роутинг" в веб-интерейсе.
При заходе на вкладку мы видим незаполненные поля для создания записи. Это немноо вводит в ступор, однако, если тыркнуть на кнопку "Новый маршрут" все становится более или менее понятно. Для указания дефолтного роутинга можно просто оставить все по-умолчанию, только в выпадающем списке аплинков выбрать нужный адрес аплинка.
После этого сразу опять все начинает работать - нетмейл ходит, прозвонки идут, статистика в эху постится.

Ну и естественно, что дефолтного роутинга при двух и более аплинков недостаточно - не будем же те же запросы к ареафиксу по ротингу слать.
Поэтому добавляем маршруты на каждого линка. Приоритет делаем по-порядку, с шагом в 50, например (это чтобы можно потом удобно добавлять или менять приоритеты без переписывания всех правил). Оставляем звездочки по всех полях, кроме поля "Адрес получателя". В этом поле указываем адрес линка в виде регекспа, наппример так:
2:46\/49(\.|$)
С помощью данного регекспа будет роутится почта как на .0, так и на всех остальных поинтов.

Спасибо @kreon'у, который помог разобраться с причинами возникновния данной ошибки.
Надеюсь, что это поможет еще кому-то в подобной ситуации, т.к. в доке и вики это все не описано.


Best regards, Нenri Laan.
---
Ответить с цитированием