forum.bitel.ru http://forum.bitel.ru/ |
|
[5.2] Скрипт предобработки радиус запроса http://forum.bitel.ru/viewtopic.php?f=5&t=6422 |
Страница 1 из 1 |
Автор: | Phricker [ 07 фев 2012, 11:24 ] |
Заголовок сообщения: | [5.2] Скрипт предобработки радиус запроса |
Добрый день. На одном из NASов (Cisco) стоит вот такой скрипт Код: import bitel.billing.server.radius.*; prefix = "client-mac-address"; length = prefix.length(); attributes = request.getVendorAttributes( Vendors.CISCO, CiscoVendor.Cisco_AVPair ); if( attributes != null ) for( it = attributes.iterator(); it.hasNext(); ) { ra = it.next(); value = ra.getValue(); if( value.startsWith( prefix ) ) { request.setStringAttribute( RadiusStandartAttributes.Calling_Station_Id, value.substring( length + 1 ) ); } } Временами в error.log радиуса сыпятся вот такие вот ошибки Код: radius 02-07/00:00:22 ERROR [rdsLstnr-p-8-t-111] LoggingPrintStream - java.sql.SQLException: Connection com.mysql.jdbc.JDBC4Connection@db66d4e is closed. radius 02-07/00:00:22 ERROR [rdsLstnr-p-8-t-111] LoggingPrintStream - at org.apache.commons.dbcp.DelegatingConnection.checkOpen(DelegatingConnection.java:398) radius 02-07/00:00:22 ERROR [rdsLstnr-p-8-t-111] LoggingPrintStream - at org.apache.commons.dbcp.DelegatingConnection.prepareStatement(DelegatingConnection.java:279) radius 02-07/00:00:22 ERROR [rdsLstnr-p-8-t-111] LoggingPrintStream - at bitel.billing.server.processor.dialup.DialUpSessionRealtime.setCalculatePeriod(DialUpSessionRealtime.java:1957) radius 02-07/00:00:22 ERROR [rdsLstnr-p-8-t-111] LoggingPrintStream - at bitel.billing.server.processor.dialup.DialUpSessionRealtime.calculateService(DialUpSessionRealtime.java:904) radius 02-07/00:00:22 ERROR [rdsLstnr-p-8-t-111] LoggingPrintStream - at bitel.billing.server.processor.dialup.DialUpSessionRealtime.calculateTime(DialUpSessionRealtime.java:737) radius 02-07/00:00:22 ERROR [rdsLstnr-p-8-t-111] LoggingPrintStream - at bitel.billing.server.processor.dialup.DialUpSessionRealtime.calculate(DialUpSessionRealtime.java:479) radius 02-07/00:00:22 ERROR [rdsLstnr-p-8-t-111] LoggingPrintStream - at ru.bitel.bgbilling.modules.dialup.radius.DialUpNasConnection.updateConnectionImpl(DialUpNasConnection.java:450) radius 02-07/00:00:22 ERROR [rdsLstnr-p-8-t-111] LoggingPrintStream - at ru.bitel.bgbilling.modules.dialup.radius.DialUpNasConnection.updateConnection(DialUpNasConnection.java:137) radius 02-07/00:00:22 ERROR [rdsLstnr-p-8-t-111] LoggingPrintStream - at ru.bitel.bgbilling.modules.dialup.radius.DialUpNas.updateConnection(DialUpNas.java:525) radius 02-07/00:00:22 ERROR [rdsLstnr-p-8-t-111] LoggingPrintStream - at ru.bitel.bgbilling.modules.dialup.radius.DialUpNas.updateConnection(DialUpNas.java:1) radius 02-07/00:00:22 ERROR [rdsLstnr-p-8-t-111] LoggingPrintStream - at ru.bitel.bgbilling.kernel.network.radius.RadiusProcessor.accounting(RadiusProcessor.java:494) radius 02-07/00:00:22 ERROR [rdsLstnr-p-8-t-111] LoggingPrintStream - at ru.bitel.bgbilling.modules.dialup.radius.DialUpRadiusProcessor.accounting(DialUpRadiusProcessor.java:1228) radius 02-07/00:00:22 ERROR [rdsLstnr-p-8-t-111] LoggingPrintStream - at ru.bitel.bgbilling.modules.dialup.radius.DialUpRadiusProcessor.accounting(DialUpRadiusProcessor.java:1) radius 02-07/00:00:22 ERROR [rdsLstnr-p-8-t-111] LoggingPrintStream - at ru.bitel.bgbilling.kernel.network.radius.RadiusProcessor.accountingRequest(RadiusProcessor.java:431) radius 02-07/00:00:22 ERROR [rdsLstnr-p-8-t-111] LoggingPrintStream - at ru.bitel.bgbilling.kernel.network.radius.RadiusListenerWorker.accountingRequest(RadiusListenerWorker.java:333) radius 02-07/00:00:22 ERROR [rdsLstnr-p-8-t-111] LoggingPrintStream - at ru.bitel.bgbilling.kernel.network.radius.RadiusListenerWorker.processPacket(RadiusListenerWorker.java:201) radius 02-07/00:00:22 ERROR [rdsLstnr-p-8-t-111] LoggingPrintStream - at ru.bitel.bgbilling.kernel.network.radius.RadiusListenerWorker.runImpl(RadiusListenerWorker.java:87) radius 02-07/00:00:22 ERROR [rdsLstnr-p-8-t-111] LoggingPrintStream - at ru.bitel.common.worker.WorkerTask.run(WorkerTask.java:86) radius 02-07/00:00:22 ERROR [rdsLstnr-p-8-t-111] LoggingPrintStream - at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) radius 02-07/00:00:22 ERROR [rdsLstnr-p-8-t-111] LoggingPrintStream - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) radius 02-07/00:00:22 ERROR [rdsLstnr-p-8-t-111] LoggingPrintStream - at java.lang.Thread.run(Thread.java:662) radius 02-07/00:00:22 ERROR [rdsLstnr-p-8-t-111] LoggingPrintStream - at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:40) Опытным путем было установлено, что это именно из-за скрипта. Как только его отключаешь - проблем нет. Со времен 5.1 скрипт не менялся (если быть точным в 5.1 он даже выполнял больше действий и таких проблем не было). Такое ощущение, что когда циска начинает слать больше запросов - просто не успевает пробегать этот скрипт по всем запросам и потому некоторые из них отбрасывает. В связи с этим пара вопросов: 1) Скрипт предобработки радиус запроса действует и на апдейт пакеты? (у нас шлются раз в минуту если мне память не отшибло) 2) if(1==true){Можно ли сделать как-нибудь, чтобы скрипт действовал только на запросы авторизации?} 3) Может снизить частоту отсылки апдейт пакетов? У кого какая из собственного опыта? ![]() 4) Эта проблема появилась в 5.2. В 5.1 ничего подобного не было. Разработчики гляньте, что там такое. Вдруг что можно оптимизировать ![]() Код: #cat ./radius.properties db.url=jdbc:mysql://127.0.0.1/bgbilling?useUnicode=true&characterEncoding=Cp1251&zeroDateTimeBehavior=convertToNull&jdbcCompliantTruncation=false&elideSetAutoCommits=true&cachePrepStmts=true&queryTimeoutKillsConnection=true&connectTimeout=1000 db.maxIdle=20 db.maxActive=900 db.validationTimeout=1 Код: #cat /etc/my.cnf wait_timeout = 28800 Собственно этот вопрос у меня до сих пор висит в хелпдеске. Что такие ошибки в еррор.логе. Обратился на форум, чтобы узнать может у кого этот скрипт более оптимизирован или т.п. |
Автор: | skyb [ 07 фев 2012, 12:22 ] |
Заголовок сообщения: | Re: [5.2] Скрипт предобработки радиус запроса |
Поддерживаю |
Автор: | Phricker [ 08 фев 2012, 11:16 ] |
Заголовок сообщения: | Re: [5.2] Скрипт предобработки радиус запроса |
Вверх |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |