Ага, пробегусь везде где есть SQL, позакрываю.
Продолжаю копать и вот что нашел в Slave скрипте микротик шлюза:
Код:
10-11/03:13:07 ERROR [pool-200-thread-18] MikrotikGateWorker - Eval error2: Typed variable declaration : Cannot access field: statusList, on object: Thread[Thread-412896,5,main]
Typed variable declaration : Cannot access field: statusList, on object: Thread[Thread-412896,5,main] : at Line: 36 : in file: inline evaluation of: ``import java.util.*; import java.util.regex.*; import java.text.*; import java . . . '' : childWorker .statusList
at bsh.UtilEvalError.toEvalError(UtilEvalError.java:85)
at bsh.UtilEvalError.toEvalError(UtilEvalError.java:90)
at bsh.BSHAmbiguousName.toObject(BSHAmbiguousName.java:64)
at bsh.BSHAmbiguousName.toObject(BSHAmbiguousName.java:51)
at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:93)
at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)
at bsh.BSHVariableDeclarator.eval(BSHVariableDeclarator.java:86)
at bsh.BSHTypedVariableDeclaration.eval(BSHTypedVariableDeclaration.java:84)
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:86)
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$ScripterParent.invokeMethod(GateWorker.java:347)
at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:266)
at bitel.billing.server.ipn.GateWorker.doParentSync(GateWorker.java:191)
at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:94)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)
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:895)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
at java.lang.Thread.run(Thread.java:662)
В этом месте пытаюсь взять статус у childWorker
Код:
protected void parentSync( Gate child, GateWorker childWorker )
{
host = gate.getHost();
port = gate.getPort();
Preferences gateSetup = new Preferences( gate.getConfig(), "\r\n" );
login = gateSetup.get( "login", "root" );
pswd = gate.getKeyword();
int timeout = gateSetup.getInt( "timeout", 10000 );
//if ( log.isDebugEnabled() )
//{
log.info( " gate: " + host + ":" + port + " login: " + login + " pswd: " + pswd );
//}
session = null;
try
{
session = new SSHSessionExec( host, port, login, pswd );
session.setTimeout( timeout );
List childStatusList = childWorker.statusList;
for ( UserStatus status : childStatusList )
{
cid = status.contractId;
Можно конечно поставить проверку на наличие childWorker, но он ведь в любом случае должен передаваться?