BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 23 июн 2024, 07:54

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 262 ]  На страницу Пред.  1, 2, 3, 4, 5 ... 9  След.
Автор Сообщение
 Заголовок сообщения: Re: Общие баги, проблемы
СообщениеДобавлено: 27 май 2013, 21:05 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Выложили
- универсальный getAcceptedSet(String name)
и фильтр по типу сервиса.


- Опции из всех типов трафика, а не только из последнего
Должно из всех выдавать. Если все типы трафика есть в привязке трафиков, которая назначена типу сервиса.
И если опции не внутри одной ветки, у которой не стоит галочка "пересечение возможно" (т.е. если опции не сгруппированы с запрещением пересекаться - тогда последняя всегда перетирает все другие из этой же группы).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Общие баги, проблемы
СообщениеДобавлено: 28 май 2013, 07:24 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Спасибо!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Общие баги, проблемы
СообщениеДобавлено: 28 май 2013, 11:12 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
А остальное когда ждать?
- График по сессиям в отчётах договора
- Ограничение "тип сервиса" - "типы устройств"
- Перенос сессий вслед за сервисом Inet задним числом
- Отображение тарифного узла "Обработчик"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Общие баги, проблемы
СообщениеДобавлено: 28 май 2013, 14:14 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
+ косметика:
Устройства -> просмотр интерфейсов устройства -> использование интерфейса
Сделайте пожалуйста, чтобы по двойному клику на строчку использования интерфейса открывался соответствующий договор, как это происходит в модуле phone.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Общие баги, проблемы
СообщениеДобавлено: 30 май 2013, 08:14 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
+ косметика: возможность сортировки по полям в списке интерфейсов устройства

например, здесь трудно найти интерфейс по названию, т.к. они не упорядочены по нему
Вложение:
ifaces.png
ifaces.png [ 36.83 КБ | Просмотров: 26623 ]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Общие баги, проблемы
СообщениеДобавлено: 30 май 2013, 08:19 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Ещё про интерфейсы: импортировал их из IPN через API, при этом создался интерфейс ANY с номером "-1". Ок.
Но в подписчиках этого интерфейса числятся вообще все интерфейсы устройства.
Думаю, нужно запретить добавлять интерфейсы с id<0 (<=0 ?)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Общие баги, проблемы
СообщениеДобавлено: 30 май 2013, 10:04 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
+ статистику по активным сессиям если не через jmx, то хотя бы в консоли сделайте: viewtopic.php?p=64750#p64750


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Общие баги, проблемы
СообщениеДобавлено: 30 май 2013, 12:48 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
+ Сделать ещё один servSearchMode по имени интерфейса, а не только по номеру (viewtopic.php?p=64530#p64530 и ниже)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Общие баги, проблемы
СообщениеДобавлено: 30 май 2013, 13:11 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Запилил в первый пост список хотелок.
Буду там редактировать по мере необходимости.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Общие баги, проблемы
СообщениеДобавлено: 31 май 2013, 07:07 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Возник вопрос.
Сейчас, если цена в тарифе на один из типов трафиков не найдена, то сессия сбрасывается.
Правильно ли это? Ведь авторизация всё равно скорее всего пройдёт и ситуация повторится. Не лучше ли просто сыпать ошибки и не трогать сессию? Если накосячить в одном тарифе, можно вызывать шторм переавторизаций для пачки клиентов => нагрузка на базу и радиус.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Общие баги, проблемы
СообщениеДобавлено: 31 май 2013, 13:46 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
http://bgbilling.ru/v5.2/doc/ch18s03.html

Цитата:
# Проверка цены в тарифе: 0 - проверка отсутсвует, 1 - ошибка только? если у сессии есть трафик определенного типа,
# но для него нет цены, 2 - ошибка? если хотя бы для одного типа трафика в привязке типа сервиса нет цены (по умолчанию - 1)
#accounting.tariffication.checkPrice=1
Alarm на почту отправится в любом случае.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Общие баги, проблемы
СообщениеДобавлено: 31 май 2013, 14:44 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Аларм я заметил, всё верно.
Мне кажется правильным, чтобы аларм высылался, но сессия не сбрасывалась в режиме 1. Или сбрасывалась только если нет цены для


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Общие баги, проблемы
СообщениеДобавлено: 31 май 2013, 15:14 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Так при режиме 0 так и будет, проверка отсутствует - имеется ввиду, что сессия не сбросится (но аларм пошлется).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Общие баги, проблемы
СообщениеДобавлено: 02 июн 2013, 07:58 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
ok then


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Общие баги, проблемы
СообщениеДобавлено: 03 июн 2013, 13:18 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
+ косметика - подстановка мыла пользователя в клиенте, когда заказываешь детализацию по сессии.
Вложение:
email-detail.png
email-detail.png [ 25.79 КБ | Просмотров: 26560 ]


Последний раз редактировалось Cromeshnic 03 июн 2013, 14:52, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Общие баги, проблемы
СообщениеДобавлено: 03 июн 2013, 14:25 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Проблема с Netflow-детализацией.

Клиент: вер. 5.2 сборка 1158 от 08.04.2013 14:44:15
os: Windows 7; java: Java HotSpot(TM) 64-Bit Server VM, v.1.6.0_41
Сервер: вер. 5.2 сборка 1474 от 08.04.2013 14:44:23
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.6.0_22

inet вер. 5.2 сборка 1141 от 08.04.2013 14:44:22

Пытаюсь получить детализацию по IPoE-сессии из файлов модуля IPN в модуле Inet.
Схема следующая:
Cisco vlan per user + cisco ip subscriber interface.
netflow сыпется в коллектор IPN и там успешно считается. Детализация по нему в модуле IPN тоже работает.

Что делаю в биллинге:
- На сервисе Inet указывается девайс+порт. У порта на устройстве указывается верный ifindex для netflow. IP-адреса на сервисе не указываются - они нам не нужны.
- ip subscriber interface успешно авторизуется в радиусе модуля Inet (по порту и устройству через самописный ProtocolHandler), создаются дочерние сессии ISG, бегает и считается трафик - всё ок.
- Создаю в BGInetAccounting/data/flow линки на директории с логами, которую использует модуль IPN:
Код:
ln -s -T /mnt/flow/flow_export_converted/source_51 source_5
ln -s -T /mnt/flow/flow_export_converted/source_27 source_10
...


Захожу на договор. На договоре одновременно заведён и сервис Inet и диапазон IPN для одного и того же интерфейса.
Убеждаюсь в отчётах, что трафик netflow на интерфейсе за нужный день есть в модуле IPN. Высылаю детализацию через модуль IPN - всё приходит. Пытаюсь выслать детализацию по сессии модуля Inet за тот же день - приходит пустая. Включаю дебаг а логах BGInetAccounting, рестартую, повторяю.
Далее 2 случая : для Cisco ASR и для Cisco 7201.
Разница в том, что ASR шлёт мне Framed-Ip-Address, а cisco 7201 - нет.
В результате на сессии в модуле Inet для ASR прописывается IP, а для 7201 - нет.

Для ASR:
Inet:
Вложение:
asr-inet.png
asr-inet.png [ 35.02 КБ | Просмотров: 26562 ]

IPN:
Вложение:
asr-ipn.png
asr-ipn.png [ 43.19 КБ | Просмотров: 26562 ]

Лог:
Код:
06-03/17:00:00 DEBUG [detail-worker] Consumer - Caught from BGBillingServer Event[ru.bitel.bgbilling.modules.inet.accounting.detail.event.InetDetailCreateEvent] moduleId: 30; pluginId: no; cid: global; scid: -1; userId: -1; timestamp: 1370246400255
06-03/17:00:00  INFO [detail-worker] FlowDetailMaker - Memory total: 296 026 112; max: 477 233 152; free: 136 358 000
Memory pools:
  Non-heap memory[Code Cache]: max: 50 331 648; used: 4 906 432; peek: 4 918 912
  Heap memory[PS Eden Space]: max: 143 327 232; used: 67 571 600; peek: 123 863 040
  Heap memory[PS Survivor Space]: max: 15 859 712; used: 8 565 576; peek: 17 231 288
  Heap memory[PS Old Gen]: max: 357 957 632; used: 83 530 936; peek: 83 530 936
  Non-heap memory[PS Perm Gen]: max: 88 080 384; used: 41 581 288; peek: 41 581 288
Thread count: 45
06-03/17:00:00  INFO [detail-worker] FlowDetailMaker - Creating session detail for inetServ:212:Gi0/0/3.35 from 01.06.2013 00:00:00
06-03/17:00:00 DEBUG [detail-worker] IPHourlyDataLog - Opening /usr/local/BGInetAccounting-VPN/data/flow/source_5/2013/06/01/log_00
06-03/17:00:01 DEBUG [detail-worker] DataLog - DataLog file [data/flow/source_5/2013/06/01/log_00] was closed
06-03/17:00:01 DEBUG [detail-worker] IPHourlyDataLog - Opening /usr/local/BGInetAccounting-VPN/data/flow/source_5/2013/06/01/log_01
06-03/17:00:02 DEBUG [detail-worker] DataLog - DataLog file [data/flow/source_5/2013/06/01/log_01] was closed
06-03/17:00:02 DEBUG [detail-worker] IPHourlyDataLog - Opening /usr/local/BGInetAccounting-VPN/data/flow/source_5/2013/06/01/log_02
06-03/17:00:03 DEBUG [detail-worker] DataLog - DataLog file [data/flow/source_5/2013/06/01/log_02] was closed
06-03/17:00:03 DEBUG [detail-worker] IPHourlyDataLog - Opening /usr/local/BGInetAccounting-VPN/data/flow/source_5/2013/06/01/log_03
06-03/17:00:04 DEBUG [detail-worker] DataLog - DataLog file [data/flow/source_5/2013/06/01/log_03] was closed
06-03/17:00:04 DEBUG [detail-worker] IPHourlyDataLog - Opening /usr/local/BGInetAccounting-VPN/data/flow/source_5/2013/06/01/log_04
06-03/17:00:05 DEBUG [detail-worker] DataLog - DataLog file [data/flow/source_5/2013/06/01/log_04] was closed
06-03/17:00:05 DEBUG [detail-worker] IPHourlyDataLog - Opening /usr/local/BGInetAccounting-VPN/data/flow/source_5/2013/06/01/log_05
06-03/17:00:06 DEBUG [detail-worker] DataLog - DataLog file [data/flow/source_5/2013/06/01/log_05] was closed
06-03/17:00:06 DEBUG [detail-worker] IPHourlyDataLog - Opening /usr/local/BGInetAccounting-VPN/data/flow/source_5/2013/06/01/log_06
06-03/17:00:07 DEBUG [detail-worker] DataLog - DataLog file [data/flow/source_5/2013/06/01/log_06] was closed
06-03/17:00:07 DEBUG [detail-worker] IPHourlyDataLog - Opening /usr/local/BGInetAccounting-VPN/data/flow/source_5/2013/06/01/log_07
06-03/17:00:08 DEBUG [detail-worker] DataLog - DataLog file [data/flow/source_5/2013/06/01/log_07] was closed
06-03/17:00:08 DEBUG [detail-worker] IPHourlyDataLog - Opening /usr/local/BGInetAccounting-VPN/data/flow/source_5/2013/06/01/log_08
06-03/17:00:08 DEBUG [detail-worker] DataLog - DataLog file [data/flow/source_5/2013/06/01/log_08] was closed
06-03/17:00:08 DEBUG [detail-worker] IPHourlyDataLog - Opening /usr/local/BGInetAccounting-VPN/data/flow/source_5/2013/06/01/log_09
06-03/17:00:10 DEBUG [detail-worker] DataLog - DataLog file [data/flow/source_5/2013/06/01/log_09] was closed
06-03/17:00:10 DEBUG [detail-worker] IPHourlyDataLog - Opening /usr/local/BGInetAccounting-VPN/data/flow/source_5/2013/06/01/log_10
06-03/17:00:11 DEBUG [detail-worker] DataLog - DataLog file [data/flow/source_5/2013/06/01/log_10] was closed
06-03/17:00:11 DEBUG [detail-worker] IPHourlyDataLog - Opening /usr/local/BGInetAccounting-VPN/data/flow/source_5/2013/06/01/log_11
06-03/17:00:12 DEBUG [detail-worker] DataLog - DataLog file [data/flow/source_5/2013/06/01/log_11] was closed
06-03/17:00:12  INFO [detail-worker] FlowDetailMaker - Detail sending to *****; subject Traffic detail
06-03/17:00:12  INFO [detail-worker] FlowDetailMaker - Memory total: 280 756 224; max: 477 233 152; free: 118 136 856
Memory pools:
  Non-heap memory[Code Cache]: max: 50 331 648; used: 4 948 736; peek: 4 950 208
  Heap memory[PS Eden Space]: max: 156 237 824; used: 75 290 472; peek: 123 863 040
  Heap memory[PS Survivor Space]: max: 3 801 088; used: 3 765 192; peek: 17 231 288
  Heap memory[PS Old Gen]: max: 357 957 632; used: 83 563 704; peek: 83 563 704
  Non-heap memory[PS Perm Gen]: max: 88 080 384; used: 41 583 096; peek: 41 583 096
Thread count: 44
06-03/17:00:12  INFO [detail-worker] FlowDetailMaker - Detail created and sended by 12309, sending to *****


Детализация в IPN есть, а в Inet - по сессии - пустая.

Для 7201 (без Framed-Ip-Address):
Inet:
Вложение:
7201-inet.png
7201-inet.png [ 36.31 КБ | Просмотров: 26562 ]

IPN:
(не даёт делать > 3 вложений)
Лог:
Код:
06-03/17:19:54 DEBUG [detail-worker] Consumer - Caught from BGBillingServer Event[ru.bitel.bgbilling.modules.inet.accounting.detail.event.InetDetailCreateEvent] moduleId: 30; pluginId: no; cid: global; scid: -1; userId: -1; timestamp: 1370247594648
06-03/17:19:54  INFO [detail-worker] FlowDetailMaker - Memory total: 288 096 256; max: 477 233 152; free: 124 203 112
Memory pools:
  Non-heap memory[Code Cache]: max: 50 331 648; used: 4 982 912; peek: 4 984 320
  Heap memory[PS Eden Space]: max: 146 604 032; used: 75 717 024; peek: 123 863 040
  Heap memory[PS Survivor Space]: max: 14 221 312; used: 3 506 416; peek: 17 231 288
  Heap memory[PS Old Gen]: max: 357 957 632; used: 84 669 704; peek: 84 669 704
  Non-heap memory[PS Perm Gen]: max: 88 080 384; used: 41 605 560; peek: 41 605 560
Thread count: 46
06-03/17:19:54  INFO [detail-worker] FlowDetailMaker - Creating session detail for inetServ:735:Gi0/0.72 from 01.06.2013 10:33:57
06-03/17:19:54  INFO [detail-worker] FlowDetailMaker - Detail sending to *****; subject Traffic detail
06-03/17:19:54  INFO [detail-worker] FlowDetailMaker - Memory total: 288 096 256; max: 477 233 152; free: 120 240 328
Memory pools:
  Non-heap memory[Code Cache]: max: 50 331 648; used: 5 060 480; peek: 5 061 888
  Heap memory[PS Eden Space]: max: 146 604 032; used: 79 679 808; peek: 123 863 040
  Heap memory[PS Survivor Space]: max: 14 221 312; used: 3 506 416; peek: 17 231 288
  Heap memory[PS Old Gen]: max: 357 957 632; used: 84 669 704; peek: 84 669 704
  Non-heap memory[PS Perm Gen]: max: 88 080 384; used: 41 607 256; peek: 41 607 256
Thread count: 46
06-03/17:19:54  INFO [detail-worker] FlowDetailMaker - Detail created and sended by 254, sending to *****


Тоже приходит пустая детализация по сессии, но, судя по логам, он даже файлы не читает.
Вероятно, это потому, что у сессии нет IP-адреса.


И третий вариант, который я вообще не понимаю, почему не работает.
Детализация за период по сервису:
Код:
06-03/17:22:29 DEBUG [detail-worker] Consumer - Caught from BGBillingServer Event[ru.bitel.bgbilling.modules.inet.accounting.detail.event.InetDetailCreateEvent] moduleId: 30; pluginId: no; cid: global; scid: -1; userId: -1; timestamp: 1370247749914
06-03/17:22:29  INFO [detail-worker] FlowDetailMaker - Memory total: 276 758 528; max: 477 233 152; free: 180 489 200
Memory pools:
  Non-heap memory[Code Cache]: max: 50 331 648; used: 5 081 344; peek: 5 083 136
  Heap memory[PS Eden Space]: max: 156 106 752; used: 2 088 032; peek: 123 863 040
  Heap memory[PS Survivor Space]: max: 5 832 704; used: 5 767 568; peek: 17 231 288
  Heap memory[PS Old Gen]: max: 357 957 632; used: 88 413 728; peek: 88 413 728
  Non-heap memory[PS Perm Gen]: max: 88 080 384; used: 41 611 872; peek: 41 611 872
Thread count: 45
06-03/17:22:29  INFO [detail-worker] FlowDetailMaker - Creating session detail for inetServ:735:Gi0/0.72 from 01.06.2013 00:00:00
06-03/17:22:29 DEBUG [detail-worker] IPHourlyDataLog - Opening /usr/local/BGInetAccounting-VPN/data/flow/source_10/2013/06/01/log_00
06-03/17:22:30 DEBUG [detail-worker] DataLog - DataLog file [data/flow/source_10/2013/06/01/log_00] was closed
06-03/17:22:30 DEBUG [detail-worker] IPHourlyDataLog - Opening /usr/local/BGInetAccounting-VPN/data/flow/source_10/2013/06/01/log_01
06-03/17:22:31 DEBUG [detail-worker] DataLog - DataLog file [data/flow/source_10/2013/06/01/log_01] was closed
06-03/17:22:31 DEBUG [detail-worker] IPHourlyDataLog - Opening /usr/local/BGInetAccounting-VPN/data/flow/source_10/2013/06/01/log_02
06-03/17:22:31 DEBUG [detail-worker] DataLog - DataLog file [data/flow/source_10/2013/06/01/log_02] was closed
06-03/17:22:31 DEBUG [detail-worker] IPHourlyDataLog - Opening /usr/local/BGInetAccounting-VPN/data/flow/source_10/2013/06/01/log_03
06-03/17:22:31 DEBUG [detail-worker] DataLog - DataLog file [data/flow/source_10/2013/06/01/log_03] was closed
06-03/17:22:31 DEBUG [detail-worker] IPHourlyDataLog - Opening /usr/local/BGInetAccounting-VPN/data/flow/source_10/2013/06/01/log_04
06-03/17:22:32 DEBUG [detail-worker] DataLog - DataLog file [data/flow/source_10/2013/06/01/log_04] was closed
06-03/17:22:32 DEBUG [detail-worker] IPHourlyDataLog - Opening /usr/local/BGInetAccounting-VPN/data/flow/source_10/2013/06/01/log_05
06-03/17:22:32 DEBUG [detail-worker] DataLog - DataLog file [data/flow/source_10/2013/06/01/log_05] was closed
06-03/17:22:32 DEBUG [detail-worker] IPHourlyDataLog - Opening /usr/local/BGInetAccounting-VPN/data/flow/source_10/2013/06/01/log_06
06-03/17:22:32 DEBUG [detail-worker] DataLog - DataLog file [data/flow/source_10/2013/06/01/log_06] was closed
06-03/17:22:32 DEBUG [detail-worker] IPHourlyDataLog - Opening /usr/local/BGInetAccounting-VPN/data/flow/source_10/2013/06/01/log_07
06-03/17:22:33 DEBUG [detail-worker] DataLog - DataLog file [data/flow/source_10/2013/06/01/log_07] was closed
06-03/17:22:33 DEBUG [detail-worker] IPHourlyDataLog - Opening /usr/local/BGInetAccounting-VPN/data/flow/source_10/2013/06/01/log_08
06-03/17:22:33 DEBUG [detail-worker] DataLog - DataLog file [data/flow/source_10/2013/06/01/log_08] was closed
06-03/17:22:33 DEBUG [detail-worker] IPHourlyDataLog - Opening /usr/local/BGInetAccounting-VPN/data/flow/source_10/2013/06/01/log_09
06-03/17:22:34 DEBUG [detail-worker] DataLog - DataLog file [data/flow/source_10/2013/06/01/log_09] was closed
06-03/17:22:34 DEBUG [detail-worker] IPHourlyDataLog - Opening /usr/local/BGInetAccounting-VPN/data/flow/source_10/2013/06/01/log_10
06-03/17:22:35 DEBUG [detail-worker] DataLog - DataLog file [data/flow/source_10/2013/06/01/log_10] was closed
06-03/17:22:35 DEBUG [detail-worker] IPHourlyDataLog - Opening /usr/local/BGInetAccounting-VPN/data/flow/source_10/2013/06/01/log_11
06-03/17:22:36 DEBUG [detail-worker] DataLog - DataLog file [data/flow/source_10/2013/06/01/log_11] was closed
06-03/17:22:36 DEBUG [detail-worker] IPHourlyDataLog - Opening /usr/local/BGInetAccounting-VPN/data/flow/source_10/2013/06/01/log_12
06-03/17:22:36 DEBUG [detail-worker] DataLog - DataLog file [data/flow/source_10/2013/06/01/log_12] was closed
06-03/17:22:36 DEBUG [detail-worker] IPHourlyDataLog - Opening /usr/local/BGInetAccounting-VPN/data/flow/source_10/2013/06/01/log_13
06-03/17:22:37 DEBUG [detail-worker] DataLog - DataLog file [data/flow/source_10/2013/06/01/log_13] was closed
06-03/17:22:37 DEBUG [detail-worker] IPHourlyDataLog - Opening /usr/local/BGInetAccounting-VPN/data/flow/source_10/2013/06/01/log_14
06-03/17:22:38 DEBUG [detail-worker] DataLog - DataLog file [data/flow/source_10/2013/06/01/log_14] was closed
06-03/17:22:38 DEBUG [detail-worker] IPHourlyDataLog - Opening /usr/local/BGInetAccounting-VPN/data/flow/source_10/2013/06/01/log_15
06-03/17:22:39 DEBUG [detail-worker] DataLog - DataLog file [data/flow/source_10/2013/06/01/log_15] was closed
06-03/17:22:39 DEBUG [detail-worker] IPHourlyDataLog - Opening /usr/local/BGInetAccounting-VPN/data/flow/source_10/2013/06/01/log_16
06-03/17:22:39 DEBUG [detail-worker] DataLog - DataLog file [data/flow/source_10/2013/06/01/log_16] was closed
06-03/17:22:39 DEBUG [detail-worker] IPHourlyDataLog - Opening /usr/local/BGInetAccounting-VPN/data/flow/source_10/2013/06/01/log_17
06-03/17:22:40 DEBUG [detail-worker] DataLog - DataLog file [data/flow/source_10/2013/06/01/log_17] was closed
06-03/17:22:40 DEBUG [detail-worker] IPHourlyDataLog - Opening /usr/local/BGInetAccounting-VPN/data/flow/source_10/2013/06/01/log_18
06-03/17:22:41 DEBUG [detail-worker] DataLog - DataLog file [data/flow/source_10/2013/06/01/log_18] was closed
06-03/17:22:41 DEBUG [detail-worker] IPHourlyDataLog - Opening /usr/local/BGInetAccounting-VPN/data/flow/source_10/2013/06/01/log_19
06-03/17:22:41 DEBUG [detail-worker] DataLog - DataLog file [data/flow/source_10/2013/06/01/log_19] was closed
06-03/17:22:41 DEBUG [detail-worker] IPHourlyDataLog - Opening /usr/local/BGInetAccounting-VPN/data/flow/source_10/2013/06/01/log_20
06-03/17:22:42 DEBUG [detail-worker] DataLog - DataLog file [data/flow/source_10/2013/06/01/log_20] was closed
06-03/17:22:42 DEBUG [detail-worker] IPHourlyDataLog - Opening /usr/local/BGInetAccounting-VPN/data/flow/source_10/2013/06/01/log_21
06-03/17:22:43 DEBUG [detail-worker] DataLog - DataLog file [data/flow/source_10/2013/06/01/log_21] was closed
06-03/17:22:43 DEBUG [detail-worker] IPHourlyDataLog - Opening /usr/local/BGInetAccounting-VPN/data/flow/source_10/2013/06/01/log_22
06-03/17:22:44 DEBUG [detail-worker] DataLog - DataLog file [data/flow/source_10/2013/06/01/log_22] was closed
06-03/17:22:44 DEBUG [detail-worker] IPHourlyDataLog - Opening /usr/local/BGInetAccounting-VPN/data/flow/source_10/2013/06/01/log_23
06-03/17:22:45 DEBUG [detail-worker] DataLog - DataLog file [data/flow/source_10/2013/06/01/log_23] was closed
06-03/17:22:45 DEBUG [detail-worker] IPHourlyDataLog - Opening /usr/local/BGInetAccounting-VPN/data/flow/source_10/2013/06/02/log_00
06-03/17:22:45 DEBUG [detail-worker] DataLog - DataLog file [data/flow/source_10/2013/06/02/log_00] was closed
06-03/17:22:45  INFO [detail-worker] FlowDetailMaker - Detail sending to *****; subject Traffic detail
06-03/17:22:46  INFO [detail-worker] FlowDetailMaker - Memory total: 272 039 936; max: 477 233 152; free: 130 162 856
Memory pools:
  Non-heap memory[Code Cache]: max: 50 331 648; used: 5 081 344; peek: 5 083 136
  Heap memory[PS Eden Space]: max: 156 893 184; used: 41 257 800; peek: 123 863 040
  Heap memory[PS Survivor Space]: max: 6 619 136; used: 6 566 728; peek: 17 231 288
  Heap memory[PS Old Gen]: max: 357 957 632; used: 94 052 552; peek: 94 052 552
  Non-heap memory[PS Perm Gen]: max: 88 080 384; used: 41 612 840; peek: 41 612 840
Thread count: 44
06-03/17:22:46  INFO [detail-worker] FlowDetailMaker - Detail created and sended by 16099, sending to *****

- тоже пустой файл.

inet-accounting.xml :

Код:
<?xml version="1.0" encoding="UTF-8"?>
<application context="accounting">
        <!-- Уникальное имя приложения -->
        <param name="app.name" value="BGInetAccounting-VPN"/>
        <!-- Уникальный числовой id приложения -->
        <param name="app.id" value="5"/>

        <!-- Параметры подключения к БД -->
        <param name="db.driver" value="com.mysql.jdbc.Driver"/>
        <param name="db.url" value="jdbc:mysql://127.0.0.1/bgbilling?useUnicode=true&amp;characterEncoding=Cp1251&amp;allowUrlInLocalInfile=true&amp;zeroDateTimeBehavior=convertToNull&amp;jdbcCompliantTruncation=false&amp;queryTimeoutKillsConnection=true&amp;connectTimeout=1000"/>
        <param name="db.user" value="bill"/>
        <param name="db.pswd" value="bgbilling"/>
        <param name="db.validationTimeout" value="10"/>

        <!-- Параметры подключения к slave БД -->
        <param name="db.slave.1.url" value="jdbc:mysql://192.168.1.2:3306/bgbilling?useUnicode=true&amp;characterEncoding=Cp1251&amp;allowUrlInLocalInfile=true&amp;zeroDateTimeBehavior=convertToNull&amp;jdbcCompliantTruncation=false&amp;elideSetAutoCommits=true&amp;useCursorFetch=true&amp;queryTimeoutKillsConnection=true&amp;connectTimeout=1000"/>
        <param name="db.slave.1.user" value="bill"/>
        <param name="db.slave.1.pswd" value="bgbilling"/>
        <param name="db.slave.1.maxIdle" value="10"/>
        <param name="db.slave.1.maxActive" value="100"/>
        <param name="slave.alarm.second.behind.master" value="400"/>
        <param name="slave.disable.second.behind.master" value="390"/>

        <!-- Параметры подключения к MQ -->
        <param name="mq.url" value="failover:(tcp://localhost:61616)"/>
        <param name="mq.user" value="bill"/>
        <param name="mq.pswd" value="bgbilling"/>

        <!-- id модуля -->
        <param name="moduleId" value="30"/>
        <!-- id корневого устройства -->
        <param name="rootDeviceId" value="1"/>

        <!-- Внутренняя переменная приложения, не изменять -->
        <param name="commonIdentifierName" value="rootDeviceId"/>

        <!-- Параметры сохранения radius-пакетов в файлы логов -->
        <!-- Директория, в которую сохранять radius логи -->
        <param name="datalog.radius.dir" value="data/radius" />
        <!-- Размер блока данных в файле лога, также размер буфера на лог файл -->
        <param name="datalog.radius.chunk.size" value="524288" />
        <!-- Сжимать radius логи: 0 - не сжимать, 1 - zlib -->
        <param name="datalog.radius.compression.type" value="1" />
        <!-- Параметры сохранения flow-пакетов в файлы логов -->
        <!-- Директория, в которую сохранять flow логи -->
        <param name="datalog.flow.dir" value="data/flow" />
        <!-- Размер блока данных в файле лога, также размер буфера на лог файл и поток слушателя -->
        <param name="datalog.flow.chunk.size" value="524288" />
        <!-- Сжимать flow логи: 0 - не сжимать, 1 - zlib -->
        <param name="datalog.flow.compression.type" value="1" />


        <!-- Создание Accounting -->
        <bean name="accounting" class="ru.bitel.bgbilling.modules.inet.accounting.Accounting"/>

        <context name="radius">
                <!-- Cоздание процессора radius-пакетов -->
                <bean name="radiusProcessor" class="ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor"/>

                <!-- Служебный ScheduledExecutorService, необходимый для dataLogger -->
                <scheduledExecutorService name="hrlydtlggr" corePoolSize="1"/>

                <!-- Cоздание dataLogger, сохраняющего radius-пакеты на диск (только один экземпляр) -->
                <bean name="radiusDataLogger" class="ru.bitel.bgbilling.modules.inet.radius.RadiusHourlyDataLogger">
                        <param name="scheduledExecutor">hrlydtlggr</param>
                </bean>

                <!-- Cоздание слушателя radius-пакетов на порту с передачей ему процессора и dataLogger -->
                <bean name="radiusListener" class="ru.bitel.bgbilling.modules.inet.radius.InetRadiusListener">
                        <constructor>
                                <!-- Хост (интерфейс), на котором будет открыт сокет. Если пусто - на всех -->
                                <param name="host" value="****"/>
                                <!-- Порт, на котором будет открыт сокет -->
                                <param name="port" value="****"/>
                                <!-- Размер буфера приема слушателя -->
                                <param name="recvBufferSize">1 * 1024 * 1024</param>
                                <!-- Рекомендуемый SO_RCVBUF сокета -->
                                <param name="soRCVBUF"></param>
                                <!-- Количество потоков-обработчиков -->
                                <param name="threadCount">10</param>
                                <!-- Максимальное количество пакетов в очереди на обработку -->
                                <param name="maxQueueSize">200</param>
                                <!-- Передача процессора -->
                                <param name="processor">radiusProcessor</param>
                                <!-- Режим работы, RadiusListener.Mode.accounting -->
                                <param name="mode">RadiusListener.Mode.accounting</param>
                                <!-- Передача setup -->
                                <param name="setup">setup</param>
                                <!-- Передача dataLogger -->
                                <param name="dataLogger">radiusDataLogger</param>
                        </constructor>
                </bean>
        </context>

        <context name="collector">
                <context name="detail">
                        <!-- Cоздание обработчика flow детализации -->
                        <bean name="detailWorker" class="ru.bitel.bgbilling.modules.inet.accounting.detail.InetDetailWorker"/>
                </context>
        </context>

</application>

Что я делаю не так?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Общие баги, проблемы
СообщениеДобавлено: 03 июн 2013, 14:45 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
С ifindex всё в порядке:
Вложение:
ifindex.png
ifindex.png [ 27.13 КБ | Просмотров: 26561 ]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Общие баги, проблемы
СообщениеДобавлено: 04 июн 2013, 12:30 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Вопрос возник: чем отличаются статусы сервиса "закрыт" и "заблокирован"?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Общие баги, проблемы
СообщениеДобавлено: 04 июн 2013, 15:05 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Заготовка просто - планировали добавить в личный кабинет возможность закрыть/открыть сервис, как в IPN. А если заблокирован - клиент уже не сможет его открыть.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Общие баги, проблемы
СообщениеДобавлено: 05 июн 2013, 07:47 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
По поводу flow - похоже, проблема в том, что все ip-адреса - пустые (null): и у сессии, и у сервиса.

Например, детализацию для 1 сессии биллинг не хочет делать, если у сессии отсутствует ip-адрес:
(класс FlowDetailMaker)
Код:
    if (task.getSessionList().size() == 1)
    {
      InetDetailCreateEvent.SessionInfo session = (InetDetailCreateEvent.SessionInfo)task.getSessionList().get(0);

      if (session.getAddressFrom().address != null)
      {
        FlowSelector selector = new InetFlowSelector(session.getTimeFrom().getTime(), session.getTimeTo().getTime(), session.getIfaces(),
          session.getAddressFrom().address, session.getAddressTo().address, session.getRouteNetList());
        hours = new ArrayList(getLogHours(task.getTimeFrom(), task.getTimeTo()));

        entries.add(new FlowDetailEntry(setup, session.getAgentDeviceId(), selector, hours));
        hoursToFlush.addAll(hours);
      }

    }

Зачем этот if? :
Код:
if (session.getAddressFrom().address != null)


Если же делаю детализацию за период, то тоже обрабатываются только сессии с ip-адресом (либо хотя бы адрес должен быть у сервиса):
(класс InetMonthFlowSelector)
Код:
      if (task.getAddressFrom().address != null)
      {
        flowSelectorList.add(new InetFlowSelector(task.getTimeFrom().getTime(), task.getTimeTo().getTime(), task.getIfaces(),
          task.getAddressFrom().address, task.getAddressTo().address, task.getRouteNetList()));
      }


В другом моём случае - когда у сессии есть ip-адрес, похоже, детализация приходит пустая потому, что по этому адресу ничего не ходит (это адрес шлюза клиентской подсети).

Итого, 2 фичреквеста:
1. Обрабатывать детализацию для сессий без ip-адреса, адреса брать из сервиса.
2. Если в сервисе оба адреса = null, считать их как 0.0.0.0 - 255.255.255.255


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Общие баги, проблемы
СообщениеДобавлено: 06 июн 2013, 14:52 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Однако для меня сейчас самая актуальная проблема - servSearchMode по имени интерфейса.
Есть смысл ждать?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Общие баги, проблемы
СообщениеДобавлено: 06 июн 2013, 18:47 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Отдельный вид поиска делать пока не стали. У нас уже есть кэш названий интерфейсов, его доработали, сегодня выложим.
Нужно будет делать примерно так:
Код:
ru.bitel.bgbilling.modules.inet.runtime.InetInterfaceMap ifaceMap;

Object init() {
    this.deviceId = deviceId;
    this.ifaceMap = InetInterfaceMap.getInstance( moduleId )
}

Object preprocess() {
    Integer interfaceId = ifaceMap.getInterfaceId( deviceId, ifaceTitle );
}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Общие баги, проблемы
СообщениеДобавлено: 06 июн 2013, 19:17 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Спасибо. Для 5.2?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Общие баги, проблемы
СообщениеДобавлено: 06 июн 2013, 19:49 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Да, выложили.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Общие баги, проблемы
СообщениеДобавлено: 07 июн 2013, 12:06 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Обновился на тестовом стенде, переписал ProcessHandler - работает.
Правда, т.к. я использую Nas-Port-Id, а не interfaceTitle, то не стал напрямую пользоваться вашим кэшем интерфейсов.
Вместо этого написал свой кэш "nasPortId -> ifaceId", с использованием события DeviceInterfaceModifiedEvent:

Код:
package ru.dsi.bgbilling.modules.inet.dyn.device.cisco;

import org.apache.log4j.Logger;
import ru.bitel.bgbilling.common.BGException;
import ru.bitel.bgbilling.kernel.container.managed.ServerContext;
import ru.bitel.bgbilling.kernel.event.EventListener;
import ru.bitel.bgbilling.kernel.event.EventListenerContext;
import ru.bitel.bgbilling.kernel.event.EventProcessor;
import ru.bitel.bgbilling.kernel.network.radius.RadiusDictionary;
import ru.bitel.bgbilling.kernel.network.radius.RadiusPacket;
import ru.bitel.bgbilling.kernel.network.radius.RadiusProtocolHandler;
import ru.bitel.bgbilling.modules.inet.api.common.bean.InetDevice;
import ru.bitel.bgbilling.modules.inet.api.common.bean.InetDeviceType;
import ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor;
import ru.bitel.bgbilling.server.util.Setup;
import ru.bitel.common.ParameterMap;
import ru.bitel.common.sql.ConnectionSet;
import ru.bitel.common.worker.ThreadContext;
import ru.bitel.oss.systems.inventory.resource.common.DeviceInterfaceService;
import ru.bitel.oss.systems.inventory.resource.common.bean.DeviceInterface;
import ru.bitel.oss.systems.inventory.resource.common.event.DeviceInterfaceModifiedEvent;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.SortedMap;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @author cromeshnic@gmail.com
 * ProtocolHandler для работы с cisco ip subscriber interface + cisco ISG
 * В предобработке устанавливается опция пакета InetRadiusProcessor.INTERFACE_ID, где указывается номер интерфейса в биллинге,
 * соответствующий атрибуту Nas-Port-Id из пакета
 * Соответствие определяется по шаблонам, заданным в конфигурации, и имени интерфейса сервиса в биллинге
 * Предполагается, что клиент авторизуется именно на том устройстве, на котором указан этот ProtocolHandler (не на дочерних)
 *
 * Параметры конфигурации:
 * radius.ipoe.nas_port_id.pattern.[i].pattern - регэксп-шаблон для имени интерфейса в биллинге
 * radius.ipoe.nas_port_id.pattern.[i].replacement - выражение для построения nas_port_id по шаблону
 *
 * Пример:
 * Gi0/0.1112 -> 0/0/0/1112
 * Gi0/0.20150105 -> 0/0/0/105.2015
 *
 */
public class ISGIPoEProtocolHandler extends ISGProtocolHandler implements RadiusProtocolHandler {

    private static final Logger logger = Logger.getLogger( ISGIPoEProtocolHandler.class );

    /**
     * Кэш интерфейсов устройства
     */
    private volatile DeviceNasPortMap ifaceMap;

    @Override
    public void init(Setup setup, int moduleId, InetDevice inetDevice, InetDeviceType inetDeviceType, ParameterMap deviceConfig) throws Exception {
        super.init(setup, moduleId, inetDevice, inetDeviceType, deviceConfig);
        this.ifaceMap = new DeviceNasPortMap(moduleId, inetDevice.getId(), deviceConfig.subIndexed("radius.ipoe.nas_port_id.pattern."));
    }

    @Override
    public void preprocessAccountingRequest(RadiusPacket request, RadiusPacket response, ConnectionSet connectionSet) throws Exception {
        super.preprocessAccountingRequest(request, response, connectionSet);
        //по Nas-Port-Id в пакете ищем номер порта на устройстве и указываем его в опции пакета
        setBGIfaceId( request);
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public void preprocessAccessRequest(RadiusPacket request, RadiusPacket response, ConnectionSet connectionSet) throws Exception {
        super.preprocessAccessRequest(request, response, connectionSet);
        //по Nas-Port-Id в пакете ищем номер порта на устройстве и указываем его в опции пакета
        setBGIfaceId( request);
    }

    /**
     * по Nas-Port-Id в пакете ищем номер порта на устройстве и указываем его в опции пакета InetRadiusProcessor.INTERFACE_ID
     * @param request    радиус-пакет
     */
    private void setBGIfaceId(RadiusPacket request) {
        String nas_port_id = request.getStringAttribute(-1, RadiusDictionary.NAS_Port_Id, null);
        Integer port=-1;
        if(nas_port_id!=null){
            port = this.ifaceMap.getIfacePort(nas_port_id);
        }
        if(null==port)
        {
            port=-1;//Насчёт port=0 и port=-1 - см http://forum.bgbilling.ru/viewtopic.php?f=44&t=7694&p=64541#p64541
        }
        request.setOption(InetRadiusProcessor.INTERFACE_ID, port);
    }

    /**
     * Кэш соответствий Nas-Port-Id -> id интерфейса в биллинге для устройства
     * Обновляется при изменении порта или перезагрузке конфигурации
     */
    private class DeviceNasPortMap implements EventListener<DeviceInterfaceModifiedEvent> {
        /**
         * Соответствие cisco Nas-Port-Id -> id интерфейса в биллинге
         */
        private volatile Map<String, Integer> nasPortIdToBGPortIdMap;
        private final int moduleId;
        private final int deviceId;
        /**
         * Список шаблонов-регулярных выражений, по которым будем получать Nas-Port-Id по названию интерфейса
         * Список паттернов не обновляется, т.к. берётся из конфига.
         * При перезагрузке конфига в любом случае ISGIPoEProtocolHandler будет переинициализирован целиком
         */
        private final SortedMap<Integer, ParameterMap> patternMap;

        public DeviceNasPortMap(int moduleId, int deviceId, SortedMap<Integer, ParameterMap> patternMap) throws BGException {
            this.moduleId = moduleId;
            this.deviceId = deviceId;
            this.patternMap = patternMap;
            EventProcessor.getInstance().addListener(this, DeviceInterfaceModifiedEvent.class);
            this.load();
        }

        private synchronized void load(){
            this.nasPortIdToBGPortIdMap = new HashMap<String, Integer>();
            //Перебираем порты устройств
            logger.info("(Re)loading DeviceNasPortMap for device "+this.deviceId);
            ServerContext ctx = (ServerContext) ThreadContext.get();
            try {
                DeviceInterfaceService devicePortService = ctx.getService(DeviceInterfaceService.class, moduleId);
                List<DeviceInterface> deviceIfaceList = devicePortService.devicePortList(this.deviceId);
                String nasPortId;
                if(deviceIfaceList!=null){
                    for(DeviceInterface iface : deviceIfaceList){
                        nasPortId = nasPortIdByIfaceTitle(iface.getTitle());
                        if(null!=nasPortId){
                            nasPortIdToBGPortIdMap.put(nasPortId, iface.getPort());
                            logger.debug("[device id=" + this.deviceId + "]: nas-port-id='" + nasPortId + "' -> " + iface.getPort());
                        }
                    }
                }
            } catch (BGException e) {
                logger.error("Error (re)loading DeviceNasPortMap", e);
            }
        }

        /**
         * Возвращает Nas-Port-Id по имени интерфейса на основе регекспов из patternMap
         * @param ifaceTitle имя инерфейса (ex Gi0/0.123)
         * @return Nas-Port-Id (ex 0/0/0/123)
         */
        protected String nasPortIdByIfaceTitle(String ifaceTitle){
            if(null==ifaceTitle){
                return null;
            }
            Pattern p;
            Matcher m;
            String pattern;
            String replacement;
            String nasPortId;
            for(Map.Entry<Integer, ParameterMap> patternMapEntry : patternMap.entrySet()){
                pattern = patternMapEntry.getValue().get("pattern", null);
                replacement = patternMapEntry.getValue().get("replacement", null);
                if(pattern!=null && replacement!=null){
                    p = Pattern.compile(pattern);
                    m = p.matcher(ifaceTitle);
                    if (m.find()) {
                        //Получаем логин путём подстановки найденных capturing groups в $1, $2 и т.д. шаблона
                        nasPortId = m.replaceFirst(replacement);
                        return nasPortId;
                    }
                }
            }
            return null;
        }

        /**
         * Получаем id порта в биллинге по nas_port_id из кэша
         */
        public Integer getIfacePort(String nas_port_id) {
            return this.nasPortIdToBGPortIdMap.get(nas_port_id);
        }

        /**
         * Обновляем кэш при изменении интерфейса
         * @throws BGException
         */
        @Override
        public void notify(DeviceInterfaceModifiedEvent event, EventListenerContext eventListenerContext) throws BGException {
            DeviceInterface deviceIface = event.getNewItem();
            if(deviceIface==null){
                deviceIface = event.getOldItem();
            }
            if(deviceIface!=null){
                if(deviceIface.getDeviceId()==this.deviceId){
                    this.load();
                }
            }
        }
    }
}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Общие баги, проблемы
СообщениеДобавлено: 07 июн 2013, 13:50 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
MXBeans для мониторинга радиусов:
http://wiki.bgbilling.ru/index.php/%D0% ... %D0%B7_JMX


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Общие баги, проблемы
СообщениеДобавлено: 07 июн 2013, 19:16 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
Если бы нечто подобное by default было ...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Общие баги, проблемы
СообщениеДобавлено: 11 июн 2013, 12:05 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
В ошибках:
Код:
radius 06-11/14:36:24 ERROR [rdsLstnr-p-8-t-6] InetRadiusProcessor - Session ip address not found in packet!

- в моём случае это не является ошибкой. Думаю, можно не писать об этом в лог.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Общие баги, проблемы
СообщениеДобавлено: 18 июн 2013, 14:20 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Делаю перенос сервиса Inet с будущей даты - на старом договоре сервис закрыватеся статусом "закрыт".
Посмотрел в коде inetServMove() - так и есть.
Зачем это?

Баг?

То же самое при переоформлении.


Последний раз редактировалось Cromeshnic 19 июн 2013, 13:29, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Общие баги, проблемы
СообщениеДобавлено: 18 июн 2013, 14:26 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Тут же вопрос - почему не переносятся сервисы Inet при переоформлении?

Ошибся - переоформляются.
Только при переоформлении старый сервис закрывается статусом.


Последний раз редактировалось Cromeshnic 19 июн 2013, 08:23, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 262 ]  На страницу Пред.  1, 2, 3, 4, 5 ... 9  След.

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot], Google [Bot] и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
POWERED_BY
Русская поддержка phpBB
[ Time : 0.225s | 80 Queries | GZIP : On ]