BiTel

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

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




Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Pool [inet-access]: Connections limit is over!!!!!
СообщениеДобавлено: 18 ноя 2013, 09:13 
Не в сети
Клиент

Зарегистрирован: 09 фев 2011, 15:28
Сообщения: 1092
Карма: 135
Решили вот Inet в продакшн выводить. Завели кучу девайсов, давим "Перечитать конфигурацию на серверах", в логах мелькают
Код:
mq 11-16/19:22:14  INFO [event-proc-p-2-t-1] InetDeviceRuntime - Reload protocolHandler class for device: DES-3028: 0021919736
15 [172.16.112.138]
mq 11-16/19:22:14  INFO [event-proc-p-2-t-1] InetDeviceRuntime - Reload SA classes for device: DES-3028: 002191973615 [172.16.
112.138]
mq 11-16/19:22:14  INFO [event-proc-p-2-t-1] SwSnmpServiceActivator - INIT

такие сообщения для каждого свича и потом
Код:
mq 11-16/19:22:14 ERROR [event-proc-p-2-t-1] DefaultServerSetup - Pool [inet-access]: Connections limit is over!!!!!
connection 11-16/19:22:36 ERROR [sa-p-12-t-24] DefaultServerSetup - Pool [inet-access]: Connections limit is over!!!!!
connection 11-16/19:22:38 ERROR [sa-p-12-t-82] DefaultServerSetup - Pool [inet-access]: Connections limit is over!!!!!
connection 11-16/19:23:02 ERROR [sa-p-12-t-50] DefaultServerSetup - Pool [inet-access]: Connections limit is over!!!!!


Дальше Access перестает обрабатывать запросы и всё встаёт колом
Код:
11-16/19:33:24  WARN [InetRadiusListener] RadiusListener - RadiusListener authentication queue is full!
11-16/19:33:24  WARN [InetRadiusListener] RadiusListener - Auth packet skipping.

11-16/19:24:32 ERROR [dhcpLstnr-p-10-t-6] InetDhcpProcessor - Lock wait timeout for ContractRuntime[2914]@310390892


access_status показыват
Код:
Connections pool to Master status Idle: 2; Active: 115; maxActive: 300; maxIdle: 20

если Перечитать конфигурацию на серверах, становится Active: 230, ну а еще раз нажать - становится 300 и вываливается по вышеописанному сценарию.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Pool [inet-access]: Connections limit is over!!!!!
СообщениеДобавлено: 18 ноя 2013, 10:17 
Не в сети
Клиент
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Pool [inet-access]: Connections limit is over!!!!!
СообщениеДобавлено: 18 ноя 2013, 10:32 
Не в сети
Клиент

Зарегистрирован: 09 фев 2011, 15:28
Сообщения: 1092
Карма: 135
Cromeshnic писал(а):
Какие у вас класссы - ServiceActivator-ы?
Самописные? Скорее всего, для каждого коммутатора свой коннекшн заводится.

Коннекшн заводится в активаторе родительского устройства. Для коммутаторов используется немного модифицированный SnmpServiceActivator без получения коннекшинов.

Нашел зацепку, но все равно непонятно. Перекликается с темой про фейковые коннекшины. Оказывает, при перечитывании конфигурации родительское устройство свичей Shaper (есть еще DHCP Relay, но он не в счет, он без SA) проходит N+1 раз инициализацию (где N - кол-во дочерних свичей, видел в логах вагон сообщений INIT/DESTROY SA-родителя), а там в функции init используется this.con = Setup.getSetup().getDBConnectionFromPool(); Вот это и сжирает коннекшины. Ну да ладно, думаю получение коннекта к базе и его закрытие будет логичней перенести в функции connect/disconnect (или как лучше ?), но опять же остается вопрос - нафига 100500+1 раз инициализировать родительское устройство? Если я перенесу получение/освобождение ДБ-коннектов в connect/disconnect, но их выжрут фейковые подключения из соседнего топика http://forum.bitel.ru/viewtopic.php?f=44&t=8644


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Pool [inet-access]: Connections limit is over!!!!!
СообщениеДобавлено: 03 дек 2013, 15:11 
Не в сети
Клиент

Зарегистрирован: 09 фев 2011, 15:28
Сообщения: 1092
Карма: 135
UP!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Pool [inet-access]: Connections limit is over!!!!!
СообщениеДобавлено: 03 дек 2013, 15:23 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Сделали получение соединения в connect() и его возвращение в disconnect()?
init() и destroy() для парсинга конфигурации и освобождения других ресурсов, которые можно держать постоянно.

Если бы с подключениями из соседнего топика действительно была глобальная проблема, то давно бы исправили. И писали бы об этой проблеме не только Вы.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Pool [inet-access]: Connections limit is over!!!!!
СообщениеДобавлено: 03 дек 2013, 15:56 
Не в сети
Клиент

Зарегистрирован: 09 фев 2011, 15:28
Сообщения: 1092
Карма: 135
да, сделал в connect/disconnect. Просто в основном у многих схема с RADIUS, где подключения как такового нету, поэтому и не выражается это ЯВНО. Либо девайсов немного. Спасибо за разъяснения. init/destroy не столь принципиально что массово вызываются.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Pool [inet-access]: Connections limit is over!!!!!
СообщениеДобавлено: 03 дек 2013, 16:12 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Там сейчас работает 100-200 потоков (sa.thread.count=), т.е. если использовать connect-disconnect, то будет открыто не более 100-200 соединений.
Если же использовать в init-destroy, то столько, сколько устройств, а при перечитывании конфигурации какое-то время в два раза больше.

Если получение соединения используется не только в Shaper, а не дополнительно и в Switch - в этом случае, соответственно, 200-400 - но это можно исправить, если получать соединение, привязанное к потоку:
Код:
connect()
{
  ServerContext context = ServerContext.get();
  con = context.getConnection();
}
У этого соединения autoCommit=false - commit вызывается после обработки всей цепочки устройств, если не произошло ошибок. Или можно самому вызывать con.commit(); Закрывать это соединение не нужно.


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

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


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

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


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

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