forum.bitel.ru http://forum.bitel.ru/ |
|
Таймаут ожидания ответа,возможно Accountingсервер не запушен http://forum.bitel.ru/viewtopic.php?f=44&t=9677 |
Страница 1 из 1 |
Автор: | survivor [ 08 сен 2014, 17:20 ] |
Заголовок сообщения: | Таймаут ожидания ответа,возможно Accountingсервер не запушен |
Такое сообщение появляется при попытке "завершить (зависшее) соединение" в Мониторе соединений. У нас для каждого абонента - два соединения, одно от DHCP релея, на котором терминируется влан абонента и второе - от ISG BRAS'а, когда траффик абонента пытается выйти в интернет. Ошибка происходит только когда я хочу сбросить DHCP сессию (например абонент сменил роутер и нужно с другим маком получить IP) Проблемы начали возникать совсем недавно, похоже связано с началом подключений в новом районе. Понимаю - вопрос производительности, но что тюнить? Иногда вылетает и такое: javax.xml.ws.soap.SOAPFailtException: java.lang.NullPointerException. Полный лог: Код: javax.xml.ws.soap.SOAPFaultException: java.lang.NullPointerException at com.sun.xml.ws.fault.SOAP11Fault.getProtocolException(SOAP11Fault.java:193) at com.sun.xml.ws.fault.SOAPFaultBuilder.createException(SOAPFaultBuilder.java:134) at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:123) at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:93) at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:144) at com.sun.proxy.$Proxy35.connectionFinish(Unknown Source) at ru.bitel.bgbilling.modules.inet.api.client.monitor.InetMonitorPanel$10.actionPerformedImpl(InetMonitorPanel.java:410) at ru.bitel.common.client.AbstractBGUPanel.actionPerformed(AbstractBGUPanel.java:237) at ru.bitel.common.client.AbstractBGUPanel$DefaultAction.actionPerformed(AbstractBGUPanel.java:91) at ru.bitel.common.client.DelegateAction.actionPerformed(DelegateAction.java:21) at ru.bitel.common.client.BGSwingUtilites$1.actionPerformed(BGSwingUtilites.java:178) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at javax.swing.AbstractButton.doClick(Unknown Source) at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source) at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$400(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) Caused by: java.lang.NullPointerException at ru.bitel.bgbilling.modules.inet.api.server.service.InetSessionServiceImpl.connectionFinish(InetSessionServiceImpl.java:249) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at ru.bitel.bgbilling.kernel.container.service.server.ServiceInfo.invoke(ServiceInfo.java:101) at ru.bitel.bgbilling.kernel.container.ws.server.AbstractJaxWsHandler.invoke(AbstractJaxWsHandler.java:244) at ru.bitel.bgbilling.kernel.container.ws.server.JaxWsHandler.access$1(JaxWsHandler.java:1) at ru.bitel.bgbilling.kernel.container.ws.server.JaxWsHandler$2.run(JaxWsHandler.java:336) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:415) at ru.bitel.bgbilling.kernel.container.ws.server.JaxWsHandler.invoke(JaxWsHandler.java:330) at ru.bitel.bgbilling.kernel.container.ws.server.AbstractJaxWsHandler$ServiceInstanceResolver$1.invoke(AbstractJaxWsHandler.java:356) at com.sun.xml.ws.server.InvokerTube$2.invoke(InvokerTube.java:150) at com.sun.xml.ws.server.sei.EndpointMethodHandler.invoke(EndpointMethodHandler.java:261) at com.sun.xml.ws.server.sei.SEIInvokerTube.processRequest(SEIInvokerTube.java:100) at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:641) at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:600) at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:585) at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:482) at com.sun.xml.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java:314) at com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:608) at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:259) at com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:162) at ru.bitel.common.server.JaxWSAdapter.handle(JaxWSAdapter.java:388) at bitel.billing.server.Executer.doPost(Unknown Source) at javax.servlet.http.HttpServlet.service(HttpServlet.java:647) at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) В это же время accounting_status показывает: Код: ./accounting_status.sh Java Runtime: Oracle Corporation Java HotSpot(TM) 64-Bit Server VM [1.7.0_65] /opt/java/jdk1.7.0_65/jre Runtime name: 23833@XXX Java endorsed dirs: /lib/endorsed:/opt/java/jdk/lib/endorsed OS: Linux 2.6.32-5-amd64 [amd64], file.encoding: ISO-8859-1, user.name: root Heap sizes: current=92160k free=90654k max=1363456k Kernel version 6.1.949 / 22.08.2014 15:53:24 Inet version 6.1.575 / 20.08.2014 19:03:26 Radius: accounting-requests per minute start: 0; stop: 0; update: 18 access-requests per minute accept: 0; reject: 0 ignore per minute access-request: 0; accounting-update: 0 Started: 05.09.2014 16:36:18 Uptime: 2 d 22:27:54 Memory total: 130 547 712; max: 477 102 080; free: 60 992 312 Memory pools: Non-heap memory[Code Cache]: max: 50 331 648; used: 5 428 480; peek: 5 439 232 Heap memory[PS Eden Space]: max: 175 112 192; used: 10 362 072; peek: 160 432 128 Heap memory[PS Survivor Space]: max: 524 288; used: 360 448; peek: 4 097 384 Heap memory[PS Old Gen]: max: 357 564 416; used: 58 832 880; peek: 95 741 664 Non-heap memory[PS Perm Gen]: max: 85 983 232; used: 29 948 928; peek: 29 948 928 Thread count: 89 Trees in cache: 0 Connections pool to Master status Idle: 6; Active: 0; maxActive: 300; maxIdle: 20 В конф файлах Access'ов и Accounting'а: Код: <param name="threadCount">50</param>
<param name="maxQueueSize">300</param> |
Автор: | Amir [ 08 сен 2014, 17:28 ] |
Заголовок сообщения: | Re: Таймаут ожидания ответа,возможно Accountingсервер не зап |
А если после этого обновить монитор - сессия точно остается? P.S. Для нормальной смены роутера/компьютера есть параметр dhcp.connection.closeOnNew=1, которых закрывает все предыдущие DHCP-сессии при получении OFFER от абонента (подразумевается что возможна только одна DHCP-сессия у абонента). |
Автор: | survivor [ 08 сен 2014, 17:35 ] |
Заголовок сообщения: | Re: Таймаут ожидания ответа,возможно Accountingсервер не зап |
Amir писал(а): А если после этого обновить монитор - сессия точно остается? Да, как раз если понажимать пару раз на Текущие - ошибка и выходит, а сессия остается. Amir писал(а): P.S. Для нормальной смены роутера/компьютера есть параметр dhcp.connection.closeOnNew=1, которых закрывает все предыдущие DHCP-сессии при получении OFFER от абонента (подразумевается что возможна только одна DHCP-сессия у абонента). А это мысль! Попробую. Меня беспокоит что это первое проявление какого-то узкого места. Например почему accounting_status показывает 89 !!! потоков, хотя в конфигурации я ему разрешил 50. И это всего при десятках онлайн пользователей |
Автор: | Amir [ 08 сен 2014, 17:42 ] |
Заголовок сообщения: | Re: Таймаут ожидания ответа,возможно Accountingсервер не зап |
Кол-во потоков там показывается общее на все приложение. Там много других служебных потоков. В среднем они все спят (wait), ждут события/пакеты и т.п, иначе бы загрузка процессора была 100%. |
Автор: | Amir [ 08 сен 2014, 17:47 ] |
Заголовок сообщения: | Re: Таймаут ожидания ответа,возможно Accountingсервер не зап |
Все приложения обновлены, т.е. билды совпадают с сервером? Попробуйте указать в конфигурации модуля типы устройств, являющиеся аккаунтинг серверами accounting.deviceTypeIds= (т.е. перенесите этот параметр из inet-access.xml в конфигурацию модуля, требуется перезапуск сервера/Access/Accounting). Можно посмотреть что в activeMQ с очередью ru.bitel.bgbilling.modules.inet.accounting.event.InetConnectionCommandEvent. |
Автор: | survivor [ 08 сен 2014, 18:33 ] |
Заголовок сообщения: | Re: Таймаут ожидания ответа,возможно Accountingсервер не зап |
Обновлялся совсем недавно: Информация о версии: Код: Клиент: вер. 6.1.773 / 22.08.2014 15:53:18 os: Windows 7; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_05 ВНИМАНИЕ: Спецификация версии 1.8 не рекомендуется Сервер: вер. 6.1.949 / 22.08.2014 15:53:24 os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.7.0_65 card: вер. 6.1.199 / 22.08.2014 15:53:18 inet: вер. 6.1.575 / 20.08.2014 19:03:26 npay: вер. 6.1.176 / 05.08.2014 16:21:53 reports: вер. 6.1.186 / 21.08.2014 16:54:31 subscription: вер. 6.1.28 / 03.06.2014 19:29:00 Только сейчас заметил что Джава то у меня на клиенте стоит 1,8, не рекомендованная... Попробую даунгрейднуть. Может в этом дело. |
Автор: | Amir [ 08 сен 2014, 18:56 ] |
Заголовок сообщения: | Re: Таймаут ожидания ответа,возможно Accountingсервер не зап |
Вряд ли из-за этого. Попробуйте с accounting.deviceTypeIds. В случае с этим параметром в конфиге модуля обработка события завершения сессии по другому немного работает, оптимизированнее. |
Автор: | survivor [ 08 сен 2014, 19:01 ] |
Заголовок сообщения: | Re: Таймаут ожидания ответа,возможно Accountingсервер не зап |
Я правильно понимаю, что accounting.deviceTypeIds нужно указать в конфиге модуля Inet и присвоить ему значение 10102 из inet.accounting.xml? Код: <!-- Уникальный числовой id приложения --> <param name="app.id" value="10102"/> т.е. accounting.deviceTypeIds=10102 |
Автор: | Amir [ 08 сен 2014, 19:31 ] |
Заголовок сообщения: | Re: Таймаут ожидания ответа,возможно Accountingсервер не зап |
Нет, в inet-access.xml уже должен быть параметр accounting.deviceTypeIds <param name="accounting.deviceTypeIds" value="xxx"/> Эту строчку нужно из inet-access.xml убрать, а параметр указать в конфигурации модуля accounting.deviceTypeIds= |
Автор: | survivor [ 08 сен 2014, 19:42 ] |
Заголовок сообщения: | Re: Таймаут ожидания ответа,возможно Accountingсервер не зап |
Ясно, попробовал. отслеживаю... |
Автор: | survivor [ 09 сен 2014, 13:56 ] |
Заголовок сообщения: | Re: Таймаут ожидания ответа,возможно Accountingсервер не зап |
Помогло. Сейчас - как часы. |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |