BiTel

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

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




Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Ошибка при создании договоров
СообщениеДобавлено: 30 сен 2013, 13:48 
Не в сети

Зарегистрирован: 06 мар 2011, 09:56
Сообщения: 152
Карма: 0
Сервер: вер. 6.0 сборка 1586 от 30.09.2013 12:47:49
os: Linux; java: Java HotSpot(TM) Client VM, v.1.6.0_45
inet вер. 6.0 сборка 1239 от 25.09.2013 01:23:21

Что означает ошибка при создании договоров с помощью глобального скрипта поведения?

server.error.log
Код:
server 09-30/15:32:20 ERROR ["http-bio-/0.0.0.0-8080"-exec-10] DefaultServerSetup - Many statements was open at connection close:
com.mysql.jdbc.ServerPreparedStatement[35] - SELECT id, mid FROM service
com.mysql.jdbc.ServerPreparedStatement[37] - SELECT id, mid FROM service
com.mysql.jdbc.ServerPreparedStatement[38] - INSERT INTO contract_balance(yy, mm, cid, summa1) VALUES(2013,9,139676,'500.000000')
com.mysql.jdbc.ServerPreparedStatement[26] - SELECT * FROM contract WHERE id=139676
[...]
com.mysql.jdbc.ServerPreparedStatement[525] - SELECT * FROM inet_device_type_1 WHERE id=2
com.mysql.jdbc.ServerPreparedStatement[512] - SELECT * FROM contract WHERE id=138470
com.mysql.jdbc.ServerPreparedStatement[532] - SELECT * FROM contract WHERE id=138470

java.lang.RuntimeException
        at ru.bitel.bgbilling.server.util.DefaultServerSetup$2$1.close(DefaultServerSetup.java:480)
        at ru.bitel.bgbilling.server.util.PoolGuardConnectionWrapper.close(PoolGuardConnectionWrapper.java:47)
        at ru.bitel.common.sql.ConnectionSet.recycle(ConnectionSet.java:261)
        at ru.bitel.bgbilling.kernel.base.server.DefaultContext.destroy(DefaultContext.java:37)
        at ru.bitel.bgbilling.kernel.container.managed.ServerContext.destroy(ServerContext.java:406)
        at bitel.billing.server.ActionBase.freeConnection(ActionBase.java:180)
        at bitel.billing.server.Executer.doModule(Unknown Source)
        at bitel.billing.server.Executer$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:396)
        at bitel.billing.server.Executer.doPost(Unknown Source)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at bitel.billing.server.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:48)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:403)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:301)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:162)
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309)
        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)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ошибка при создании договоров
СообщениеДобавлено: 30 сен 2013, 14:10 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Закрывайте соединения.
Код:
String query = " SELECT id FROM contract ";
java.sql.PreparedStatement ps = con.prepareStatement( query );
ResultSet rs = ps.executeQuery();
while ( rs.next() )
{
   print("cid = " + rs.getInt(1));
}
rs.close();
ps.close();

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ошибка при создании договоров
СообщениеДобавлено: 06 окт 2013, 13:31 
Не в сети

Зарегистрирован: 06 мар 2011, 09:56
Сообщения: 152
Карма: 0
Phricker писал(а):
Закрывайте соединения.
У меня вообще нет собственных запросов SELECT в скрипте.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ошибка при создании договоров
СообщениеДобавлено: 07 окт 2013, 13:23 
Не в сети
Аватара пользователя

Зарегистрирован: 27 янв 2010, 16:12
Сообщения: 941
Откуда: Уфа
Карма: 124
lan31 писал(а):
Phricker писал(а):
Закрывайте соединения.
У меня вообще нет собственных запросов SELECT в скрипте.


Скрипт в студию.

_________________
С уважением, Гареев Артур. Вежливый разработчик ООО "Бител".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ошибка при создании договоров
СообщениеДобавлено: 07 окт 2013, 13:26 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Дайте угадаю:

Код:
ContractManager cm = new ContractManager(con);
...
cm.recycle();


- последнюю строчку не сделали?

Аналогично остальные менеджеры и DAO, где есть recycle()


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ошибка при создании договоров
СообщениеДобавлено: 11 окт 2013, 09:29 
Не в сети

Зарегистрирован: 06 мар 2011, 09:56
Сообщения: 152
Карма: 0
Artur писал(а):
Скрипт в студию.

Код:
import java.text.DecimalFormat;
import bitel.billing.server.contract.bean.ContractManager;
import bitel.billing.server.contract.bean.ContractTariffManager;
import bitel.billing.server.contract.bean.ContractParameterManager;
import bitel.billing.server.contract.bean.PaymentManager;
import bitel.billing.server.contract.bean.ChargeManager;
import bitel.billing.server.contract.bean.BalanceUtils;
import java.sql.PreparedStatement;
import com.Ostermiller.util.ExcelCSVParser;
import java.math.BigDecimal;
import bitel.billing.server.contract.bean.Contract;
import bitel.billing.common.TimeUtils;
import bitel.billing.server.contract.bean.ContractTariffGroupManager;
import bitel.billing.server.contract.bean.ContractTariffGroup;
import bitel.billing.server.contract.bean.ContractStatusManager;
import bitel.billing.server.contract.bean.ContractStatus;
import bitel.billing.common.KernelConst;
import ru.bitel.bgbilling.kernel.module.common.bean.User;
import bitel.billing.server.contract.bean.ContractTariff;
import bitel.billing.server.contract.bean.ContractModuleManager;
import bitel.billing.server.contract.bean.ContractModule;
import ru.bitel.bgbilling.kernel.container.managed.ServerContext;
import ru.bitel.bgbilling.modules.inet.api.common.service.InetServService;
import ru.bitel.bgbilling.modules.inet.api.common.bean.InetServ;
import bitel.billing.common.IPUtils;
import ru.bitel.common.Utils;
import bitel.billing.server.npay.bean.ServiceObjectManager;
import bitel.billing.server.npay.bean.ServiceObject;
import bitel.billing.server.voiceip.bean.VoiceIpLoginManager;
import bitel.billing.server.voiceip.bean.VoiceIpLogin;
import bitel.billing.server.card.bean.Card;
import bitel.billing.server.contract.bean.ContractServiceManager;
import bitel.billing.server.contract.bean.ContractService;

java.util.Date curdate = new java.util.Date();
Calendar now = new GregorianCalendar();
 
DecimalFormat format1 = new DecimalFormat( "700000" );
DecimalFormat format2 = new DecimalFormat( "3000000" );
String ip;
String ip2;
String login;
String password;
String gr;
String ipsf;
String ipst;
int num;
int prefix;

public void main( setup, con, conSlave )
{
   long timeStart = System.currentTimeMillis();

   loadFile( "/root/all.csv", setup, con, 0 );
 
   long timeEnd = System.currentTimeMillis();
 
   print( "Process time: " + (timeEnd - timeStart)/1000 + " s." );
}
 
private void loadFile( file, setup, con, patternId )
{
   int rowNum = 0;
 
   error( "Loading " + file );
 
   ContractManager cm = new ContractManager( con );
   ContractTariffManager ctm = new ContractTariffManager( con );
   ContractParameterManager cpm = new ContractParameterManager( con );   
   PaymentManager paymentManager = new PaymentManager( con );
   ChargeManager chargeManager = new ChargeManager( con );
   BalanceUtils bu = new BalanceUtils( con );
 
   String query = "INSERT INTO contract_balance(yy, mm, cid, summa1) VALUES(?,?,?,?)";
   PreparedStatement psInsertBalance = con.prepareStatement( query );
   psInsertBalance.setInt( 1, now.get( Calendar.YEAR ) );
   psInsertBalance.setInt( 2, now.get( Calendar.MONTH ) + 1 );
 
   String[][] data = ExcelCSVParser.parse( new InputStreamReader( new FileInputStream( file ), "windows-1251" ) , ';' );
   if( data != null && data.length > 0 )
   {
      final int rowCount = data.length;
      for( rowNum = 1; rowNum < rowCount; rowNum++ )
       {
         String[] fields = data[rowNum];
         if( fields.length < 9 )
         {
            continue;
         }
 
         if( rowNum % 100 == 0 )
         {
            System.out.println( "Count => " + rowNum );
         }

          String fio = fields[0];
         String licSchet = fields[1];
         String address = fields[2];
         String phone = fields[3];
         String tariff = fields[4];
         iplist = fields[8];
         login = fields[9];
         password = fields[10];
         String tel = fields[11];
         gr = fields[12];
         String active = fields[13];
         String ndog = fields[14];
         String inn = fields[15];
         String email = fields[16];
         String contact = fields[17];
         String lo = fields[18];
         String phonelst = fields[19];
         String pasport = fields[20];
         String com = fields[21];

         BigDecimal saldo = BigDecimal.ZERO;
         BigDecimal pay = BigDecimal.ZERO;
         BigDecimal charge = BigDecimal.ZERO;
 
         try
         {
            saldo = new BigDecimal( fields[5].replaceAll( " ", "0" ) );
            pay = new BigDecimal( fields[6].replaceAll( " ", "0" ) );
            charge = new BigDecimal( fields[7].replaceAll( " ", "0" ) );
         }
         catch( Exception ex )
         {
            error( "Error load summ file: " + file + "; line: " + rowNum + "; fio: " + fio );
         }
 
         String title;
         if ( gr.equals( "37" ) )
         {
            title = licSchet;
         }
         if ( (gr.equals( "47" ) || gr.equals( "42" ) || gr.equals( "20" )) )
         {
            title = format2.format( Utils.parseLong( licSchet ) );

         }
         if ( gr.equals( "10" ) )
         {
            title = format1.format( Utils.parseLong( licSchet ) );
         }

         Contract contract = cm.createFromPattern( patternId, title, TimeUtils.convertDateToCalendar( curdate ), password );
         if ( gr.equals( "37" ) )
         {
            contract.setGroups( contract.getGroups() | ( 1L << 0 ) );
            contract.setFc(0);
            val = new BigDecimal (-100);
            contract.setBalanceLimit ( val );
            contract.setBalanceMode( 1 );

            // группа тарифов
            ContractTariffGroupManager ctgm = new ContractTariffGroupManager( con );
            ContractTariffGroup contractTariffGroup = new ContractTariffGroup();
            contractTariffGroup.setContractID( contract.getID() );
            contractTariffGroup.setTariffGroupId( 1 );
            contractTariffGroup.setDate1( TimeUtils.convertDateToCalendar( curdate ) );
            ctgm.updateContractTariffGroup( contractTariffGroup );
         }
         if ( (gr.equals( "47" ) || gr.equals( "42" )) )
         {
            contract.setGroups( contract.getGroups() | ( 1L << 0 ) );
            contract.setFc(1);
            val = new BigDecimal (-100000);
            contract.setBalanceLimit ( val );
            contract.setBalanceMode( 0 );
         }
         if ( gr.equals( "10" ) )
         {
            contract.setGroups( contract.getGroups() | ( 1L << 1 ) );
            contract.setFc(0);
            val = new BigDecimal (-100);
            contract.setBalanceLimit ( val );
            contract.setBalanceMode( 1 );
            // группа тарифов
            ContractTariffGroupManager ctgm = new ContractTariffGroupManager( con );
            ContractTariffGroup contractTariffGroup = new ContractTariffGroup();
            contractTariffGroup.setContractID( contract.getID() );
            contractTariffGroup.setTariffGroupId( 2 );
            contractTariffGroup.setDate1( TimeUtils.convertDateToCalendar( curdate ) );
            ctgm.updateContractTariffGroup( contractTariffGroup );
         }
         if ( gr.equals( "20" ) )
         {
            contract.setGroups( contract.getGroups() | ( 1L << 1 ) );
            contract.setFc(1);
            val = new BigDecimal (-100000);
            contract.setBalanceLimit ( val );
            contract.setBalanceMode( 0 );
         }

         contract.setComment( fio );

         if ( active.equals( "f" ) )
         {
            csm = new ContractStatusManager(con);
            ContractStatus newStatus = new ContractStatus();
               newStatus.setContractId(contract.getId());
               newStatus.setDateFrom(curdate);
               newStatus.setStatus(KernelConst.CONTRACT_STATUS_SUSPENDED);
               csm.changeStatus(newStatus, User.USER_SERVER);
            contract.setStatus(KernelConst.CONTRACT_STATUS_SUSPENDED);
            csm.recycle();
         }

         cm.updateContract( contract );
         cid = contract.getID();
 
         cpm.setStringParam( contract.getID(), 24, address, User.USER_SERVER );
         cpm.setStringParam( contract.getID(), 3, fio, User.USER_SERVER );
         cpm.setStringParam( contract.getID(), 4, licSchet, User.USER_SERVER );
         cpm.setStringParam( contract.getID(), 5, tariff, User.USER_SERVER );
         cpm.setStringParam( contract.getID(), 15, iplist, User.USER_SERVER );
         cpm.setStringParam( contract.getID(), 16, ndog, User.USER_SERVER );
         cpm.setStringParam( contract.getID(), 17, inn, User.USER_SERVER );
         cpm.setStringParam( contract.getID(), 18, email, User.USER_SERVER );
         cpm.setStringParam( contract.getID(), 19, phone, User.USER_SERVER );
         cpm.setStringParam( contract.getID(), 20, contact, User.USER_SERVER );
         cpm.setStringParam( contract.getID(), 21, lo, User.USER_SERVER );
         cpm.setStringParam( contract.getID(), 22, phonelst, User.USER_SERVER );
         cpm.setStringParam( contract.getID(), 23, pasport, User.USER_SERVER );
         cpm.setStringParam( contract.getID(), 24, com, User.USER_SERVER );
 
         // баланс
         if( saldo.compareTo( BigDecimal.ZERO ) != 0 )
         {
            psInsertBalance.setInt( 3, contract.getID() );
            psInsertBalance.setBigDecimal( 4, saldo );
            psInsertBalance.executeUpdate();
         }
 
         bu.updateBalance( curdate, contract.getID() );

         if (!phonelst.equals(""))
         {
            ContractModuleManager manager = new ContractModuleManager( con );
            ContractModule module = new ContractModule();
            module.setContractId( cid );
            module.setModuleId(    6 );
            manager.addContractModule( cid, 6 );

            ContractTariff contractTariff = new ContractTariff();
            contractTariff.setContractID( contract.getID() );
            contractTariff.setTariffPlanID( 18 );
            contractTariff.setDate1( TimeUtils.convertDateToCalendar( curdate ) );
            ctm.updateContractTariff( contractTariff );

            String[] phonearray = phonelst.split( "," );
            int nphone;
            nphone = phonearray.length;
            for (; nphone > 0;)
            {
               nphone--;
               String sub1 = phonearray[nphone].substring(0, 1);
               int rep = 0;
               String newphone;
               StringBuffer sb = new StringBuffer(phonearray[nphone]);
               if (sub1.equals("8"))
               {
                  sb.replace(0, 1, "7");
                  newphone = sb.toString();
                  rep = 1;

               }

               VoiceIpLoginManager lm = new VoiceIpLoginManager( con, 6 );
               VoiceIpLogin login = new VoiceIpLogin();
               login.setCid( contract.getID() );
               login.setStatus( true );
               login.setDate1( curdate );
               login.setType(1);
               login = lm.addLogin( login, Setup.getSetup().getModuleSetup( 6 ) );
               Set aliases = new HashSet();
               if (rep == 1)
               {
                  aliases.add( newphone );
               } else
               {
                  aliases.add( phonearray[nphone] );
               }
               lm.updateAliases( login.getId(), aliases );      
            }

         }

         // список ип адресов в массив.
         String[] iparray = iplist.split( "," );

         if (!iplist.equals(""))
         {
            // ТП назначаем
            // установка тарифа
            ContractTariff contractTariff = new ContractTariff();
            contractTariff.setContractID( contract.getID() );

            int itariff;
            if (!(tariff == ""))
            {
               itariff = Integer.parseInt(tariff);
            }

            switch (itariff)
            {
               case 75: contractTariff.setTariffPlanID( 1 ); break;
               case 76: contractTariff.setTariffPlanID( 2 ); break;
               case 77: contractTariff.setTariffPlanID( 3 ); break;
               case 145: contractTariff.setTariffPlanID( 4 ); break;

               case 154: contractTariff.setTariffPlanID( 1 ); break;
               case 155: contractTariff.setTariffPlanID( 2 ); break;
               case 156: contractTariff.setTariffPlanID( 3 ); break;

               case 7000: contractTariff.setTariffPlanID( 21 ); break;
               case 7010: contractTariff.setTariffPlanID( 22 ); break;
               case 7020: contractTariff.setTariffPlanID( 23 ); break;
               case 7030: contractTariff.setTariffPlanID( 24 ); break;
               case 7040: contractTariff.setTariffPlanID( 25 ); break;
               case 8000: contractTariff.setTariffPlanID( 26 ); break;
               case 8010: contractTariff.setTariffPlanID( 27 ); break;
               case 8020: contractTariff.setTariffPlanID( 28 ); break;
               case 8030: contractTariff.setTariffPlanID( 29 ); break;

               case 5000: contractTariff.setTariffPlanID( 21 ); break;
               case 5100: contractTariff.setTariffPlanID( 21 ); break;
               case 5200: contractTariff.setTariffPlanID( 21 ); break;
               case 5300: contractTariff.setTariffPlanID( 21 ); break;
               case 5400: contractTariff.setTariffPlanID( 21 ); break;

               case 3101: contractTariff.setTariffPlanID( 21 ); break;
               case 3201: contractTariff.setTariffPlanID( 21 ); break;
               case 3203: contractTariff.setTariffPlanID( 21 ); break;
               case 3210: contractTariff.setTariffPlanID( 21 ); break;
               case 3301: contractTariff.setTariffPlanID( 21 ); break;

               case 93: contractTariff.setTariffPlanID( 6 ); break;
               case 118: contractTariff.setTariffPlanID( 7 ); break;
               case 119: contractTariff.setTariffPlanID( 8 ); break;
               case 146: contractTariff.setTariffPlanID( 9 ); break;
               case 153: contractTariff.setTariffPlanID( 10 ); break;
               case 105: contractTariff.setTariffPlanID( 11 ); break;

               default: contractTariff.setTariffPlanID( 5 ); break;
            }

            contractTariff.setDate1( TimeUtils.convertDateToCalendar( curdate ) );
            ctm.updateContractTariff( contractTariff );

            // ТП для IP
            if ( (tariff.equals( "154" ) || tariff.equals( "155" ) || tariff.equals( "156" ) ) )
            {
               ContractTariff contractTariff = new ContractTariff();
               contractTariff.setContractID( contract.getID() );
               // + ip
               contractTariff.setTariffPlanID( 20 );
               contractTariff.setDate1( TimeUtils.convertDateToCalendar( curdate ) );
               ctm.updateContractTariff( contractTariff );
            }

            // Модуль добавляем
            ContractModuleManager manager = new ContractModuleManager( con );
            ContractModule module = new ContractModule();
            module.setContractId( cid );
            module.setModuleId(    1 );
            manager.addContractModule( cid, 1 );
         }

         if ( (active.equals( "t" ) && (gr.equals( "47" ) || gr.equals( "42" )) ) )
         {
            // Модуль добавляем
            ContractModuleManager manager = new ContractModuleManager( con );
            ContractModule module = new ContractModule();
            module.setContractId( cid );
            module.setModuleId(    11 );
         }

         // Цикл сколько ип в массиве столько раз выполняться
         int nip;
         nip = iparray.length;
         for (; nip > 0;)
         {
            nip--;
         // проверка первого [0] элемента в массиве на префикс
            String[] tokens = iparray[nip].split( "/" );
         // если есть префикс
            num = tokens.length;

            ipsf = tokens[0];
         // Если токена 2 то есть префикс
            if (num == 2)
            {
               prefix = 1;

               mask = tokens[1];
               int maskBit = Integer.parseInt(mask);
               long lnet = IPUtils.convertStringIPtoLong (ipsf);
               long lmask = ( 0xFFFFFFFFl << ( 32 - maskBit ) ) & 0xFFFFFFFFl;

               public static final long[] range = IPUtils.netMaskToRange(lnet, lmask);
               ipst = IPUtils.convertLongIpToString(range[1]);
            } else
            {
               prefix = 0;
            }

            if (!ipsf.equals(""))
            {
               setIp( ipsf, ipst, contract.getID());
            }
         }

         if ( (gr.equals( "37" ) || gr.equals( "10" )) )
         {
            ContractModuleManager manager = new ContractModuleManager( con );
            ContractModule module = new ContractModule();
            module.setContractId( cid );
            module.setModuleId(    3 );
            manager.addContractModule( cid, 3 );

            ServiceObjectManager som = new ServiceObjectManager( con, 3 ) ;
      // установка абонплаты
            object = new ServiceObject();
            object.setContractId( cid );
            if ( gr.equals( "37" ) )
            {
                  // ид услуги модуля npay
               object.setServiceId( 2 );
            }
            if ( (gr.equals( "10" ) || gr.equals( "20" )) )
            {
                  // ид услуги модуля npay
               object.setServiceId( 12 );
            }

            object.setDate1( new Date() );
               som.updateServiceObject( object );
         }

         if ( gr.equals( "10" ) )
         {
            ContractModuleManager manager = new ContractModuleManager( con );
            ContractModule module = new ContractModule();
            module.setContractId( cid );
            module.setModuleId(    5 );
            manager.addContractModule( cid, 5 );
            object = new Card();
            object.setContractId( cid );
            object.setServiceActivateId( 13 );
            object.setDateBegin( new Date() );

            ContractServiceManager csm = new ContractServiceManager( con );
            ContractService cs = new ContractService();
            cs.setContractId(cid);
            cs.setServiceId(14);
            cs.setDateFrom( new Date() );
            csm.updateContractService( "new", cs);
         }

         if ( (tariff.equals( "154" ) || tariff.equals( "155" ) || tariff.equals( "156" )) )
         {
            ServiceObjectManager som = new ServiceObjectManager( con, 3 ) ;
            object = new ServiceObject();
            object.setContractId( cid );
            object.setServiceId( 6 );
            object.setDate1( new Date() );
            som.updateServiceObject( object );
         }
      }
   }
   cm.recycle();
   psInsertBalance.close();
}





private void setIp (ipsf, ipst, cid)
{
   optionList = new ArrayList();

   final ServerContext context = ServerContext.get();
   final InetServService servService = context.newService( InetServService.class, 1 );

   {
      InetServ serv = new InetServ();
      int ipif = IPUtils.convertStringIPtoInt(ipsf);
      int ipit = IPUtils.convertStringIPtoInt(ipst);

      serv.setAddressFrom( Utils.convertIntToBytes( ipif ) );
      if (prefix == 0)
      {
         ipit = ipif;
      }
      serv.setAddressTo( Utils.convertIntToBytes( ipit ) );
      serv.setIpResourceId( 1 ); // id ресурса ip адресов, из которого диапазон
// интернет логин
      String cid2 = Integer.toString(cid);
      serv.setLogin(cid2);
      serv.setPassword("Redback");
// Интернет пароль
// тип сервиса
      serv.setTypeId(4);

      if ( (gr.equals( "37" ) || gr.equals( "42" )) )
      {
         serv.setDeviceId(12);
         serv.setInterfaceId(0);
      }
      if ( gr.equals( "47" ) )
      {
         serv.setDeviceId(13);
         serv.setInterfaceId(0);
      }
      if ( gr.equals( "10" ) )
      {
         serv.setDeviceId(12);
         serv.setInterfaceId(0);
      }
      if ( gr.equals( "20" ) )
      {
         serv.setDeviceId(14);
         serv.setInterfaceId(0);
      }

      serv.setVlan(1);
      serv.setDateFrom( new Date() );
      serv.setContractId(cid);

      servService.inetServUpdate( serv, optionList, false, false, 0 );
   }
}



Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ошибка при создании договоров
СообщениеДобавлено: 28 окт 2013, 18:47 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Все менеджеры типа этих
Код:
ContractTariffGroupManager ctgm = new ContractTariffGroupManager( con );
ContractModuleManager manager = new ContractModuleManager( con );


Создавайте вне цикла, сверху, один раз. Если не поможет, то выложите ошибку сюда целиком.


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

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


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

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


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

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