BiTel

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

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




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
СообщениеДобавлено: 28 апр 2011, 16:50 
Не в сети
Клиент

Зарегистрирован: 17 дек 2010, 15:27
Сообщения: 147
Карма: 22
После обновления с 617 до 630 билда сервера сломалось управление шлюзом по телнету ..
в логах ругань на эксепшн

Код:
server 04-28/17:39:21 ERROR [Thread-15] CiscoVlanGateWorker - Eval error2: TargetError
TargetError : at Line: 97 : in file: inline evaluation of: ``import java.io.IOException; import java.util.ArrayList; import java.util.HashMap . . . '' : throw new RuntimeException ( e ) ;

Target exception: java.lang.RuntimeException: java.util.concurrent.TimeoutException

        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)
server 04-28/17:39:21 ERROR [Thread-15] LoggingPrintStream - java.lang.RuntimeException: TargetError : at Line: 97 : in file: inline evaluation of: ``import java.io.IOException; import java.util.ArrayList; import java.util.HashMap . . . '' : throw new RuntimeException ( e ) ;


Последний раз редактировалось Magistr 29 апр 2011, 14:31, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 29 апр 2011, 12:13 
Не в сети
Разработчик

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 29 апр 2011, 12:27 
Не в сети
Клиент

Зарегистрирован: 17 дек 2010, 15:27
Сообщения: 147
Карма: 22
60000 непомогло ..


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 29 апр 2011, 12:28 
Не в сети
Разработчик

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 29 апр 2011, 12:28 
Не в сети
Разработчик

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 29 апр 2011, 12:29 
Не в сети
Разработчик

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 29 апр 2011, 12:31 
Не в сети
Клиент

Зарегистрирован: 17 дек 2010, 15:27
Сообщения: 147
Карма: 22
там просто обработка эксепшена
такое ощущение что результат выполнения не получает скрипт и ждет его оочень долго .. когда небыло таймаута просто клиент вис и все .. а с таймаутом и пред версии прерывался ..
скрипт
вот

Код:
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.StringTokenizer;
 
import bitel.billing.common.module.ipn.IPNContractStatus;
import bitel.billing.server.ipn.GateWorker;
import bitel.billing.server.ipn.UserStatus;
import ru.bitel.bgbilling.modules.ipn.server.bean.command;
//import ru.bitel.bgbilling.modules.ipn.server.bean.command.GateCommandUtil;
import ru.bitel.bgbilling.modules.ipn.server.bean.command.LoopPattern;

import bitel.billing.server.ipn.bean.VlanManager;
import bitel.billing.server.util.DefaultServerSetup;
import bitel.billing.server.util.Utils;
import bitel.billing.server.util.telnet.TelnetSession;
import ru.bitel.bgbilling.common.DefaultSetup;
import bitel.billing.common.IPUtils;
import bitel.billing.server.ipn.bean.GateType;
import bitel.billing.server.ipn.bean.RuleType;
import ru.bitel.bgbilling.modules.ipn.common.bean.AddressRangeManager;
import ru.bitel.common.Preferences;
includeBGBS( "bgbs://ru.bitel.bgbilling.kernel.script.common.bean.ScriptLibrary/gateCommandUtiltt" );
 
protected void doSync()
{
   try
   {
      log.info( "start of cisco........................................................");
      host = gate.getHost();
      port = gate.getPort();
 
 
      DefaultServerSetup gateSetup = new DefaultServerSetup( gate.getConfig(), "\r\n" );       
 
      pswdLogin = gateSetup.getStringValue("login");
      pswdCfg = gateSetup.getStringValue( "cfg.pswd");
                timeout = gateSetup.getIntValue( "timeout", 0 );
 
 
      result = new StringBuffer();
 
 
      if( log.isDebugEnabled() )
      {
          log.debug( gate.getId() + " gate: " + host + ":" + port  + " pswdLogin: " + pswdLogin + " pswdCfg: " +        pswdCfg );
      }
 
 
 
      session = new TelnetSession( host, port);
                session.setTimeout( timeout );
      session.setLoginPromptSequence( ":" );                  
      session.connect();
 
      session.setLoginPromptSequence( ":" );
 
 
      result.append( session.doCommand( pswdLogin ) );
      session.setLoginPromptSequence( ":" );
       result.append( session.doCommand( pswdCfg ) );
 
 
      result.append( session.doCommand( "terminal length 0" ) );
      result.append( session.doCommand( "terminal width 0" ) );
 
 
 
      session.setLoginPromptSequence( ": " );
      result.append( session.doCommand( "enable" ) );
 
 
      session.setLoginPromptSequence( "#" );
      result.append( session.doCommand( pswdCfg ) );
 
 
      result.append( session.doCommand( "configure terminal" ) );
 
      log.debug( "execute commands" );
      doCommands( session, result);
 
      result.append( session.doCommand( "exit" ) );
                session.doCommandAsync( "exit" );
 
      log.info("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
      log.info( result );
      log.info("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");      
 
      log.debug( "ok" );
   } catch (Exception e)
   {
 
      throw new RuntimeException ( e );
   }
 
   log.info( "end of cisco........................................................");
}
 
protected void add()
{
 
}
 
 
private void doCommands( TelnetSession session, StringBuffer result) throws IOException
{      
   for( UserStatus status : statusList )
   {
      date = new GregorianCalendar();
      
      VlanManager manager = new VlanManager(status.mid, con);

      gateId  = gate.getId();
      log.info("gateId=" + gateId);

      vid = manager.getVlan( gateId, status.contractId );
      log.info("vid=" + vid);   

 
      //TODO - подумать что сделать справилами на добавление
 
      rules = null;
      if (status.status == IPNContractStatus.STATUS_OPEN)
      {
 
         rules = getOpenRules( status, vid );
 
      }          
      else if (status.status == IPNContractStatus.STATUS_REMOVED)
      {
         rules = getRemoveRules( status, vid );   
      }
      //if closed and etc
      else
      {
         rules = getCloseRules( status, vid);
 
      }
 
      if (vid > 0)
      {
         for ( String rule : rules )
         {               
            result.append(  session.doCommand( rule ) );            
         }
      }
 
   }      
 
}
 
getOpenRules( status, vid )
{
    return getRules( status, "\\[OPEN\\](.*)\\[/OPEN\\]", vid );
}
 
getCloseRules( status, vid )
{
    return getRules( status, "\\[CLOSE\\](.*)\\[/CLOSE\\]", vid );
}
 
getRemoveRules( UserStatus status, int vid )
{
    return getRules( status, "\\[REMOVE\\](.*)\\[/REMOVE\\]", vid );
}
 
getRules(  status, template, vid )
{
   // пользовательское правило, без типа - то все оставляем как есть
   rule = status.rule.getRuleText();
   log.info("rule=" + rule);
 
   //типизированное правило
   if( status.ruleType != null )
 
   {   
       rule = generateRule( rule, status.gateType, status.ruleType, vid);
   }
 
   log.info("rule=" + rule);
 
 
 
   pattern = Pattern.compile( template, Pattern.DOTALL );
   m = pattern.matcher( rule );
   if (m.find())
   {
       rule = m.group( 1 );
   }      
 
   rule.replaceAll( "\r", "" );
 
 
   parts  = rule.split( "\n" );
 
   result = new ArrayList();
   for ( String part : parts )
   {
      if ( !Utils.isEmptyString( part ))
      {
         result.add( part );
      }
   }
 
   return result;
}      
 

generateRule( addresses, gateType, ruleType, int vid )
{     

    ruleText = getRule( gateType, ruleType );
 
   replacements =  new HashMap ();
    if ( vid > 0)
    {
        replacements.put( "\\{VID\\}", String.valueOf( vid ) );
     
    }

  return generateRule( ruleText, addresses, replacements, ruleType);   
}


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 29 апр 2011, 12:35 
Не в сети
Клиент

Зарегистрирован: 17 дек 2010, 15:27
Сообщения: 147
Карма: 22
Вот лог работы

Username: admin
Password:
3750>en
Password:
3750#conf t
Enter configuration commands, one per line. End with CNTL/Z.
3750(config)#
3750#sh ver
Cisco IOS Software, C3750
пропущено
3750#

0 вечно висит


Да похоже и правда проблема с конечным символом .. но работало раньше (


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 16 май 2011, 13:37 
Не в сети
Разработчик

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

Username: admin
Password:
3750>en
Password:
3750#conf t
Enter configuration commands, one per line. End with CNTL/Z.
3750(config)#
3750#sh ver
Cisco IOS Software, C3750
пропущено
3750#

0 вечно висит


Да похоже и правда проблема с конечным символом .. но работало раньше (


Раньше работало благодяря ошибке, там стоял timeout , по скорочтению которого просто переставало ждать .. У вас проблема в username, скрипт его не послыат. Он написан в расчете на вввод пароля сразу , потом eanble . Это надо добавить
result.append( session.doCommand( login ) );

где login = "admin";


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

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


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


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

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