BiTel

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

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




Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: ActiveMQ topic не работает подписка
СообщениеДобавлено: 06 сен 2013, 13:19 
Не в сети
Клиент
Аватара пользователя

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

Пишу собственный класс для BGInetAccounting, который подписывается на событие InetAccountingEvent, чтобы независимо считать трафики.
Делаю так:

Код:
public class QuotaCollector implements EventListener<InetAccountingEvent>, Lifecycle {
    ...

    @Override
    public void start() throws Exception {
        EventProcessor ep = EventProcessor.getInstance();
        ep.addListener(this, InetAccountingEvent.class, this.accounting.moduleId, null);
        this.initWorkers();
    }

    @Override
    public void notify(InetAccountingEvent event, EventListenerContext eventListenerContext) throws BGException {
        logger.debug("caught event InetAccountingEvent: "+event);
        ...
    }

    ...
}



В логах вижу, что на событие я подписался, события ходят, но я их не получаю (нет строчек "caught event InetAccountingEvent")

Код:
all.log:radius 09-06/15:11:21 DEBUG [main] EventProcessor - Add ru.dsi.bgbilling.modules.inet.accounting.quota.QuotaCollector@17d2f0e to BG.Event.ru.bitel.bgbilling.modules.inet.accounting.event.InetAccountingEvent WHERE moduleId=26
all.log:radius 09-06/15:11:21 DEBUG [main] EventProcessor - Add ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor@bdb375 to BG.Event.ru.bitel.bgbilling.modules.inet.accounting.event.InetAccountingEvent WHERE moduleId=26
all.log:mq 09-06/15:15:19 DEBUG [evpool-pblsh-p-4-t-1] EventProcessor - Publish: Event[pool:ru.bitel.bgbilling.modules.inet.accounting.event.InetAccountingEvent] timestamp: 1378448119340; moduleId: 26; pluginId: -1; cid: -1; scid: -1; userId: -1
all.log:mq 09-06/15:16:40 DEBUG [evpool-pblsh-p-4-t-2] EventProcessor - Publish: Event[pool:ru.bitel.bgbilling.modules.inet.accounting.event.InetAccountingEvent] timestamp: 1378448200366; moduleId: 26; pluginId: -1; cid: -1; scid: -1; userId: -1
all.log:mq 09-06/15:16:40 DEBUG [evpool-pblsh-p-4-t-2] EventProcessor - Publish: Event[pool:ru.bitel.bgbilling.modules.inet.accounting.event.InetAccountingEvent] timestamp: 1378448200993; moduleId: 26; pluginId: -1; cid: -1; scid: -1; userId: -1


Смотрю по jmx - так и есть: стандартный consumer получает всё, а я - ничего.

Вложение:
consumer1.png
consumer1.png [ 75.09 КБ | Просмотров: 4302 ]

Вложение:
consumer2.png
consumer2.png [ 72.78 КБ | Просмотров: 4302 ]

(остальные 2 подписчика к делу отношения не имеют - они для другого moduleId)

Почему так? Это же топик, а не очередь, вроде должны получать оба подписчика?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ActiveMQ topic не работает подписка
СообщениеДобавлено: 06 сен 2013, 16:22 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Цитата:
@EventType(noLocal=true)
Событие о состоянии сессии. Приходит всем серверам, за исключением того, кто его отправил
AccountingSession start|stop.



Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ActiveMQ topic не работает подписка
СообщениеДобавлено: 09 сен 2013, 08:53 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Ясно.
Кстати, update тоже ходят.
Только вот я найти не могу, где это ограничение зашито:
Цитата:
... за исключением того, кто его отправил

???

Хочу реализовать аналог Cisco SCSM Quota Manager, только в биллинге. sliceInterval, penalty period, вот это всё...
Сейчас пользуемся цисковским, со данными о трафике из SCE, но получается, что клиентское полиси на SCE рулится частично биллингом из тарифа, а частично - Quota Manager-ом. Хочется засунуть всю логику в тарифное дерево.
В биллинге можно менять скорости клиенту с помощью диапазонов с разбивкой по часам. Хочется более гибко, как это сделано у циско - учитывается трафик, потреблённый за последние x маленьких периодов-слайсов (скажем, 10 минут). Т.е. нужно вести в памяти данные с разбивкой по маленьким диапазонам.
Всё реализуемо, но мне нужно как-то ловить сам трафик. Хотел использовать InetAccountingEvent, хоть он и генерится только для call-сессий. Но тогда придётся ловить его в Access, что наверное не очень логично. В-общем, буду думать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ActiveMQ topic не работает подписка
СообщениеДобавлено: 09 сен 2013, 09:58 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
А, всё, вижу:
Цитата:
The consumer NoLocal attribute allows a consumer to inhibit the delivery of messages published by its own connection.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ActiveMQ topic не работает подписка
СообщениеДобавлено: 16 сен 2013, 14:39 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Получилось ловить трафик?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ActiveMQ topic не работает подписка
СообщениеДобавлено: 16 сен 2013, 14:50 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Ага, только костыльно - ловлю InetAccountingEvent в BGInetAccess и переправляю обратно в BGInetAccounting в виде MyInetAccountingEvent
:)

А в целом всё работает, сейчас отлаживаю, исправляю баги.

Идея в том, чтобы менять скорость клиенту наподобие тарифных диапазонов, но не по часам/дням, а в зависимости от трафика за последние X минут (вернее, X диапазонов-slice-ов по Y минут).

При понижении клиент находится в "плохом" профиле определённое время (penalty time), а не до конца часа/дня, как в BG, а потом его выкидывает на предыдущий уровень (или на 2-3 предыдущих уровня - в зависимости от того, насколько хорошо он себя вёл за это время).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ActiveMQ topic не работает подписка
СообщениеДобавлено: 17 сен 2013, 08:10 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
А ещё проблемка с InetAccountingEvent - для stop-пакета в событии не передаются counterTraffics


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ActiveMQ topic не работает подписка
СообщениеДобавлено: 23 сен 2013, 12:54 
Не в сети
Клиент
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

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


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


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

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