forum.bitel.ru
http://forum.bitel.ru/

[feature request] Метод destroy для ProtocolHandler (CRM)
http://forum.bitel.ru/viewtopic.php?f=44&t=8578
Страница 1 из 1

Автор:  Cromeshnic [ 15 окт 2013, 15:03 ]
Заголовок сообщения:  [feature request] Метод destroy для ProtocolHandler

В своём ProtocolHandler-е мне нужно следить за изменениями портов устройств, чтобы обновлять внутренний кэш, для чего я подписываюсь на событие RadiusProtocolHandler:

Код:
public class ISGIPoEProtocolHandler extends ISGProtocolHandler implements RadiusProtocolHandler {
    ...
    private class DeviceNasPortMap implements EventListener<DeviceInterfaceModifiedEvent> {

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


Но возникает неочевидная проблема - при каждом перечитывании конфигурации (или возможно при перекомпилировании дин кода и перечитывании) предыдущий экземпляр ISGIPoEProtocolHandler.DeviceNasPortMap остаётся в памяти и в подписчиках события.

Как можно этого избежать?

Автор:  Cromeshnic [ 16 окт 2013, 07:17 ]
Заголовок сообщения:  Re: ProtocolHandler и подписка на события

Я думаю, в ServiceActivator и ProtocolHandler неплохо бы добавить абстрактные методы destroy() для таких вещей. Вызывать их перед перезагрузкой устройства.

Автор:  Cromeshnic [ 17 окт 2013, 08:18 ]
Заголовок сообщения:  Re: ProtocolHandler и подписка на события

У ServiceActivator есть init() и destroy()
У ProtocolHandler - только init()

Незадача.

Автор:  Cromeshnic [ 20 дек 2013, 13:57 ]
Заголовок сообщения:  Re: [feature request] Метод destroy для ProtocolHandler

up?
todo?

Автор:  Cromeshnic [ 10 янв 2014, 10:18 ]
Заголовок сообщения:  Re: [feature request] Метод destroy для ProtocolHandler

up?

Автор:  Cromeshnic [ 05 фев 2015, 11:39 ]
Заголовок сообщения:  Re: [feature request] Метод destroy для ProtocolHandler (CRM

прошёл год...

Сейчас пилю схему с авторизацией по номеру сотового, который приходит в Calling-Station-Id для схемы с L2TP из сети 3G оператора-партнёра.
Мне опять же в хэндлере нужно держать кэш соответствия Title -> id интерфейса, который обновляется по системному событию изменения интерфейса. В результатепри обновлении конфига устройств старый экземпляр хэндлера остаётся подписан на событие и не уничтожается сборщиком мусора.

(Номер сотового = title интерфейса, номеров конечный пул у компании, выдаём клиентам 3G модемы уже настроенные на время аварии и т.п., в биллинге заводится сервис, привязанный к соответствующему интерфейсу)

Автор:  stark [ 05 фев 2015, 12:19 ]
Заголовок сообщения:  Re: [feature request] Метод destroy для ProtocolHandler (CRM

В TODO уже есть.

Автор:  Cromeshnic [ 05 фев 2015, 12:20 ]
Заголовок сообщения:  Re: [feature request] Метод destroy для ProtocolHandler (CRM

Ok, спасибо

Автор:  Cromeshnic [ 07 апр 2015, 14:50 ]
Заголовок сообщения:  Re: [feature request] Метод destroy для ProtocolHandler (CRM

У меня после нескольких перечитываний конфигурации начинают ругаться Access/Accounting-сервера.
Я грешу на эту фичу, но проверять пока лень (снимать дамп, ковыряться) - просто рестартую их.

Как там ваше TODO поживает?

Автор:  Amir [ 21 апр 2015, 22:39 ]
Заголовок сообщения:  Re: [feature request] Метод destroy для ProtocolHandler (CRM

Выкладывается обновление. Нужно добавить implements ru.bitel.common.worker.Destroyable

Автор:  Cromeshnic [ 22 апр 2015, 07:09 ]
Заголовок сообщения:  Re: [feature request] Метод destroy для ProtocolHandler (CRM

С 5.2? 6.0 ?

Автор:  Amir [ 23 апр 2015, 22:17 ]
Заголовок сообщения:  Re: [feature request] Метод destroy для ProtocolHandler (CRM

Сейчас с 6.0.

Автор:  Cromeshnic [ 25 сен 2017, 12:39 ]
Заголовок сообщения:  Re: [feature request] Метод destroy для ProtocolHandler (CRM

Обновился на 7.0, реализовал метод - всё работает, спасибо.
Надо бы мне ещё статью на вики поправить..

Автор:  Cromeshnic [ 25 сен 2017, 12:48 ]
Заголовок сообщения:  Re: [feature request] Метод destroy для ProtocolHandler (CRM

...поправил:

http://wiki.bitel.ru/index.php/Vlan_per ... colHandler

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/