BiTel

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

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




Начать новую тему Ответить на тему  [ Сообщений: 23 ] 
Автор Сообщение
 Заголовок сообщения: manad & ipfw
СообщениеДобавлено: 01 авг 2012, 18:06 
Не в сети

Зарегистрирован: 14 апр 2011, 19:55
Сообщения: 74
Карма: 0
Столкнулся недавно с такой проблемкой...
Делаю проверку шлюзов ipn. Задача запускается, через некоторое время в планировщике заданий все проходит без ошибок. На шлюзе наблюдаю как идет опрос, добавляются/удаляются правила... Через пару минут на почту администратора приходит сообщение "ошибка шлюзов ipn"... Пробовал "чистый" шлюз (freebsd 9, только загруженный, клиентов нет). Запускаю задачу чтобы восстановить (прописать) на нем активных клиентов. После завершения - часть клиентов действительно "появляется" на шлюзе, но не все, а только часть. При ручном "передергивании" шлюза клиентам, которые должны быть, но не оказались на шлюзе, все Ок, клиенты появляются.
В чем может быть причина?
manad под freebsd с поддержкой табличек.

Update: Сервер: вер. 5.1 сборка 773 от 07.03.2012 16:09:07
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.6.0_29


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: manad & ipfw
СообщениеДобавлено: 02 авг 2012, 18:26 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
А логах шедулера ошибок нет? Дайте точный текст сообщения


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: manad & ipfw
СообщениеДобавлено: 03 авг 2012, 13:15 
Не в сети

Зарегистрирован: 14 апр 2011, 19:55
Сообщения: 74
Карма: 0
Запустил задачу.
Вот логи:

Sheduler.log

Код:
08-03/10:52:14  INFO [Thread-9] TaskRunProcessor - Running Task: bitel.billing.server.ipn.IPNTestGates
08-03/10:52:14  INFO [pool-1-thread-15] IPNTestGates - start task id => 5 at time 03.08.2012 10
08-03/10:52:18  INFO [pool-11-thread-2] ManadGateWorker - Running script
08-03/10:52:18  INFO [pool-11-thread-8] ManadGateWorker - Running script
08-03/10:52:18  INFO [pool-11-thread-2] ManadGateWorker - I test Manad
08-03/10:52:18  INFO [pool-11-thread-8] ManadGateWorker - I test Manad
08-03/10:52:18  INFO [pool-11-thread-2] ManadGateWorker - 5 Test => 559-1 1588-5 32-3 565-1 560-3 937-3 532-4 580-1 1387-3 194-3 424-3 163-7 994-3 2288-7 722-3 89-3 1021-5 2365-8 35-3 11-3 1550-3 208-3 978-3 665-3 742-3 572-1 968-3 114-3 153-3 211-3 15-3 684-8 1577-5 2387-7 689-3 382-3 337-3 101-3 2236-8 1924-3 833-3 982-3 1329-3 198-3 489-3 2379-7 727-3 1345-3 320-3 732-3 966-3 2314-7 992-3 957-3 236-3 1954-3 706-3 218-3 135-3 348-3 2333-8 2381-7 2375-8 858-5 1876-6 104-3 131-3 985-3 154-3 23-3 1872-3 479-3 2339-8 2114-9 326-3 160-3 1015-1 47-3 8-3 716-5 98-3 1992-3 1061-3 43-3 5-3 2054-8 21-3 2176-8 1957-2 680-3 2377-8 1270-3 2129-8 586-8 1460-3 180-3 1923-3 74-2 1138-3 1289-3 2374-7 536-5 201-3 1741-7 901-3 113-3 1266-3 1319-3 1529-3 91-3 579-1 2137-9 107-3 2385-4 87-7 701-6 77-3 174-3 2189-8 563-1 97-3 2378-9 41-3 573-8 910-3 237-3 370-3 188-3 68-3 2371-8 116-3 136-3 338-3 144-3 2366-8 1947-3 100-2 576-8 965-3 616-1 25-3 2270-7 286-3 83-3 1935-8 928-3 2386-10 544-5 1407-5 177-3 1512-3 1644-3 2382-8 607-2 143-3 628-1 22-3 42-3 46-3 1685-3 399-3 1309-3 733-3 6-3 562-9 436-3 1497-6 213-3 2269-7 183-2 1260-2 608-2 1542-3 1234-3 171-3 836-2 2258-7 2174-8 2043-8 2177-8 407-3 1888-8 2029-8 1457-3 2349-8 1339-3 376-3 44-2 587-1 27-3 582-9 2343-8 20-5 243-3 109-3 1310-3 2376-9 779-3 151-3 1977-2 981-5 1825-3 78-3 987-3 413-3 990-3 2316-8 1140-3 106-3 707-3 157-3 515-5 203-3 138-9 1107-3 1383-3 81-3 137-3 60-3 792-3 17-3 1753-8 82-3 147-3 2202-8 1154-3 1291-8 69-3 596-1 1986-5 2388-8 187-3 588-1 1043-6 974-3 79-3 212-7 1668-3 494-6 577-2 996-2 1137-3 2346-8 1104-10 1548-3 176-3 1575-2 117-3 574-1 1941-8 33-3 1540-3 428-3 80-3 977-3 99-3 1120-3 821-3 566-3 179-3 2132-8 1187-3 963-3 2022-8 182-3 2031-8 462-3 980-3 207-3 142-3 929-3 514-5 1736-7 995-3 133-3 592-8 2246-8 547-4 1519-3 56-3 66-3 19-3 1272-3 54-3 1151-3 353-1 166-3 575-1 570-8 1566-2 2384-8 979-3 128-3 2089-7 156-3 589-1 2087-8 687-3 1998-8 1617-3 2247-8 626-1 900-3 1863-3 583-1 105-3 1879-8 3-3 809-3 597-1 2380-8 146-3 111-3 1486-3 38-3 4-7 591-1 745-3 34-3 2304-8 164-3 539-5

08-03/10:52:18 ERROR [pool-11-thread-2] ManadGateWorker - Eval error2: TargetError
TargetError : at Line: 112 : in file: inline evaluation of: ``import java.io.*; import java.net.*; import java.util.*; import bitel.billing.co . . . '' : throw new RuntimeException ( e ) ;

Target exception: java.lang.RuntimeException: java.lang.StringIndexOutOfBoundsException: String index out of range: -1

   at bsh.BSHThrowStatement.eval(BSHThrowStatement.java:53)
   at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
   at bsh.BSHBlock.eval(BSHBlock.java:81)
   at bsh.BSHBlock.eval(BSHBlock.java:47)
   at bsh.BSHTryStatement.eval(BSHTryStatement.java:166)
   at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
   at bsh.BSHBlock.eval(BSHBlock.java:81)
   at bsh.BshMethod.invokeImpl(BshMethod.java:362)
   at bsh.BshMethod.invoke(BshMethod.java:258)
   at bsh.BshMethod.invoke(BshMethod.java:161)
   at bitel.billing.server.ipn.GateWorker$Scripter.invokeMethod(GateWorker.java:331)
   at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:274)
   at bitel.billing.server.ipn.GateWorker.runSync(GateWorker.java:145)
   at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:107)
   at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
   at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
   at java.util.concurrent.FutureTask.run(FutureTask.java:138)
   at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
   at java.lang.Thread.run(Thread.java:662)
08-03/10:52:18 ERROR [pool-11-thread-2] LoggingPrintStream - java.lang.RuntimeException: TargetError : at Line: 112 : in file: inline evaluation of: ``import java.io.*; import java.net.*; import java.util.*; import bitel.billing.co . . . '' : throw new RuntimeException ( e ) ;

Target exception: java.lang.RuntimeException: java.lang.StringIndexOutOfBoundsException: String index out of range: -1

08-03/10:52:18 ERROR [pool-11-thread-2] LoggingPrintStream -    at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:288)
08-03/10:52:18 ERROR [pool-11-thread-2] LoggingPrintStream -    at bitel.billing.server.ipn.GateWorker.runSync(GateWorker.java:145)
08-03/10:52:18 ERROR [pool-11-thread-2] LoggingPrintStream -    at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:107)
08-03/10:52:18 ERROR [pool-11-thread-2] LoggingPrintStream -    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
08-03/10:52:18 ERROR [pool-11-thread-2] LoggingPrintStream -    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
08-03/10:52:18 ERROR [pool-11-thread-2] LoggingPrintStream -    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
08-03/10:52:18 ERROR [pool-11-thread-2] LoggingPrintStream -    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
08-03/10:52:18 ERROR [pool-11-thread-2] LoggingPrintStream -    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
08-03/10:52:18 ERROR [pool-11-thread-2] LoggingPrintStream -    at java.lang.Thread.run(Thread.java:662)
08-03/10:52:18 ERROR [pool-11-thread-2] LoggingPrintStream - Caused by: TargetError : at Line: 112 : in file: inline evaluation of: ``import java.io.*; import java.net.*; import java.util.*; import bitel.billing.co . . . '' : throw new RuntimeException ( e ) ;

Target exception: java.lang.RuntimeException: java.lang.StringIndexOutOfBoundsException: String index out of range: -1

08-03/10:52:18 ERROR [pool-11-thread-2] LoggingPrintStream -    at bsh.BSHThrowStatement.eval(BSHThrowStatement.java:53)
08-03/10:52:18 ERROR [pool-11-thread-2] LoggingPrintStream -    at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
08-03/10:52:18 ERROR [pool-11-thread-2] LoggingPrintStream -    at bsh.BSHBlock.eval(BSHBlock.java:81)
08-03/10:52:18 ERROR [pool-11-thread-2] LoggingPrintStream -    at bsh.BSHBlock.eval(BSHBlock.java:47)
08-03/10:52:18 ERROR [pool-11-thread-2] LoggingPrintStream -    at bsh.BSHTryStatement.eval(BSHTryStatement.java:166)
08-03/10:52:18 ERROR [pool-11-thread-2] LoggingPrintStream -    at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
08-03/10:52:18 ERROR [pool-11-thread-2] LoggingPrintStream -    at bsh.BSHBlock.eval(BSHBlock.java:81)
08-03/10:52:18 ERROR [pool-11-thread-2] LoggingPrintStream -    at bsh.BshMethod.invokeImpl(BshMethod.java:362)
08-03/10:52:18 ERROR [pool-11-thread-2] LoggingPrintStream -    at bsh.BshMethod.invoke(BshMethod.java:258)
08-03/10:52:18 ERROR [pool-11-thread-2] LoggingPrintStream -    at bsh.BshMethod.invoke(BshMethod.java:161)
08-03/10:52:18 ERROR [pool-11-thread-2] LoggingPrintStream -    at bitel.billing.server.ipn.GateWorker$Scripter.invokeMethod(GateWorker.java:331)
08-03/10:52:18 ERROR [pool-11-thread-2] LoggingPrintStream -    at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:274)
08-03/10:52:18 ERROR [pool-11-thread-2] LoggingPrintStream -    ... 8 more
08-03/10:52:18 ERROR [pool-11-thread-2] ManadGateWorker - Gate unaccesible - x.x.x.x
08-03/10:52:18 ERROR [pool-11-thread-2] ManadGateWorker - -------------------------
08-03/10:52:18 ERROR [pool-11-thread-2] ManadGateWorker - error: TargetError : at Line: 112 : in file: inline evaluation of: ``import java.io.*; import java.net.*; import java.util.*; import bitel.billing.co . . . '' : throw new RuntimeException ( e ) ;

Target exception: java.lang.RuntimeException: java.lang.StringIndexOutOfBoundsException: String index out of range: -1

java.lang.RuntimeException: TargetError : at Line: 112 : in file: inline evaluation of: ``import java.io.*; import java.net.*; import java.util.*; import bitel.billing.co . . . '' : throw new RuntimeException ( e ) ;

Target exception: java.lang.RuntimeException: java.lang.StringIndexOutOfBoundsException: String index out of range: -1

   at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:288)
   at bitel.billing.server.ipn.GateWorker.runSync(GateWorker.java:145)
   at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:107)
   at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
   at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
   at java.util.concurrent.FutureTask.run(FutureTask.java:138)
   at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
   at java.lang.Thread.run(Thread.java:662)
Caused by: TargetError : at Line: 112 : in file: inline evaluation of: ``import java.io.*; import java.net.*; import java.util.*; import bitel.billing.co . . . '' : throw new RuntimeException ( e ) ;

Target exception: java.lang.RuntimeException: java.lang.StringIndexOutOfBoundsException: String index out of range: -1

   at bsh.BSHThrowStatement.eval(BSHThrowStatement.java:53)
   at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
   at bsh.BSHBlock.eval(BSHBlock.java:81)
   at bsh.BSHBlock.eval(BSHBlock.java:47)
   at bsh.BSHTryStatement.eval(BSHTryStatement.java:166)
   at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
   at bsh.BSHBlock.eval(BSHBlock.java:81)
   at bsh.BshMethod.invokeImpl(BshMethod.java:362)
   at bsh.BshMethod.invoke(BshMethod.java:258)
   at bsh.BshMethod.invoke(BshMethod.java:161)
   at bitel.billing.server.ipn.GateWorker$Scripter.invokeMethod(GateWorker.java:331)
   at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:274)
   ... 8 more


sheduler.error.log:

Код:
scheduler 08-03/10:52:18 ERROR [pool-11-thread-2] ManadGateWorker - Eval error2: TargetError
TargetError : at Line: 112 : in file: inline evaluation of: ``import java.io.*; import java.net.*; import java.util.*; import bitel.billing.co . . . '' : throw new RuntimeException ( e ) ;

Target exception: java.lang.RuntimeException: java.lang.StringIndexOutOfBoundsException: String index out of range: -1

   at bsh.BSHThrowStatement.eval(BSHThrowStatement.java:53)
   at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
   at bsh.BSHBlock.eval(BSHBlock.java:81)
   at bsh.BSHBlock.eval(BSHBlock.java:47)
   at bsh.BSHTryStatement.eval(BSHTryStatement.java:166)
   at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
   at bsh.BSHBlock.eval(BSHBlock.java:81)
   at bsh.BshMethod.invokeImpl(BshMethod.java:362)
   at bsh.BshMethod.invoke(BshMethod.java:258)
   at bsh.BshMethod.invoke(BshMethod.java:161)
   at bitel.billing.server.ipn.GateWorker$Scripter.invokeMethod(GateWorker.java:331)
   at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:274)
   at bitel.billing.server.ipn.GateWorker.runSync(GateWorker.java:145)
   at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:107)
   at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
   at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
   at java.util.concurrent.FutureTask.run(FutureTask.java:138)
   at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
   at java.lang.Thread.run(Thread.java:662)
scheduler 08-03/10:52:18 ERROR [pool-11-thread-2] LoggingPrintStream - java.lang.RuntimeException: TargetError : at Line: 112 : in file: inline evaluation of: ``import java.io.*; import java.net.*; import java.util.*; import bitel.billing.co . . . '' : throw new RuntimeException ( e ) ;

Target exception: java.lang.RuntimeException: java.lang.StringIndexOutOfBoundsException: String index out of range: -1

scheduler 08-03/10:52:18 ERROR [pool-11-thread-2] LoggingPrintStream -    at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:288)
scheduler 08-03/10:52:18 ERROR [pool-11-thread-2] LoggingPrintStream -    at bitel.billing.server.ipn.GateWorker.runSync(GateWorker.java:145)
scheduler 08-03/10:52:18 ERROR [pool-11-thread-2] LoggingPrintStream -    at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:107)
scheduler 08-03/10:52:18 ERROR [pool-11-thread-2] LoggingPrintStream -    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
scheduler 08-03/10:52:18 ERROR [pool-11-thread-2] LoggingPrintStream -    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
scheduler 08-03/10:52:18 ERROR [pool-11-thread-2] LoggingPrintStream -    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
scheduler 08-03/10:52:18 ERROR [pool-11-thread-2] LoggingPrintStream -    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
scheduler 08-03/10:52:18 ERROR [pool-11-thread-2] LoggingPrintStream -    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
scheduler 08-03/10:52:18 ERROR [pool-11-thread-2] LoggingPrintStream -    at java.lang.Thread.run(Thread.java:662)
scheduler 08-03/10:52:18 ERROR [pool-11-thread-2] LoggingPrintStream - Caused by: TargetError : at Line: 112 : in file: inline evaluation of: ``import java.io.*; import java.net.*; import java.util.*; import bitel.billing.co . . . '' : throw new RuntimeException ( e ) ;

Target exception: java.lang.RuntimeException: java.lang.StringIndexOutOfBoundsException: String index out of range: -1

scheduler 08-03/10:52:18 ERROR [pool-11-thread-2] LoggingPrintStream -    at bsh.BSHThrowStatement.eval(BSHThrowStatement.java:53)
scheduler 08-03/10:52:18 ERROR [pool-11-thread-2] LoggingPrintStream -    at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
scheduler 08-03/10:52:18 ERROR [pool-11-thread-2] LoggingPrintStream -    at bsh.BSHBlock.eval(BSHBlock.java:81)
scheduler 08-03/10:52:18 ERROR [pool-11-thread-2] LoggingPrintStream -    at bsh.BSHBlock.eval(BSHBlock.java:47)
scheduler 08-03/10:52:18 ERROR [pool-11-thread-2] LoggingPrintStream -    at bsh.BSHTryStatement.eval(BSHTryStatement.java:166)
scheduler 08-03/10:52:18 ERROR [pool-11-thread-2] LoggingPrintStream -    at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
scheduler 08-03/10:52:18 ERROR [pool-11-thread-2] LoggingPrintStream -    at bsh.BSHBlock.eval(BSHBlock.java:81)
scheduler 08-03/10:52:18 ERROR [pool-11-thread-2] LoggingPrintStream -    at bsh.BshMethod.invokeImpl(BshMethod.java:362)
scheduler 08-03/10:52:18 ERROR [pool-11-thread-2] LoggingPrintStream -    at bsh.BshMethod.invoke(BshMethod.java:258)
scheduler 08-03/10:52:18 ERROR [pool-11-thread-2] LoggingPrintStream -    at bsh.BshMethod.invoke(BshMethod.java:161)
scheduler 08-03/10:52:18 ERROR [pool-11-thread-2] LoggingPrintStream -    at bitel.billing.server.ipn.GateWorker$Scripter.invokeMethod(GateWorker.java:331)
scheduler 08-03/10:52:18 ERROR [pool-11-thread-2] LoggingPrintStream -    at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:274)
scheduler 08-03/10:52:18 ERROR [pool-11-thread-2] LoggingPrintStream -    ... 8 more
scheduler 08-03/10:52:18 ERROR [pool-11-thread-2] ManadGateWorker - Gate unaccesible - x.x.x.x
scheduler 08-03/10:52:18 ERROR [pool-11-thread-2] ManadGateWorker - -------------------------
scheduler 08-03/10:52:18 ERROR [pool-11-thread-2] ManadGateWorker - error: TargetError : at Line: 112 : in file: inline evaluation of: ``import java.io.*; import java.net.*; import java.util.*; import bitel.billing.co . . . '' : throw new RuntimeException ( e ) ;

Target exception: java.lang.RuntimeException: java.lang.StringIndexOutOfBoundsException: String index out of range: -1

java.lang.RuntimeException: TargetError : at Line: 112 : in file: inline evaluation of: ``import java.io.*; import java.net.*; import java.util.*; import bitel.billing.co . . . '' : throw new RuntimeException ( e ) ;

Target exception: java.lang.RuntimeException: java.lang.StringIndexOutOfBoundsException: String index out of range: -1

   at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:288)
   at bitel.billing.server.ipn.GateWorker.runSync(GateWorker.java:145)
   at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:107)
   at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
   at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
   at java.util.concurrent.FutureTask.run(FutureTask.java:138)
   at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
   at java.lang.Thread.run(Thread.java:662)
Caused by: TargetError : at Line: 112 : in file: inline evaluation of: ``import java.io.*; import java.net.*; import java.util.*; import bitel.billing.co . . . '' : throw new RuntimeException ( e ) ;

Target exception: java.lang.RuntimeException: java.lang.StringIndexOutOfBoundsException: String index out of range: -1

   at bsh.BSHThrowStatement.eval(BSHThrowStatement.java:53)
   at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
   at bsh.BSHBlock.eval(BSHBlock.java:81)
   at bsh.BSHBlock.eval(BSHBlock.java:47)
   at bsh.BSHTryStatement.eval(BSHTryStatement.java:166)
   at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
   at bsh.BSHBlock.eval(BSHBlock.java:81)
   at bsh.BshMethod.invokeImpl(BshMethod.java:362)
   at bsh.BshMethod.invoke(BshMethod.java:258)
   at bsh.BshMethod.invoke(BshMethod.java:161)
   at bitel.billing.server.ipn.GateWorker$Scripter.invokeMethod(GateWorker.java:331)
   at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:274)
   ... 8 more

В sheduler.out, sheduler.mq.log ошибок никаких нет.


Последний раз редактировалось Andr-232 03 авг 2012, 13:46, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: manad & ipfw
СообщениеДобавлено: 03 авг 2012, 13:18 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
тег CODE же

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: manad & ipfw
СообщениеДобавлено: 03 авг 2012, 13:47 
Не в сети

Зарегистрирован: 14 апр 2011, 19:55
Сообщения: 74
Карма: 0
Прошу прощения, поторопился.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: manad & ipfw
СообщениеДобавлено: 06 авг 2012, 13:03 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
уберите try catch и снова получите ошибку . Так не понятно где конкретно упало


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: manad & ipfw
СообщениеДобавлено: 07 авг 2012, 12:42 
Не в сети

Зарегистрирован: 14 апр 2011, 19:55
Сообщения: 74
Карма: 0
stark писал(а):
уберите try catch и снова получите ошибку . Так не понятно где конкретно упало


В манаде нет такой структуры. Или ее надо убрать на стороне сервера?...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: manad & ipfw
СообщениеДобавлено: 07 авг 2012, 17:07 
Не в сети

Зарегистрирован: 14 апр 2011, 19:55
Сообщения: 74
Карма: 0
stark писал(а):
уберите try catch и снова получите ошибку . Так не понятно где конкретно упало


Ок, выключил, вот вывод sheduler.error.log:

Код:
scheduler 08-07/14:55:05 ERROR [pool-3-thread-2] ManadGateWorker - Eval error2: Method Invocation rule.substring
Method Invocation rule.substring : at Line: 139 : in file: inline evaluation of: ``import java.io.*; import java.net.*; import java.util.*; import bitel.billing.co . . . '' : rule .substring ( ib , ie )

Target exception: java.lang.StringIndexOutOfBoundsException: String index out of range: -1

   at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:97)
   at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102)
   at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)
   at bsh.BSHAssignment.eval(BSHAssignment.java:77)
   at bsh.BSHIfStatement.eval(BSHIfStatement.java:48)
   at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
   at bsh.BSHBlock.eval(BSHBlock.java:81)
   at bsh.BSHBlock.eval(BSHBlock.java:47)
   at bsh.BSHIfStatement.eval(BSHIfStatement.java:48)
   at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
   at bsh.BSHBlock.eval(BSHBlock.java:81)
   at bsh.BshMethod.invokeImpl(BshMethod.java:362)
   at bsh.BshMethod.invoke(BshMethod.java:258)
   at bsh.BshMethod.invoke(BshMethod.java:186)
   at bsh.Name.invokeLocalMethod(Name.java:917)
   at bsh.Name.invokeMethod(Name.java:804)
   at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:75)
   at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102)
   at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)
   at bsh.BSHAssignment.eval(BSHAssignment.java:77)
   at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
   at bsh.BSHBlock.eval(BSHBlock.java:81)
   at bsh.BSHBlock.eval(BSHBlock.java:47)
   at bsh.BSHIfStatement.eval(BSHIfStatement.java:48)
   at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
   at bsh.BSHBlock.eval(BSHBlock.java:81)
   at bsh.BSHBlock.eval(BSHBlock.java:47)
   at bsh.BSHForStatement.eval(BSHForStatement.java:111)
   at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
   at bsh.BSHBlock.eval(BSHBlock.java:81)
   at bsh.BshMethod.invokeImpl(BshMethod.java:362)
   at bsh.BshMethod.invoke(BshMethod.java:258)
   at bsh.BshMethod.invoke(BshMethod.java:161)
   at bitel.billing.server.ipn.GateWorker$Scripter.invokeMethod(GateWorker.java:331)
   at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:274)
   at bitel.billing.server.ipn.GateWorker.runSync(GateWorker.java:145)
   at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:107)
   at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
   at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
   at java.util.concurrent.FutureTask.run(FutureTask.java:138)
   at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
   at java.lang.Thread.run(Thread.java:662)
scheduler 08-07/14:55:05 ERROR [pool-3-thread-2] LoggingPrintStream - java.lang.RuntimeException: Method Invocation rule.substring : at Line: 139 : in file: inline evaluation of: ``import java.io.*; import java.net.*; import java.util.*; import bitel.billing.co . . . '' : rule .substring ( ib , ie )

Target exception: java.lang.StringIndexOutOfBoundsException: String index out of range: -1

scheduler 08-07/14:55:05 ERROR [pool-3-thread-2] LoggingPrintStream -    at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:288)
scheduler 08-07/14:55:05 ERROR [pool-3-thread-2] LoggingPrintStream -    at bitel.billing.server.ipn.GateWorker.runSync(GateWorker.java:145)
scheduler 08-07/14:55:05 ERROR [pool-3-thread-2] LoggingPrintStream -    at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:107)
scheduler 08-07/14:55:05 ERROR [pool-3-thread-2] LoggingPrintStream -    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
scheduler 08-07/14:55:05 ERROR [pool-3-thread-2] LoggingPrintStream -    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
scheduler 08-07/14:55:05 ERROR [pool-3-thread-2] LoggingPrintStream -    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
scheduler 08-07/14:55:05 ERROR [pool-3-thread-2] LoggingPrintStream -    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
scheduler 08-07/14:55:05 ERROR [pool-3-thread-2] LoggingPrintStream -    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
scheduler 08-07/14:55:05 ERROR [pool-3-thread-2] LoggingPrintStream -    at java.lang.Thread.run(Thread.java:662)
scheduler 08-07/14:55:05 ERROR [pool-3-thread-2] LoggingPrintStream - Caused by: Method Invocation rule.substring : at Line: 139 : in file: inline evaluation of: ``import java.io.*; import java.net.*; import java.util.*; import bitel.billing.co . . . '' : rule .substring ( ib , ie )

Target exception: java.lang.StringIndexOutOfBoundsException: String index out of range: -1

scheduler 08-07/14:55:05 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:97)
scheduler 08-07/14:55:05 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102)
scheduler 08-07/14:55:05 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)
scheduler 08-07/14:55:05 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHAssignment.eval(BSHAssignment.java:77)
scheduler 08-07/14:55:05 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHIfStatement.eval(BSHIfStatement.java:48)
scheduler 08-07/14:55:05 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
scheduler 08-07/14:55:05 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHBlock.eval(BSHBlock.java:81)
scheduler 08-07/14:55:05 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHBlock.eval(BSHBlock.java:47)
scheduler 08-07/14:55:05 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHIfStatement.eval(BSHIfStatement.java:48)
scheduler 08-07/14:55:05 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
scheduler 08-07/14:55:05 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHBlock.eval(BSHBlock.java:81)
scheduler 08-07/14:55:05 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BshMethod.invokeImpl(BshMethod.java:362)
scheduler 08-07/14:55:05 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BshMethod.invoke(BshMethod.java:258)
scheduler 08-07/14:55:05 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BshMethod.invoke(BshMethod.java:186)
scheduler 08-07/14:55:05 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.Name.invokeLocalMethod(Name.java:917)
scheduler 08-07/14:55:05 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.Name.invokeMethod(Name.java:804)
scheduler 08-07/14:55:05 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:75)
scheduler 08-07/14:55:05 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102)
scheduler 08-07/14:55:05 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)
scheduler 08-07/14:55:05 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHAssignment.eval(BSHAssignment.java:77)
scheduler 08-07/14:55:05 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
scheduler 08-07/14:55:05 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHBlock.eval(BSHBlock.java:81)
scheduler 08-07/14:55:05 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHBlock.eval(BSHBlock.java:47)
scheduler 08-07/14:55:05 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHIfStatement.eval(BSHIfStatement.java:48)
scheduler 08-07/14:55:05 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
scheduler 08-07/14:55:05 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHBlock.eval(BSHBlock.java:81)
scheduler 08-07/14:55:05 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHBlock.eval(BSHBlock.java:47)
scheduler 08-07/14:55:05 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHForStatement.eval(BSHForStatement.java:111)
scheduler 08-07/14:55:05 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
scheduler 08-07/14:55:05 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHBlock.eval(BSHBlock.java:81)
scheduler 08-07/14:55:05 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BshMethod.invokeImpl(BshMethod.java:362)
scheduler 08-07/14:55:05 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BshMethod.invoke(BshMethod.java:258)
scheduler 08-07/14:55:05 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BshMethod.invoke(BshMethod.java:161)
scheduler 08-07/14:55:05 ERROR [pool-3-thread-2] LoggingPrintStream -    at bitel.billing.server.ipn.GateWorker$Scripter.invokeMethod(GateWorker.java:331)
scheduler 08-07/14:55:05 ERROR [pool-3-thread-2] LoggingPrintStream -    at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:274)
scheduler 08-07/14:55:05 ERROR [pool-3-thread-2] LoggingPrintStream -    ... 8 more
scheduler 08-07/14:55:05 ERROR [pool-3-thread-2] ManadGateWorker - Gate unaccesible - x.x.x.x
scheduler 08-07/14:55:05 ERROR [pool-3-thread-2] ManadGateWorker - -------------------------
scheduler 08-07/14:55:05 ERROR [pool-3-thread-2] ManadGateWorker - error: Method Invocation rule.substring : at Line: 139 : in file: inline evaluation of: ``import java.io.*; import java.net.*; import java.util.*; import bitel.billing.co . . . '' : rule .substring ( ib , ie )

Target exception: java.lang.StringIndexOutOfBoundsException: String index out of range: -1

java.lang.RuntimeException: Method Invocation rule.substring : at Line: 139 : in file: inline evaluation of: ``import java.io.*; import java.net.*; import java.util.*; import bitel.billing.co . . . '' : rule .substring ( ib , ie )

Target exception: java.lang.StringIndexOutOfBoundsException: String index out of range: -1

   at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:288)
   at bitel.billing.server.ipn.GateWorker.runSync(GateWorker.java:145)
   at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:107)
   at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
   at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
   at java.util.concurrent.FutureTask.run(FutureTask.java:138)
   at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
   at java.lang.Thread.run(Thread.java:662)
Caused by: Method Invocation rule.substring : at Line: 139 : in file: inline evaluation of: ``import java.io.*; import java.net.*; import java.util.*; import bitel.billing.co . . . '' : rule .substring ( ib , ie )

Target exception: java.lang.StringIndexOutOfBoundsException: String index out of range: -1

   at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:97)
   at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102)
   at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)
   at bsh.BSHAssignment.eval(BSHAssignment.java:77)
   at bsh.BSHIfStatement.eval(BSHIfStatement.java:48)
   at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
   at bsh.BSHBlock.eval(BSHBlock.java:81)
   at bsh.BSHBlock.eval(BSHBlock.java:47)
   at bsh.BSHIfStatement.eval(BSHIfStatement.java:48)
   at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
   at bsh.BSHBlock.eval(BSHBlock.java:81)
   at bsh.BshMethod.invokeImpl(BshMethod.java:362)
   at bsh.BshMethod.invoke(BshMethod.java:258)
   at bsh.BshMethod.invoke(BshMethod.java:186)
   at bsh.Name.invokeLocalMethod(Name.java:917)
   at bsh.Name.invokeMethod(Name.java:804)
   at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:75)
   at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102)
   at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)
   at bsh.BSHAssignment.eval(BSHAssignment.java:77)
   at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
   at bsh.BSHBlock.eval(BSHBlock.java:81)
   at bsh.BSHBlock.eval(BSHBlock.java:47)
   at bsh.BSHIfStatement.eval(BSHIfStatement.java:48)
   at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
   at bsh.BSHBlock.eval(BSHBlock.java:81)
   at bsh.BSHBlock.eval(BSHBlock.java:47)
   at bsh.BSHForStatement.eval(BSHForStatement.java:111)
   at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
   at bsh.BSHBlock.eval(BSHBlock.java:81)
   at bsh.BshMethod.invokeImpl(BshMethod.java:362)
   at bsh.BshMethod.invoke(BshMethod.java:258)
   at bsh.BshMethod.invoke(BshMethod.java:161)
   at bitel.billing.server.ipn.GateWorker$Scripter.invokeMethod(GateWorker.java:331)
   at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:274)
   ... 8 more



Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: manad & ipfw
СообщениеДобавлено: 09 авг 2012, 13:58 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
выложите еще текст скрипта(BeanShell) манада


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: manad & ipfw
СообщениеДобавлено: 09 авг 2012, 14:48 
Не в сети

Зарегистрирован: 14 апр 2011, 19:55
Сообщения: 74
Карма: 0
Скрипт не на BeanShell, а на Perl-е.

Код:
#!/usr/bin/perl

use POSIX;
use IO::Socket;
use IO::Select;
use Socket;
use Fcntl;
use Tie::RefHash;


$debug = 1;
$port = 4445;
$ipfw = "/sbin/ipfw";
$rule_start = 35000;
#$pipe_start = 800;
$set = 10;

# База данных правил клиентов
%CLRULE = ();
%CLRULE_ID = ();

# База данных используемых номеров правил
%USERULEN = ();
%CLUSERULEN = ();

# База данных используемых номеров труб
%USEPIPEN = ();
%CLUSEPIPEN = ();

# Начать с пустыми буферами
%inbuffer   = ();
%outbuffer   = ();
%ready      = ();

tie %ready, 'Tie::RefHash';

# Прослушивать порт
$server = IO::Socket::INET->new( LocalPort => $port, Listen => 10 )
   or die "Can`t make server socket: $@\n";

nonblock( $server );

$SIG{INT} = sub { $server->close(); exit( 0 ); };

$select = IO::Select->new( $server );

$pid = getpid();

open(FILE, ">/var/run/manad.pid");
print FILE $pid;
close(FILE);

# Устанавливаем новый root каталог для процесса
# chroot( $homedir ) or die "Couldn`t chroot to $homedir: $!\n";

# Главный цикл: проверка чтения/принятия, проверка записи,
# проверка готовности к работе

while( 1 )
{
   my $client;
   my $rv;
   my $data;

   # Проверить наличие новой информации на имеющихся подключениях

   # Есть ли что-нибудь для чтения или подтверждения?   
   foreach $client ( $select->can_read( 1 ) )
   {
      if ( $client == $server )
      {
         # Принять новое подключение
         $client = $server->accept();
         $select->add( $client );
         nonblock( $client );
      }     
      else
      {
         # Прочитать данные
         $data = '';
         $rv = $client->recv( $data, POSIX::BUFSIZ, 0 );

         unless( defined( $rv ) && length $data )
         {
            # Это должен быть конец файла, поэтому закрываем клиента
            delete $inbuffer{$client};
            delete $outbuffer{$client};
            delete $ready{$client};

            $select->remove( $client );
            close $client;
            next;
         }

         $inbuffer{$client} .= $data;

         # Проверить, говорят ли данные в буфере или только что прочитанные
         # данные о наличии полного запроса, ожидающего выполнения. Если да -
         # заполнить $ready{$client} запросами, ожидающими обработки.
         while( $inbuffer{$client} =~ s/(.*\n)// ) { push( @{$ready{$client}}, $1 ) }
      }
   }
   
   # Есть ли полные запросы для обработки?
   foreach $client ( keys %ready ) { handle( $client ); }

   # Сбрасываем буферы?
   foreach $client ( $select->can_write( 1 ) )
   {
      # Пропустить этого слиента, если нам нечего сказать
      next unless $outbuffer{$client};
                block( $client );
      $rv = $client->send( $outbuffer{$client}, 0 );
      nonblock( $client );
      unless( defined $rv )
      {
         # Пожаловаться, но следовать дальше
         warn "I was told I could write? but I can`t.\n";
         next;
      }
      if ( $rv == length $outbuffer{$client} || $! == POSIX::EWOULDBLOCK )
      {
         substr( $outbuffer{$client}, 0, $rv ) = '';
         delete $outbuffer{$client} unless length $outbuffer{$client};
      }
      else
      {
         # Не удалось записать все данные и не из-за блокировки.
         # Очистить буферы и следовать дальше.
         delete $inbuffer{$client};
         delete $outbuffer{$client};
         delete $ready{$client};

         $select->remove($client);
         close($client);
         next;
      }
   }
}

# handle( $socket ) обрабатывает все необработанные запросы
# для клиента $client
sub handle
{
   # Запрос находится в $ready{$client}
   # Отправить вывод в $outbuffer{$client}
   my $client = shift;
   my $request;

   foreach $request ( @{$ready{$client}} )
   {
      print "\nrequest=".$request if ( $debug == 1 );

      if ( $request =~ /^testRID/ )
      {
         my $open_client = "";
         foreach my $kod ( keys %CLRULE )
            { $open_client .= $open_client eq "" ? $kod : " ".$kod;
            ($CLRULE_ID{$kod} ne "")?$open_client.="-".$CLRULE_ID{$kod}:"";
            }
         $outbuffer{$client} .= $open_client."\n";
      }
      elsif ( $request =~ /^test/ )
      {
         my $open_client = "";
         foreach my $kod ( keys %CLRULE )
            { $open_client .= $open_client eq "" ? $kod : " ".$kod;}
         $outbuffer{$client} .= $open_client."\n";
      }
      elsif ( $request =~ /^add\t([0-9]+)\t(.*)/ )
      {
         my ($skip,$rid)=split /RULE/,$2;
         print "\n=rule".$rid."\n" if ( $debug == 1 );
         my ($kod, $rule) = ($1, $2);
         &delete_rule( $kod ) if ( exists $CLRULE{$kod} );
         &add_rule( $kod, $rule,$rid ) if ( !exists $CLRULE{$kod} );
      }
      elsif ( $request =~ /^remove\t([0-9]+)\t(.*)/ )
      {
         &delete_rule( $1,$2 ) if ( exists $CLRULE{$1} );
      }
   }

   delete $ready{$client};
}

# nonblock( $socket ) переводит сокет в неблокирующий режим
sub nonblock
{
   my $socket = shift;
   my $flags;

   $flags = fcntl( $socket, F_GETFL, 0 )
      or die "Can`t get flags for socket: $!\n";
   fcntl( $socket, F_SETFL, $flags | O_NONBLOCK )
      or die "Can`t make socket nonblocking: $!\n";
}

sub block
{
   my $socket = shift;
   my $flags;

   $flags = fcntl( $socket, F_GETFL, 0 )
      or die "Can`t get flags for socket: $!\n";
   fcntl( $socket, F_SETFL, $flags ^ O_NONBLOCK )
      or die "Can`t make socket nonblocking: $!\n";
}

sub add_rule
{
   my $kod = $_[0];
   my $rule = $_[1];
   my $rid = $_[2];
   my %N = ();
   my %P = ();

   $CLRULE{$kod} = $rule;
   $CLRULE_ID{$kod} = $rid;

   while ( $rule =~ /\{N([AB0-9]+)\}/ )
   {
      my $n = $1;
      my $i = $rule_start - 1;
      my $j = 0;
      while( 1 )
      {
         while( 1 )
         {
            $i++;
            last if ( !exists $USERULEN{$i} );
         }
         $j++;
         last if ( $j == $n );
         last if ( $n == 0 );
      }
      $USERULEN{$i} = $kod;
      $N{$n} = $i;
      $rule =~ s/\{N$n\}/$N{$n}/g;
   }

#   while ( $rule =~ /\{P([AB0-9]+)\}/ )
#   {
#      my $p = $1;
#      my $i = $pipe_start - 1;
#      my $j = 0;
#      while( 1 )
#      {
#         while( 1 )
#         {
#            $i++;
#            last if ( !exists $USEPIPEN{$i} );
#         }
#         $j++;
#         last if ( $j == $p );
#         last if ( $p == 0 );
#      }
#      $USEPIPEN{$i} = $kod;
#      $P{$p} = $i;
#      $rule =~ s/\{P$p\}/$P{$p}/g;
#   }

   foreach my $i ( keys %N ) { $CLUSERULEN{$kod} .= exists $CLUSERULEN{$kod} && $CLUSERULEN{$kod} ne "" ? " ".$N{$i} : $N{$i}; }
#   foreach my $i ( keys %P ) { $CLUSEPIPEN{$kod} .= exists $CLUSEPIPEN{$kod} && $CLUSEPIPEN{$kod} ne "" ? " ".$P{$i} : $P{$i}; }

 #  $rule =~ s/\|pipe/; \/sbin\/ipfw -q pipe /g;
   $rule =~ s/\|table/; \/sbin\/ipfw -q table /g;
   $rule =~ s/\|add ([0-9]+)/; \/sbin\/ipfw -q add $1 set $set /g;
#        $rule =~ s/^pipe/\/sbin\/ipfw -q pipe /g;
        $rule =~ s/^table/\/sbin\/ipfw -q table /g;       
   $rule =~ s/^add ([0-9]+)/\/sbin\/ipfw -q add $1 set $set /g;
   $rule =~ s/\|/;/g;
#   print "$ipfw -q $rule\n" if ( $debug == 1 );
#   $err = `$ipfw -q $rule`;
   print "$rule\n" if ( $debug == 1 );
   $err = `$rule`;

}

sub delete_rule
{
   my $kod = $_[0];
   my $rule= $_[1];

   if ( exists $CLRULE{$kod} )
   {
      $rule =~ s/\|table/; \/sbin\/ipfw -q table /g;
          $rule =~ s/^table/\/sbin\/ipfw -q table /g;       
      $rule =~ s/\|/;/g;
#      print "$ipfw -q $rule\n" if ( $debug == 1 );
#      $err = `$ipfw -q $rule`;
      print "$rule\n" if ( $debug == 1 );
      $err = `$rule`;


      my @N = split( / /, $CLUSERULEN{$kod} );

      foreach my $i ( @N )
      {
         print "$ipfw delete $i\n" if ( $debug == 1 );
         $err = `$ipfw delete $i`;
         delete $USERULEN{$i};
      }

      my @P = split( / /, $CLUSEPIPEN{$kod} );

      foreach my $i ( @P )
      {
         print "$ipfw pipe delete $i\n" if ( $debug == 1 );
#         $err = `$ipfw pipe delete $i`;
#         delete $USEPIPEN{$i};
      }
      delete $CLUSERULEN{$kod};
#      delete $CLUSEPIPEN{$kod};
      delete $CLRULE_ID{$kod};
      delete $CLRULE{$kod};
   }
}.


Скрипт был взят с этого форума, "переделанный под работу с табличками". Шейпер реализован другими методами, поэтому выкинут из скрипта. Такой же скрипт работает на другом шлюзе с freebsd, там проблем нет, но клиентов там на сейчас немного меньше. Этот скрипт тоже работал "как надо", проблемы начались после "перехода" какого-то количества клиентских записей, привязанных к шлюзу. Лично у меня сложилось такое ощущение, что не хватает каких-то буферов (может на прием на шлюзе, может на передачу, на сервере), - при запуске задачи "проверка шлюзов ipn" на "проблемном" шлюзе наблюдаю, что он начал обрабатывать запросы с сервера(БГ), но на каком-то этапе его "клинит"...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: manad & ipfw
СообщениеДобавлено: 09 авг 2012, 15:09 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
да нет , нужен именно скрипт из биллинга на BeanShell. Из типа шлюза.
Ошибку то то он выдает , а не perl .


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: manad & ipfw
СообщениеДобавлено: 09 авг 2012, 15:14 
Не в сети

Зарегистрирован: 14 апр 2011, 19:55
Сообщения: 74
Карма: 0
Он вообще "дефолтный":

Код:
import java.io.*;
import java.net.*;
import java.util.*;
import bitel.billing.common.module.ipn.*;
import bitel.billing.server.ipn.bean.*;
import ru.bitel.bgbilling.modules.ipn.server.bean.command.*;

protected void doSync()
{
        host = gate.getHost();
        port = gate.getPort();
        gid = gate.getId();

        if ( log.isDebugEnabled() )
        {
            log.debug( gid + " gate: " + host + ":" + port );
        }


//        try
//        {
                socket = new Socket( host, port );
                out = new PrintWriter( socket.getOutputStream(), true );
                isr = new InputStreamReader( socket.getInputStream() );
                in = new BufferedReader( isr );
            log.info("I test Manad");
                out.println( "testRID" );
                kods = in.readLine();

        if ( log.isDebugEnabled() )
        {
            log.debug( gid + " Test => " + kods + "\n" );
        }
            log.info( gid + " Test => " + kods + "\n" );

                // список открытых договоров с шлюза
                gateRules = new HashMap( 5, 5 );
                st = new StringTokenizer( kods );
                while ( st.hasMoreTokens() )
                {
                  sp=st.nextToken().split("-");
                  if(sp.length==2) gateRules.put( new Integer( sp[0] ),(sp[1]==null)?null:new Integer(sp[1]) );
                  else gateRules.put( new Integer( sp[0] ),null);
                }

                for( i = 0; i < statusList.size(); i++ )
                {
                        status = statusList.get(i);
                        cid = status.contractId;

                        // флаг того то правило есть на шлюзе
                        flag = false;
                  ruleChanged=false;
                        // правило для этого договора есть на шлюзе
                        if ( gateRules.containsKey( cid ) )
                        {
                                //      если правило есть а юзер заблокирован - удаляем правило
                                if ( status.status > 0 )
                                {
                                        rule = generateRule( status ,false);
                                        command = "remove\t" + cid.intValue() + "\t" + rule;
                                        out.println( command );
                                     if ( log.isDebugEnabled() ) {
                                     log.debug( gid + " " + command );
                                        }
                              log.info( gid + " " + command );
                                 }else{
                           // правило есть и юзер открыт - проверяем тип правила
                           rid=gateRules.get(cid);
                           if(rid!=null && status.ruleType==null) ruleChanged=true;
                           if(rid==null && status.ruleType!=null) ruleChanged=false; // совместимость со старым manad
                           if(rid!=null && status.ruleType!=null && !rid.equals(status.ruleType.getId())) ruleChanged=true;
                           if(ruleChanged){
                                     if ( log.isDebugEnabled() ) {
                                     log.debug( gid + " rule changed");
                                        }
                                 log.info( gid + " rule changed");
                           }
                           }                                               

                                flag = true;
                                gateRules.remove( cid );
                        }

                        // правила нет, а юзер открыт, правило есть, но было изменение типа правила
                        if ( (!flag &&
                                status.status == IPNContractStatus.STATUS_OPEN ) ||(ruleChanged && status.status == IPNContractStatus.STATUS_OPEN ))
                        {
                                rule = generateRule( status, true);

                                command = "add\t" + cid.intValue() + "\t" + rule; // в случае изменения manad затрет старые правила ipfw
                          if( status.ruleType != null ) command+=" // RULE"+status.ruleType.getId();
                 
                                out.println( command );

                            if ( log.isDebugEnabled() )
                {
                    log.debug( gid + " " + command );
                }
   log.info( gid + " " + command );


                        }
                }

                in.close();
                out.close();
                socket.close();
/*        }
        catch ( e )
        {
                throw new RuntimeException ( e );
        }
*/}

private generateRule( status ,open)
{
        rule = null;

        // пользовательское правило, без типа
        if( status.ruleType == null )
        {
                rule = status.rule.getRuleText();
        }
        // типизированное правило
        else
        {       

                ruleText = GateCommandUtil.getRule( status.gateType, status.ruleType );
                rule =  GateCommandUtil.generateRule( ruleText,  status.rule.getRuleText(), null, status.ruleType );                     
        }


        rule = rule.replaceAll( "\r", "" );
        rule = rule.replaceAll( "\n", "|" );
if(open){
   ib=rule.indexOf("[OPEN]")+7;
    ie=rule.indexOf("[/OPEN]")-1;
   if(ib>-1&&ie>-1) rule=rule.substring(ib,ie);
}else{
   ib=rule.indexOf("[CLOSE]")+8;
    ie=rule.indexOf("[/CLOSE]")-1;
   if(ib>-1&&ie>-1) rule=rule.substring(ib,ie);
}
        return    rule;
}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: manad & ipfw
СообщениеДобавлено: 09 авг 2012, 17:32 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Andr-232 писал(а):
Он вообще "дефолтный":

Он выложен на wiki одним из наших пользователей . Даже не знаю можно ли назвать это дефолтным.

Вот в этом коде ошибка
Код:
   ib=rule.indexOf("[OPEN]")+7;
    ie=rule.indexOf("[/OPEN]")-1;
   if(ib>-1&&ie>-1) rule=rule.substring(ib,ie);



У вас что стоит в командах шлюза ? Секция [OPEN]..[/OPEN] там есть ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: manad & ipfw
СообщениеДобавлено: 09 авг 2012, 20:32 
Не в сети

Зарегистрирован: 14 апр 2011, 19:55
Сообщения: 74
Карма: 0
stark писал(а):
Andr-232 писал(а):
Он вообще "дефолтный":

Он выложен на wiki одним из наших пользователей . Даже не знаю можно ли назвать это дефолтным.


Да, все верно, беру свои слова обратно. Думал брал его в справке к программе, даже проверил...


stark писал(а):
У вас что стоит в командах шлюза ? Секция [OPEN]..[/OPEN] там есть ?


Вот команды шлюза:

Код:
[DEFAULT]
[OPEN]
<LOOP>
table ${speed} delete {A}
table ${speed} add {A}
table 1 list
</LOOP>
[/OPEN]
[CLOSE]
<LOOP>
table ${speed} delete {A}
</LOOP>
[/CLOSE]
[/DEFAULT]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: manad & ipfw
СообщениеДобавлено: 10 авг 2012, 10:24 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
попробуйте в этом месте
Код:
  ib=rule.indexOf("[OPEN]")+7;
    ie=rule.indexOf("[/OPEN]")-1;
   if(ib>-1&&ie>-1) rule=rule.substring(ib,ie);


сделать такой вывод

Код:
  ib=rule.indexOf("[OPEN]")+7;
    ie=rule.indexOf("[/OPEN]")-1;
    log.info( "rule=" + rule +";ib=" + ib + ";ie=" + ie );
   if(ib>-1&&ie>-1) rule=rule.substring(ib,ie);


и полученную строку из лога сюда


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: manad & ipfw
СообщениеДобавлено: 10 авг 2012, 13:16 
Не в сети

Зарегистрирован: 14 апр 2011, 19:55
Сообщения: 74
Карма: 0
Вот sheduler.error.log:

Код:
scheduler 08-10/11:06:13 ERROR [pool-3-thread-2] ManadGateWorker - Eval error2: Method Invocation rule.substring
Method Invocation rule.substring : at Line: 139 : in file: inline evaluation of: ``import java.io.*; import java.net.*; import java.util.*; import bitel.billing.co . . . '' : rule .substring ( ib , ie )

Target exception: java.lang.StringIndexOutOfBoundsException: String index out of range: -1

   at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:97)
   at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102)
   at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)
   at bsh.BSHAssignment.eval(BSHAssignment.java:77)
   at bsh.BSHIfStatement.eval(BSHIfStatement.java:48)
   at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
   at bsh.BSHBlock.eval(BSHBlock.java:81)
   at bsh.BSHBlock.eval(BSHBlock.java:47)
   at bsh.BSHIfStatement.eval(BSHIfStatement.java:48)
   at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
   at bsh.BSHBlock.eval(BSHBlock.java:81)
   at bsh.BshMethod.invokeImpl(BshMethod.java:362)
   at bsh.BshMethod.invoke(BshMethod.java:258)
   at bsh.BshMethod.invoke(BshMethod.java:186)
   at bsh.Name.invokeLocalMethod(Name.java:917)
   at bsh.Name.invokeMethod(Name.java:804)
   at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:75)
   at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102)
   at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)
   at bsh.BSHAssignment.eval(BSHAssignment.java:77)
   at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
   at bsh.BSHBlock.eval(BSHBlock.java:81)
   at bsh.BSHBlock.eval(BSHBlock.java:47)
   at bsh.BSHIfStatement.eval(BSHIfStatement.java:48)
   at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
   at bsh.BSHBlock.eval(BSHBlock.java:81)
   at bsh.BSHBlock.eval(BSHBlock.java:47)
   at bsh.BSHForStatement.eval(BSHForStatement.java:111)
   at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
   at bsh.BSHBlock.eval(BSHBlock.java:81)
   at bsh.BshMethod.invokeImpl(BshMethod.java:362)
   at bsh.BshMethod.invoke(BshMethod.java:258)
   at bsh.BshMethod.invoke(BshMethod.java:161)
   at bitel.billing.server.ipn.GateWorker$Scripter.invokeMethod(GateWorker.java:331)
   at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:274)
   at bitel.billing.server.ipn.GateWorker.runSync(GateWorker.java:145)
   at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:107)
   at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
   at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
   at java.util.concurrent.FutureTask.run(FutureTask.java:138)
   at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
   at java.lang.Thread.run(Thread.java:662)
scheduler 08-10/11:06:13 ERROR [pool-3-thread-2] LoggingPrintStream - java.lang.RuntimeException: Method Invocation rule.substring : at Line: 139 : in file: inline evaluation of: ``import java.io.*; import java.net.*; import java.util.*; import bitel.billing.co . . . '' : rule .substring ( ib , ie )

Target exception: java.lang.StringIndexOutOfBoundsException: String index out of range: -1

scheduler 08-10/11:06:13 ERROR [pool-3-thread-2] LoggingPrintStream -    at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:288)
scheduler 08-10/11:06:13 ERROR [pool-3-thread-2] LoggingPrintStream -    at bitel.billing.server.ipn.GateWorker.runSync(GateWorker.java:145)
scheduler 08-10/11:06:13 ERROR [pool-3-thread-2] LoggingPrintStream -    at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:107)
scheduler 08-10/11:06:13 ERROR [pool-3-thread-2] LoggingPrintStream -    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
scheduler 08-10/11:06:13 ERROR [pool-3-thread-2] LoggingPrintStream -    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
scheduler 08-10/11:06:13 ERROR [pool-3-thread-2] LoggingPrintStream -    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
scheduler 08-10/11:06:13 ERROR [pool-3-thread-2] LoggingPrintStream -    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
scheduler 08-10/11:06:13 ERROR [pool-3-thread-2] LoggingPrintStream -    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
scheduler 08-10/11:06:13 ERROR [pool-3-thread-2] LoggingPrintStream -    at java.lang.Thread.run(Thread.java:662)
scheduler 08-10/11:06:13 ERROR [pool-3-thread-2] LoggingPrintStream - Caused by: Method Invocation rule.substring : at Line: 139 : in file: inline evaluation of: ``import java.io.*; import java.net.*; import java.util.*; import bitel.billing.co . . . '' : rule .substring ( ib , ie )

Target exception: java.lang.StringIndexOutOfBoundsException: String index out of range: -1

scheduler 08-10/11:06:13 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:97)
scheduler 08-10/11:06:13 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102)
scheduler 08-10/11:06:13 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)
scheduler 08-10/11:06:13 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHAssignment.eval(BSHAssignment.java:77)
scheduler 08-10/11:06:13 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHIfStatement.eval(BSHIfStatement.java:48)
scheduler 08-10/11:06:13 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
scheduler 08-10/11:06:13 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHBlock.eval(BSHBlock.java:81)
scheduler 08-10/11:06:13 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHBlock.eval(BSHBlock.java:47)
scheduler 08-10/11:06:13 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHIfStatement.eval(BSHIfStatement.java:48)
scheduler 08-10/11:06:13 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
scheduler 08-10/11:06:13 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHBlock.eval(BSHBlock.java:81)
scheduler 08-10/11:06:13 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BshMethod.invokeImpl(BshMethod.java:362)
scheduler 08-10/11:06:13 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BshMethod.invoke(BshMethod.java:258)
scheduler 08-10/11:06:13 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BshMethod.invoke(BshMethod.java:186)
scheduler 08-10/11:06:13 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.Name.invokeLocalMethod(Name.java:917)
scheduler 08-10/11:06:13 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.Name.invokeMethod(Name.java:804)
scheduler 08-10/11:06:13 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:75)
scheduler 08-10/11:06:13 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102)
scheduler 08-10/11:06:13 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)
scheduler 08-10/11:06:13 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHAssignment.eval(BSHAssignment.java:77)
scheduler 08-10/11:06:13 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
scheduler 08-10/11:06:13 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHBlock.eval(BSHBlock.java:81)
scheduler 08-10/11:06:13 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHBlock.eval(BSHBlock.java:47)
scheduler 08-10/11:06:13 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHIfStatement.eval(BSHIfStatement.java:48)
scheduler 08-10/11:06:13 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
scheduler 08-10/11:06:13 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHBlock.eval(BSHBlock.java:81)
scheduler 08-10/11:06:13 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHBlock.eval(BSHBlock.java:47)
scheduler 08-10/11:06:13 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHForStatement.eval(BSHForStatement.java:111)
scheduler 08-10/11:06:13 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
scheduler 08-10/11:06:13 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHBlock.eval(BSHBlock.java:81)
scheduler 08-10/11:06:13 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BshMethod.invokeImpl(BshMethod.java:362)
scheduler 08-10/11:06:13 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BshMethod.invoke(BshMethod.java:258)
scheduler 08-10/11:06:13 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BshMethod.invoke(BshMethod.java:161)
scheduler 08-10/11:06:13 ERROR [pool-3-thread-2] LoggingPrintStream -    at bitel.billing.server.ipn.GateWorker$Scripter.invokeMethod(GateWorker.java:331)
scheduler 08-10/11:06:13 ERROR [pool-3-thread-2] LoggingPrintStream -    at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:274)
scheduler 08-10/11:06:13 ERROR [pool-3-thread-2] LoggingPrintStream -    ... 8 more
scheduler 08-10/11:06:13 ERROR [pool-3-thread-2] ManadGateWorker - Gate unaccesible - x.x.x.x
scheduler 08-10/11:06:13 ERROR [pool-3-thread-2] ManadGateWorker - -------------------------
scheduler 08-10/11:06:13 ERROR [pool-3-thread-2] ManadGateWorker - error: Method Invocation rule.substring : at Line: 139 : in file: inline evaluation of: ``import java.io.*; import java.net.*; import java.util.*; import bitel.billing.co . . . '' : rule .substring ( ib , ie )

Target exception: java.lang.StringIndexOutOfBoundsException: String index out of range: -1

java.lang.RuntimeException: Method Invocation rule.substring : at Line: 139 : in file: inline evaluation of: ``import java.io.*; import java.net.*; import java.util.*; import bitel.billing.co . . . '' : rule .substring ( ib , ie )

Target exception: java.lang.StringIndexOutOfBoundsException: String index out of range: -1

   at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:288)
   at bitel.billing.server.ipn.GateWorker.runSync(GateWorker.java:145)
   at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:107)
   at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
   at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
   at java.util.concurrent.FutureTask.run(FutureTask.java:138)
   at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
   at java.lang.Thread.run(Thread.java:662)
Caused by: Method Invocation rule.substring : at Line: 139 : in file: inline evaluation of: ``import java.io.*; import java.net.*; import java.util.*; import bitel.billing.co . . . '' : rule .substring ( ib , ie )

Target exception: java.lang.StringIndexOutOfBoundsException: String index out of range: -1

   at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:97)
   at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102)
   at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)
   at bsh.BSHAssignment.eval(BSHAssignment.java:77)
   at bsh.BSHIfStatement.eval(BSHIfStatement.java:48)
   at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
   at bsh.BSHBlock.eval(BSHBlock.java:81)
   at bsh.BSHBlock.eval(BSHBlock.java:47)
   at bsh.BSHIfStatement.eval(BSHIfStatement.java:48)
   at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
   at bsh.BSHBlock.eval(BSHBlock.java:81)
   at bsh.BshMethod.invokeImpl(BshMethod.java:362)
   at bsh.BshMethod.invoke(BshMethod.java:258)
   at bsh.BshMethod.invoke(BshMethod.java:186)
   at bsh.Name.invokeLocalMethod(Name.java:917)
   at bsh.Name.invokeMethod(Name.java:804)
   at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:75)
   at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102)
   at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)
   at bsh.BSHAssignment.eval(BSHAssignment.java:77)
   at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
   at bsh.BSHBlock.eval(BSHBlock.java:81)
   at bsh.BSHBlock.eval(BSHBlock.java:47)
   at bsh.BSHIfStatement.eval(BSHIfStatement.java:48)
   at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
   at bsh.BSHBlock.eval(BSHBlock.java:81)
   at bsh.BSHBlock.eval(BSHBlock.java:47)
   at bsh.BSHForStatement.eval(BSHForStatement.java:111)
   at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
   at bsh.BSHBlock.eval(BSHBlock.java:81)
   at bsh.BshMethod.invokeImpl(BshMethod.java:362)
   at bsh.BshMethod.invoke(BshMethod.java:258)
   at bsh.BshMethod.invoke(BshMethod.java:161)
   at bitel.billing.server.ipn.GateWorker$Scripter.invokeMethod(GateWorker.java:331)
   at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:274)
   ... 8 more


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: manad & ipfw
СообщениеДобавлено: 14 авг 2012, 15:03 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
у вас до этого ругалось на 139 строчке, сейчас опять ругается на этой же строчке . Значит вы скрипт не поменяли. Он должен вывести "rule=...", потом ругаться .


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: manad & ipfw
СообщениеДобавлено: 14 авг 2012, 21:13 
Не в сети

Зарегистрирован: 14 апр 2011, 19:55
Сообщения: 74
Карма: 0
Уппс, ошибочка вышла. Вот текст скрипта:
Код:
import java.io.*;
import java.net.*;
import java.util.*;
import bitel.billing.common.module.ipn.*;
import bitel.billing.server.ipn.bean.*;
import ru.bitel.bgbilling.modules.ipn.server.bean.command.*;

protected void doSync()
{
        host = gate.getHost();
        port = gate.getPort();
        gid = gate.getId();

        if ( log.isDebugEnabled() )
        {
            log.debug( gid + " gate: " + host + ":" + port );
        }


//        try
//        {
                socket = new Socket( host, port );
                out = new PrintWriter( socket.getOutputStream(), true );
                isr = new InputStreamReader( socket.getInputStream() );
                in = new BufferedReader( isr );
            log.info("I test Manad");
                out.println( "testRID" );
                kods = in.readLine();

        if ( log.isDebugEnabled() )
        {
            log.debug( gid + " Test => " + kods + "\n" );
        }
            log.info( gid + " Test => " + kods + "\n" );

                // список открытых договоров с шлюза
                gateRules = new HashMap( 5, 5 );
                st = new StringTokenizer( kods );
                while ( st.hasMoreTokens() )
                {
                  sp=st.nextToken().split("-");
                  if(sp.length==2) gateRules.put( new Integer( sp[0] ),(sp[1]==null)?null:new Integer(sp[1]) );
                  else gateRules.put( new Integer( sp[0] ),null);
                }

                for( i = 0; i < statusList.size(); i++ )
                {
                        status = statusList.get(i);
                        cid = status.contractId;

                        // флаг того то правило есть на шлюзе
                        flag = false;
                  ruleChanged=false;
                        // правило для этого договора есть на шлюзе
                        if ( gateRules.containsKey( cid ) )
                        {
                                //      если правило есть а юзер заблокирован - удаляем правило
                                if ( status.status > 0 )
                                {
                                        rule = generateRule( status ,false);
                                        command = "remove\t" + cid.intValue() + "\t" + rule;
                                        out.println( command );
                                     if ( log.isDebugEnabled() ) {
                                     log.debug( gid + " " + command );
                                        }
                              log.info( gid + " " + command );
                                 }else{
                           // правило есть и юзер открыт - проверяем тип правила
                           rid=gateRules.get(cid);
                           if(rid!=null && status.ruleType==null) ruleChanged=true;
                           if(rid==null && status.ruleType!=null) ruleChanged=false; // совместимость со старым manad
                           if(rid!=null && status.ruleType!=null && !rid.equals(status.ruleType.getId())) ruleChanged=true;
                           if(ruleChanged){
                                     if ( log.isDebugEnabled() ) {
                                     log.debug( gid + " rule changed");
                                        }
                                 log.info( gid + " rule changed");
                           }
                           }                                               

                                flag = true;
                                gateRules.remove( cid );
                        }

                        // правила нет, а юзер открыт, правило есть, но было изменение типа правила
                        if ( (!flag &&
                                status.status == IPNContractStatus.STATUS_OPEN ) ||(ruleChanged && status.status == IPNContractStatus.STATUS_OPEN ))
                        {
                                rule = generateRule( status, true);

                                command = "add\t" + cid.intValue() + "\t" + rule; // в случае изменения manad затрет старые правила ipfw
                          if( status.ruleType != null ) command+=" // RULE"+status.ruleType.getId();
                 
                                out.println( command );

                            if ( log.isDebugEnabled() )
                {
                    log.debug( gid + " " + command );
                }
   log.info( gid + " " + command );


                        }
                }

                in.close();
                out.close();
                socket.close();
/*        }
        catch ( e )
        {
                throw new RuntimeException ( e );
        }
*/}

private generateRule( status ,open)
{
        rule = null;

        // пользовательское правило, без типа
        if( status.ruleType == null )
        {
                rule = status.rule.getRuleText();
        }
        // типизированное правило
        else
        {       

                ruleText = GateCommandUtil.getRule( status.gateType, status.ruleType );
                rule =  GateCommandUtil.generateRule( ruleText,  status.rule.getRuleText(), null, status.ruleType );                     
        }


        rule = rule.replaceAll( "\r", "" );
        rule = rule.replaceAll( "\n", "|" );
if(open){
   ib=rule.indexOf("[OPEN]")+7;
    ie=rule.indexOf("[/OPEN]")-1;
   log.info( "rule=" + rule +";ib=" + ib + ";ie=" + ie );
   if(ib>-1&&ie>-1) rule=rule.substring(ib,ie);
}else{
   ib=rule.indexOf("[CLOSE]")+8;
    ie=rule.indexOf("[/CLOSE]")-1;
   log.info( "rule=" + rule +";ib=" + ib + ";ie=" + ie );
   if(ib>-1&&ie>-1) rule=rule.substring(ib,ie);
}
        return    rule;
}


Вот вывод sheduler.error.log:

Код:
scheduler 08-14/18:58:48 ERROR [pool-3-thread-2] ManadGateWorker - Eval error2: Method Invocation rule.substring
Method Invocation rule.substring : at Line: 140 : in file: inline evaluation of: ``import java.io.*; import java.net.*; import java.util.*; import bitel.billing.co . . . '' : rule .substring ( ib , ie )

Target exception: java.lang.StringIndexOutOfBoundsException: String index out of range: -1

   at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:97)
   at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102)
   at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)
   at bsh.BSHAssignment.eval(BSHAssignment.java:77)
   at bsh.BSHIfStatement.eval(BSHIfStatement.java:48)
   at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
   at bsh.BSHBlock.eval(BSHBlock.java:81)
   at bsh.BSHBlock.eval(BSHBlock.java:47)
   at bsh.BSHIfStatement.eval(BSHIfStatement.java:48)
   at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
   at bsh.BSHBlock.eval(BSHBlock.java:81)
   at bsh.BshMethod.invokeImpl(BshMethod.java:362)
   at bsh.BshMethod.invoke(BshMethod.java:258)
   at bsh.BshMethod.invoke(BshMethod.java:186)
   at bsh.Name.invokeLocalMethod(Name.java:917)
   at bsh.Name.invokeMethod(Name.java:804)
   at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:75)
   at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102)
   at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)
   at bsh.BSHAssignment.eval(BSHAssignment.java:77)
   at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
   at bsh.BSHBlock.eval(BSHBlock.java:81)
   at bsh.BSHBlock.eval(BSHBlock.java:47)
   at bsh.BSHIfStatement.eval(BSHIfStatement.java:48)
   at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
   at bsh.BSHBlock.eval(BSHBlock.java:81)
   at bsh.BSHBlock.eval(BSHBlock.java:47)
   at bsh.BSHForStatement.eval(BSHForStatement.java:111)
   at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
   at bsh.BSHBlock.eval(BSHBlock.java:81)
   at bsh.BshMethod.invokeImpl(BshMethod.java:362)
   at bsh.BshMethod.invoke(BshMethod.java:258)
   at bsh.BshMethod.invoke(BshMethod.java:161)
   at bitel.billing.server.ipn.GateWorker$Scripter.invokeMethod(GateWorker.java:331)
   at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:274)
   at bitel.billing.server.ipn.GateWorker.runSync(GateWorker.java:145)
   at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:107)
   at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
   at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
   at java.util.concurrent.FutureTask.run(FutureTask.java:138)
   at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
   at java.lang.Thread.run(Thread.java:662)
scheduler 08-14/18:58:48 ERROR [pool-3-thread-2] LoggingPrintStream - java.lang.RuntimeException: Method Invocation rule.substring : at Line: 140 : in file: inline evaluation of: ``import java.io.*; import java.net.*; import java.util.*; import bitel.billing.co . . . '' : rule .substring ( ib , ie )

Target exception: java.lang.StringIndexOutOfBoundsException: String index out of range: -1

scheduler 08-14/18:58:48 ERROR [pool-3-thread-2] LoggingPrintStream -    at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:288)
scheduler 08-14/18:58:48 ERROR [pool-3-thread-2] LoggingPrintStream -    at bitel.billing.server.ipn.GateWorker.runSync(GateWorker.java:145)
scheduler 08-14/18:58:48 ERROR [pool-3-thread-2] LoggingPrintStream -    at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:107)
scheduler 08-14/18:58:48 ERROR [pool-3-thread-2] LoggingPrintStream -    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
scheduler 08-14/18:58:48 ERROR [pool-3-thread-2] LoggingPrintStream -    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
scheduler 08-14/18:58:48 ERROR [pool-3-thread-2] LoggingPrintStream -    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
scheduler 08-14/18:58:48 ERROR [pool-3-thread-2] LoggingPrintStream -    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
scheduler 08-14/18:58:48 ERROR [pool-3-thread-2] LoggingPrintStream -    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
scheduler 08-14/18:58:48 ERROR [pool-3-thread-2] LoggingPrintStream -    at java.lang.Thread.run(Thread.java:662)
scheduler 08-14/18:58:48 ERROR [pool-3-thread-2] LoggingPrintStream - Caused by: Method Invocation rule.substring : at Line: 140 : in file: inline evaluation of: ``import java.io.*; import java.net.*; import java.util.*; import bitel.billing.co . . . '' : rule .substring ( ib , ie )

Target exception: java.lang.StringIndexOutOfBoundsException: String index out of range: -1

scheduler 08-14/18:58:48 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:97)
scheduler 08-14/18:58:48 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102)
scheduler 08-14/18:58:48 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)
scheduler 08-14/18:58:48 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHAssignment.eval(BSHAssignment.java:77)
scheduler 08-14/18:58:48 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHIfStatement.eval(BSHIfStatement.java:48)
scheduler 08-14/18:58:48 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
scheduler 08-14/18:58:48 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHBlock.eval(BSHBlock.java:81)
scheduler 08-14/18:58:48 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHBlock.eval(BSHBlock.java:47)
scheduler 08-14/18:58:48 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHIfStatement.eval(BSHIfStatement.java:48)
scheduler 08-14/18:58:48 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
scheduler 08-14/18:58:48 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHBlock.eval(BSHBlock.java:81)
scheduler 08-14/18:58:48 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BshMethod.invokeImpl(BshMethod.java:362)
scheduler 08-14/18:58:48 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BshMethod.invoke(BshMethod.java:258)
scheduler 08-14/18:58:48 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BshMethod.invoke(BshMethod.java:186)
scheduler 08-14/18:58:48 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.Name.invokeLocalMethod(Name.java:917)
scheduler 08-14/18:58:48 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.Name.invokeMethod(Name.java:804)
scheduler 08-14/18:58:48 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:75)
scheduler 08-14/18:58:48 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102)
scheduler 08-14/18:58:48 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)
scheduler 08-14/18:58:48 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHAssignment.eval(BSHAssignment.java:77)
scheduler 08-14/18:58:48 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
scheduler 08-14/18:58:48 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHBlock.eval(BSHBlock.java:81)
scheduler 08-14/18:58:48 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHBlock.eval(BSHBlock.java:47)
scheduler 08-14/18:58:48 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHIfStatement.eval(BSHIfStatement.java:48)
scheduler 08-14/18:58:48 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
scheduler 08-14/18:58:48 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHBlock.eval(BSHBlock.java:81)
scheduler 08-14/18:58:48 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHBlock.eval(BSHBlock.java:47)
scheduler 08-14/18:58:48 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHForStatement.eval(BSHForStatement.java:111)
scheduler 08-14/18:58:48 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
scheduler 08-14/18:58:48 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BSHBlock.eval(BSHBlock.java:81)
scheduler 08-14/18:58:48 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BshMethod.invokeImpl(BshMethod.java:362)
scheduler 08-14/18:58:48 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BshMethod.invoke(BshMethod.java:258)
scheduler 08-14/18:58:48 ERROR [pool-3-thread-2] LoggingPrintStream -    at bsh.BshMethod.invoke(BshMethod.java:161)
scheduler 08-14/18:58:48 ERROR [pool-3-thread-2] LoggingPrintStream -    at bitel.billing.server.ipn.GateWorker$Scripter.invokeMethod(GateWorker.java:331)
scheduler 08-14/18:58:48 ERROR [pool-3-thread-2] LoggingPrintStream -    at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:274)
scheduler 08-14/18:58:48 ERROR [pool-3-thread-2] LoggingPrintStream -    ... 8 more
scheduler 08-14/18:58:48 ERROR [pool-3-thread-2] ManadGateWorker - Gate unaccesible - x.x.x.x
scheduler 08-14/18:58:48 ERROR [pool-3-thread-2] ManadGateWorker - -------------------------
scheduler 08-14/18:58:48 ERROR [pool-3-thread-2] ManadGateWorker - error: Method Invocation rule.substring : at Line: 140 : in file: inline evaluation of: ``import java.io.*; import java.net.*; import java.util.*; import bitel.billing.co . . . '' : rule .substring ( ib , ie )

Target exception: java.lang.StringIndexOutOfBoundsException: String index out of range: -1

java.lang.RuntimeException: Method Invocation rule.substring : at Line: 140 : in file: inline evaluation of: ``import java.io.*; import java.net.*; import java.util.*; import bitel.billing.co . . . '' : rule .substring ( ib , ie )

Target exception: java.lang.StringIndexOutOfBoundsException: String index out of range: -1

   at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:288)
   at bitel.billing.server.ipn.GateWorker.runSync(GateWorker.java:145)
   at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:107)
   at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
   at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
   at java.util.concurrent.FutureTask.run(FutureTask.java:138)
   at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
   at java.lang.Thread.run(Thread.java:662)
Caused by: Method Invocation rule.substring : at Line: 140 : in file: inline evaluation of: ``import java.io.*; import java.net.*; import java.util.*; import bitel.billing.co . . . '' : rule .substring ( ib , ie )

Target exception: java.lang.StringIndexOutOfBoundsException: String index out of range: -1

   at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:97)
   at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102)
   at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)
   at bsh.BSHAssignment.eval(BSHAssignment.java:77)
   at bsh.BSHIfStatement.eval(BSHIfStatement.java:48)
   at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
   at bsh.BSHBlock.eval(BSHBlock.java:81)
   at bsh.BSHBlock.eval(BSHBlock.java:47)
   at bsh.BSHIfStatement.eval(BSHIfStatement.java:48)
   at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
   at bsh.BSHBlock.eval(BSHBlock.java:81)
   at bsh.BshMethod.invokeImpl(BshMethod.java:362)
   at bsh.BshMethod.invoke(BshMethod.java:258)
   at bsh.BshMethod.invoke(BshMethod.java:186)
   at bsh.Name.invokeLocalMethod(Name.java:917)
   at bsh.Name.invokeMethod(Name.java:804)
   at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:75)
   at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102)
   at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)
   at bsh.BSHAssignment.eval(BSHAssignment.java:77)
   at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
   at bsh.BSHBlock.eval(BSHBlock.java:81)
   at bsh.BSHBlock.eval(BSHBlock.java:47)
   at bsh.BSHIfStatement.eval(BSHIfStatement.java:48)
   at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
   at bsh.BSHBlock.eval(BSHBlock.java:81)
   at bsh.BSHBlock.eval(BSHBlock.java:47)
   at bsh.BSHForStatement.eval(BSHForStatement.java:111)
   at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
   at bsh.BSHBlock.eval(BSHBlock.java:81)
   at bsh.BshMethod.invokeImpl(BshMethod.java:362)
   at bsh.BshMethod.invoke(BshMethod.java:258)
   at bsh.BshMethod.invoke(BshMethod.java:161)
   at bitel.billing.server.ipn.GateWorker$Scripter.invokeMethod(GateWorker.java:331)
   at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:274)
   ... 8 more


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: manad & ipfw
СообщениеДобавлено: 16 авг 2012, 12:24 
Не в сети

Зарегистрирован: 16 ноя 2007, 16:11
Сообщения: 829
Карма: 49
Была проблема с неблокирующим режимом. Должна быть версия manad с исправлением. Как дефолтная, так и "с таблицами".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: manad & ipfw
СообщениеДобавлено: 16 авг 2012, 12:29 
Не в сети

Зарегистрирован: 16 ноя 2007, 16:11
Сообщения: 829
Карма: 49
"Табличный" manad сделан на основе http://wiki.bgbilling.ru/index.php/FreeBSD_manad,_%D0%BF%D0%BE%D0%BD%D0%B8%D0%BC%D0%B0%D1%8E%D1%89%D0%B8%D0%B9_%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB_%D0%B2_%D1%82%D0%B0%D1%80%D0%B8%D1%84%D0%B0%D1%85 Там необходимая корректировка уже была внесена. Так что могу только сообщить, что "табличная" модификация работает на нескольких шлюзах без каких-либо проблем.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: manad & ipfw
СообщениеДобавлено: 16 авг 2012, 12:43 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Andr-232 писал(а):
Уппс, ошибочка вышла. Вот текст скрипта:

...
Вот вывод sheduler.error.log:

[code]
scheduler 08-14/18:58:48 ERROR [pool-3-thread-2] ManadGateWorker - Eval error2: Method Invocation rule.substring
Method Invocation rule.substring : at Line: 140 : in file: inline evaluation of: ``import java.io.*; import java.net.*; import java.util.*; import bitel.billing.co . . . '' : rule .substring ( ib , ie )

Ta


Теперь выводит правильную строчку но до этого оно еще должен вывести сервисное сообщение "rule=...", вы его не показываете(он в обычном логе выведется, не в логе с ошибками). Просто передерните шлюз в клиенте на этом договоре и посмотрите что выводит еще в server.log кроме ошибки. На крайний можете заменить log.info на log.error чтобы все в одно место попадало .


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: manad & ipfw
СообщениеДобавлено: 22 авг 2012, 13:28 
Не в сети

Зарегистрирован: 14 апр 2011, 19:55
Сообщения: 74
Карма: 0
Ок, спасибо за информацию.
Вынужден был отъехать на неделю, завтра буду на работе, о результатах отпишусь.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: manad & ipfw
СообщениеДобавлено: 30 авг 2012, 16:53 
Не в сети

Зарегистрирован: 14 апр 2011, 19:55
Сообщения: 74
Карма: 0
Да, проблема разрешилась, ошибок больше нет.
Благодарю за помощь.


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

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


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

Сейчас этот форум просматривают: Bing [Bot] и гости: 1


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

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