Здравствуйте. Вчера вечером в сети произошла следующая проблема. в 19-17 в результате скачка напряжения в некоторых районах города, сбросилось 200 из 300 абонентов онлайн. все бы ничего, но при попытке переподключения появлялась ошибка 718 в винде. серверная, где стоит сервер с БГ находится в другом районе, стоят бесперебойники и т.д. и никаких перебоев с питанием там не было. но ровно с этого времени на почту стали приходить сообщение, типа:
1. [BGRadiusDialup] Ошибка соединения с Master базой данных
Цитата:
ID события: db.master.connect.error
Время регистрации события: 10.01.2010 19:17:43
Необходимо срочно восстановить соединение с Master базой.
2. Ошибка работы BGBS скрипта
Код:
Contract id 23395
GENERATE_TIME: 10.01.10 19:18:24
EXECUTION_STOP_TIME: 10.01.10 19:19:11
PROCESS_TIME: 46839
OUT:
ERROR:
EXCEPTIONS:
Sourced file: Function [id:1; title:RADIUS-аутентификация]
Sourced file: Function [id:1; title:RADIUS-аутентификация] : at Line: 13 : in file: Function [id:1; title:RADIUS-аутентификация] : con .prepareStatement ( "SELECT ip, inet_ntoa(4294967295 & ip) FROM radius_pair_ip_1 WHERE id=?" )
Target exception: java.lang.NullPointerException: Null Pointer in Method Invocation
at bsh.UtilTargetError.toEvalError(Unknown Source)
at bsh.UtilEvalError.toEvalError(Unknown Source)
at bsh.BSHMethodInvocation.eval(Unknown Source)
at bsh.BSHPrimaryExpression.eval(Unknown Source)
at bsh.BSHPrimaryExpression.eval(Unknown Source)
at bsh.BSHAssignment.eval(Unknown Source)
at bsh.Interpreter.eval(Unknown Source)
at ru.bitel.bgbilling.kernel.script.server.bean.ScriptInstance.eval(ScriptInstance.java:310)
at bitel.billing.server.script.bean.ScriptMachine$SimpleScriptRunner.runScript(ScriptMachine.java:65)
at bitel.billing.server.script.bean.ScriptMachine.runScriptImpl(ScriptMachine.java:215)
at bitel.billing.server.script.bean.ScriptMachine.runScript(ScriptMachine.java:124)
at bitel.billing.server.script.bean.event.EventProcessor.processEvent(EventProcessor.java:238)
at bitel.billing.server.processor.DefaultProcessor.standartAuth(DefaultProcessor.java:204)
at bitel.billing.server.processor.dialup.DialUpProcessor.authenticationProcess(DialUpProcessor.java:130)
at bitel.billing.server.radius.RadiusRequestThread.processRequest(RadiusRequestThread.java:181)
at bitel.billing.server.radius.RadiusRequestThread.run(RadiusRequestThread.java:80)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
WARNINGS:
3. [BGRadiusDialup] RADIUS сервер не успевает обрабатывать запросы
Цитата:
ID события: radius.wait.thread
Время регистрации события: 10.01.2010 19:17:44
В рамках отведенного переменной acct.thread.count количества потоков RADIUS сервер не успеевает производить обработку аккаунтинг запросов.
Возможная причина - загруженность базы данных.
4. [BGRadiusDialup] Игнорирован RADIUS запрос авторизации
Цитата:
ID события: radius.auth.ignore
Время регистрации события: 10.01.2010 19:19:06
RADIUS сервер не успевает обрабатывать поток авторизаций в рамках заданного в конфигурации количества потоков (auth.thread.count - auth.thread.must.be.free.count).
Очередной запрос авторизации был получен и пропущен без обработки.
Данный механизм предотвращает скопление очереди запросов, позволяя RADIUS серверу обрабатывать по мере освобождения самые свежие запросы.
Возможная причина - загруженность базы данных.
5. [BGRadiusDialup] Игнорирован RADIUS accounting update запрос
Цитата:
ID события: radius.account.update.ignore
Время регистрации события: 10.01.2010 19:18:44
RADIUS сервер не успевает обрабатывать поток Accounting запросов в рамках отведенного количества потоков.
Очередной запрос Accounting Update был пропущен без обработки. Пропуск Accounting Update начинается, когда число текущих задействованных потоков обработки Accounting Update вырастает до (acct.thread.count - acct.thread.must.be.free.count).
Данная мера позволяет не допустить пропуска более критичных Accounting Start и Stop пакетов, оставляя acct.thread.must.be.free.count потоков свободными для их обработки.
Пропуск Accounting Update запросов снижает оперативность тарификации при update режиме обсчета.
Возможная причина - загруженность базы данных.
В файле radius.properties стоят такие значения:
auth.thread.count=140
acct.thread.count=140
В конфиге мускула:
set-variable = max_connections=250
Онлайн до этого был и больше, но проблем таких не возникало. Биллинг и мускул на одной машине. Письма сыпались с 19-17 до 19-36. Никаких настроек в этот день не делалось вообще. И каким то образом этот программный сбой точно совпал со скачком напряжения в городе и перезагрузкой некоторых свитчей.
Подскажите пожалуйста, куда смотреть и где копать?