BiTel

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

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




Начать новую тему Ответить на тему  [ Сообщений: 32 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Many statements was open at connection close
СообщениеДобавлено: 30 сен 2013, 11:44 
Не в сети
Клиент
Аватара пользователя

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



Код:
import ru.bitel.bgbilling.kernel.script.server.dev.GlobalScriptBase;
import ru.bitel.bgbilling.server.util.Setup;
import ru.bitel.common.sql.ConnectionSet;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.text.SimpleDateFormat;

import java.lang.Math;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.text.NumberFormat;
import java.util.Locale;

import javax.mail.Multipart;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimeBodyPart;

import java.sql.*;
import java.util.*;
import java.util.Date;

import bitel.billing.server.npay.bean.IPNModuleAmount;
import bitel.billing.common.TimeUtils;
import bitel.billing.server.contract.bean.ContractEmailParamValue;
import bitel.billing.server.contract.bean.ContractParameterManager;
import bitel.billing.server.util.MailMsg;

public class InactiveCustomersReport
   extends GlobalScriptBase
{
   @Override
   public void execute( Setup setup1, ConnectionSet connectionSet2 )
      throws Exception
   {
      Vector objects = new Vector();
      MailMsg msg = new MailMsg( setup1 );
      StringBuilder report_title = new StringBuilder();
/*
      StringBuilder report_comment = new StringBuilder();

      StringBuilder report = new StringBuilder();
      StringBuilder report_all_null = new StringBuilder();
      StringBuilder report_amount1_null = new StringBuilder();
      StringBuilder report_amount2_null = new StringBuilder();
      StringBuilder report_amount3_null = new StringBuilder();
      StringBuilder report_amount1_not_null = new StringBuilder();
      StringBuilder report_amount2_not_null = new StringBuilder();
      StringBuilder report_amount3_not_null = new StringBuilder();
*/
//Делаем возможность отправки письма в html
      Multipart multipart = new MimeMultipart();
      MimeBodyPart htmlPart = new MimeBodyPart();
      Connection con = connectionSet2.getConnection();
        Calendar c = Calendar.getInstance();
        Calendar c1 = Calendar.getInstance();
        Calendar c2 = Calendar.getInstance();
      c.add( Calendar.DAY_OF_MONTH, -1 );
      c1.add( Calendar.DAY_OF_MONTH, -2 );
      c2.add( Calendar.DAY_OF_MONTH, -3 );
      BigDecimal dd = new BigDecimal( 52428800 );
      BigDecimal aa = new BigDecimal( 1048576 );
      //c2.add( c.DAY_OF_MONTH, -2 );
      SimpleDateFormat dateFormat_table = new SimpleDateFormat("yyyyMM");
      SimpleDateFormat dateFormat_date = new SimpleDateFormat("yyyy-MM-dd");
      int i=1;
      //print (dateFormat_table.format( new Date() ));
      //print (dateFormat_date.format( c.getTime() ));
      //print (dateFormat_date.format( c2.getTime() ));
      objects.addElement("mail@mail.ru");
      String query = " SELECT c.id, c.title, c.comment FROM contract as c LEFT JOIN contract_module as cm on c.id = cm.cid and cm.mid = 2 WHERE c.status = 0 and c.gr&(1<<0)>0 and c.date2 is null and cm.cid is not null" ;
      PreparedStatement contractPs = con.prepareStatement( query );
      ResultSet contractRs = contractPs.executeQuery();
         while ( contractRs.next() )
            {
               int id = contractRs.getInt( 1 );
               String title = contractRs.getString( 2 );
               String comment = contractRs.getString( 3 );
               String query_first_day = " SELECT  sum(amount) FROM ipn_contract_data_2_"+dateFormat_table.format( c2.getTime() )+" WHERE dt='"+dateFormat_date.format( c2.getTime() )+"' AND cid=" + id;
               String query_second_day = " SELECT  sum(amount) FROM ipn_contract_data_2_"+dateFormat_table.format( c1.getTime() )+" WHERE dt='"+dateFormat_date.format( c1.getTime() )+"' AND cid=" + id;
               String query_third_day = " SELECT  sum(amount) FROM ipn_contract_data_2_"+dateFormat_table.format( c.getTime() )+" WHERE dt='"+dateFormat_date.format( c.getTime() )+"' AND cid=" + id;

               PreparedStatement contractPs_first_day = con.prepareStatement( query_first_day );
               ResultSet contractRs_first_day = contractPs_first_day.executeQuery();

               PreparedStatement contractPs_second_day = con.prepareStatement( query_second_day );
               ResultSet contractRs_second_day = contractPs_second_day.executeQuery();               

               PreparedStatement contractPs_third_day = con.prepareStatement( query_third_day );
               ResultSet contractRs_third_day = contractPs_third_day.executeQuery();


               while ( contractRs_first_day.next() && contractRs_second_day.next() && contractRs_third_day.next() )
                     {

                        BigDecimal amount1 = contractRs_first_day.getBigDecimal( 1 );
                        BigDecimal amount2 = contractRs_second_day.getBigDecimal( 1 );
                        BigDecimal amount3 = contractRs_third_day.getBigDecimal( 1 );

                           if (amount1   != null && amount2   != null && amount3   != null )
                              {
                                                BigDecimal first_summa = amount1.add(amount2);
                                                BigDecimal traf_sum = amount3.add(first_summa);
                                                if (traf_sum.compareTo( dd ) == -1)
                                                                     {
                                                                                    BigDecimal traf_sum_mb = traf_sum.divide(aa, BigDecimal.ROUND_CEILING);
                                                      report_title.append("<tr><td>"+ i++ +"</td><td>"+title+ "</td>"+"<td>"+comment+"</td>"+"<td>"+traf_sum_mb+" МБ</td><td width=\"600\"></td></tr>" );
   //                                                                                 report_comment.append("<tr>"+comment +"</tr>" );
                                                                                    //report.append(traf_sum_mb+" МБ" );
                                                                                       //print ("traf_sum_mb " + traf_sum_mb + " title " + title);
                                                                        }
                                 }
                           else if (amount1   == null && amount2   == null && amount3   == null)
                                       {
                                                                        report_title.append("<tr><td>"+ i++ +"</td><td>"+title+ "</td>"+"<td>"+comment+"</td>"+"<td>0 МБ</td></td><td width=\"600\"></td></tr>" );
//                                                                        report_comment.append("<tr>"+comment+ "</tr>" );
                                                                        //report_all_null.append( " 0 МБ\n\n" );
                                                                     // print ("title " + title);
                                       }
                           else if (amount1   != null && amount2   == null && amount3   == null)
                                       {
                                                if (amount1.compareTo( dd ) == -1)
                                                                     {
                                                                                    BigDecimal traf_sum_mb = amount1.divide(aa, BigDecimal.ROUND_CEILING);
                                                                        report_title.append("<tr><td>"+ i++ +"</td><td>"+title+ "</td>"+"<td>"+comment+"</td>"+"<td>"+traf_sum_mb+" МБ</td></td><td width=\"600\"></td></tr>" );
   //                                                                     report_comment.append("<tr>"+comment+ "</tr>" );
                                                                                       //report_amount1_not_null.append(  traf_sum_mb+" МБ\n\n" );
                                                                                       //print ("traf_sum_mb1 " + traf_sum_mb + " title " + title);
                                                                        }
                                                                        
                                                   }
                           else if (amount1   == null && amount2   != null && amount3   == null)
                                       {
                                                if (amount2.compareTo( dd ) == -1)
                                                                     {
                                                                                    BigDecimal traf_sum_mb = amount2.divide(aa, BigDecimal.ROUND_CEILING);
                                                                        report_title.append("<tr><td>"+i+++"</td><td>"+title+ "</td>"+"<td>"+comment+"</td>"+"<td>"+traf_sum_mb+" МБ</td></td><td width=\"600\"></td></tr>" );
//                                                                        report_comment.append("<tr>"+comment+ "</tr>" );
                                                                                       //report_amount2_not_null.append( traf_sum_mb+" МБ\n\n" );
                                                                                       //print ("traf_sum_mb2 " + traf_sum_mb + " title " + title);
                                                                        }
                                                                        
                                                   }
                           else if (amount1   == null && amount2   == null && amount3   != null)
                                       {
                                                if (amount3.compareTo( dd ) == -1)
                                                                     {
                                                                                    BigDecimal traf_sum_mb = amount3.divide(aa, BigDecimal.ROUND_CEILING);
                                                                        report_title.append("<tr><td>"+i+++"</td><td>"+title+ "</td>"+"<td>"+comment+"</td>"+"<td>"+traf_sum_mb+" МБ</td></td><td width=\"600\"></td></tr>" );
//                                                                        report_comment.append("<tr>"+comment+ "</tr>" );
                                                                                       //report_amount3_not_null.append(traf_sum_mb+" МБ\n\n" );
                                                                                       //print ("traf_sum_mb3 " + traf_sum_mb + " title " + title);
                                                                        }
                                                                        
                                                   }
                           else if (amount1   != null && amount2   != null && amount3   == null)
                                       {
                                                BigDecimal traf_sum = amount1.add(amount2);
                                                if (traf_sum.compareTo( dd ) == -1)
                                                                     {
                                                                                    BigDecimal traf_sum_mb = traf_sum.divide(aa, BigDecimal.ROUND_CEILING);
                                                                        report_title.append("<tr><td>"+i+++"</td><td>"+title+ "</td>"+"<td>"+comment+"</td>"+"<td>"+traf_sum_mb+" МБ</td></td><td width=\"600\"></td></tr>" );
//                                                                        report_comment.append("<tr>"+comment+ "</tr>" );
                                                                                    //report_amount3_null.append( traf_sum_mb+" МБ\n\n" );
                                                                                    //print ("traf_sum_mb4 " + traf_sum_mb + " title " + title);
                                                                        }
                                                                        
                                                   }
                           else if (amount1   != null && amount2   == null && amount3   != null)
                                       {
                                                BigDecimal traf_sum = amount1.add(amount3);
                                                if (traf_sum.compareTo( dd ) == -1)
                                                                     {
                                                                                    BigDecimal traf_sum_mb = traf_sum.divide(aa, BigDecimal.ROUND_CEILING);
                                                                        report_title.append("<tr><td>"+i+++"</td><td>"+title+ "</td>"+"<td>"+comment+"</td>"+"<td>"+traf_sum_mb+" МБ</td></td><td width=\"600\"></td></tr>" );
//                                                                        report_comment.append("<tr>"+comment+ "</tr>" );
                                                                                    //report_amount2_null.append(traf_sum_mb+" МБ\n\n" );
                                                                                    //print ("traf_sum_mb5 " + traf_sum_mb + " title " + title);
                                                                        }
                                                                        
                                                   }
                           else if (amount1   == null && amount2   != null && amount3   != null)
                                       {
                                                BigDecimal traf_sum = amount2.add(amount3);
                                                if (traf_sum.compareTo( dd ) == -1)
                                                                     {
                                                                                    BigDecimal traf_sum_mb = traf_sum.divide(aa, BigDecimal.ROUND_CEILING);
                                                                        report_title.append("<tr><td>"+i+++"</td><td>"+title+ "</td>"+"<td>"+comment+"</td>"+"<td>"+traf_sum_mb+"</td></td><td width=\"600\"></td></tr>" );
                                                                        //report_comment.append("<tr>"+comment+ "</tr>" );
                                                                                    //report_amount1_null.append(traf_sum_mb+" МБ\n\n" );
                                                                                    //print ("traf_sum_mb6 " + traf_sum_mb + " title " + title);
                                                                        }
                                                                        
                                                   }
                     }
      contractRs_first_day.close();
      contractPs_first_day.close();
      contractRs_third_day.close();
      contractPs_third_day.close();
            }
//Рисуем таблицу в html формате
      String message = "<table border=\"1\">"+ "\n" +
                    "<tr>"+ "\n" +
                    "<td>" + " № " + "</td>" +
                    "<td>" + " Договор " + "</td>" +
                    "<td>" + " Компания " + "</td>" +
                    "<td>" + " Трафик " + "</td>" + "\n" +
                    "<td width=\"600\">" + " Коментарий " + "</td>" + "\n" +
                    "</tr>" +
                    report_title.toString() +"\n" +
                   "</table>";
//Формируем письмо в html
      htmlPart.setContent(message,"text/html;charset=utf-8");
      multipart.addBodyPart(htmlPart);
msg.sendMessage(objects, "Отчет по трафику", multipart);   


print (report_title.toString() +"\n" );   
      contractRs.close();
      contractPs.close();
            }

}


вот такую ошибку сыпет

Код:
server 09-30/09:35:33 ERROR [bitel.billing.server.installer.action.ActionGetInstalledModules] DefaultServerSetup - Many statements was open at connection close:
com.mysql.jdbc.ServerPreparedStatement[27200] - SELECT * FROM global_script_link WHERE id=13
com.mysql.jdbc.ServerPreparedStatement[27203] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=40
com.mysql.jdbc.ServerPreparedStatement[27206] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=43
com.mysql.jdbc.ServerPreparedStatement[27209] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=47
com.mysql.jdbc.ServerPreparedStatement[27212] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=48
com.mysql.jdbc.ServerPreparedStatement[27215] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=53
com.mysql.jdbc.ServerPreparedStatement[27218] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=56
com.mysql.jdbc.ServerPreparedStatement[27221] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=59
com.mysql.jdbc.ServerPreparedStatement[27224] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=68
com.mysql.jdbc.ServerPreparedStatement[27227] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=74
com.mysql.jdbc.ServerPreparedStatement[27230] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=81
com.mysql.jdbc.ServerPreparedStatement[27233] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=82
com.mysql.jdbc.ServerPreparedStatement[27236] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=83
com.mysql.jdbc.ServerPreparedStatement[27239] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=84
com.mysql.jdbc.ServerPreparedStatement[27242] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=85
com.mysql.jdbc.ServerPreparedStatement[27245] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=87
com.mysql.jdbc.ServerPreparedStatement[27248] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=89
com.mysql.jdbc.ServerPreparedStatement[27251] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=91
com.mysql.jdbc.ServerPreparedStatement[27254] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=92
com.mysql.jdbc.ServerPreparedStatement[27257] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=105
com.mysql.jdbc.ServerPreparedStatement[27260] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=106
com.mysql.jdbc.ServerPreparedStatement[27263] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=108
com.mysql.jdbc.ServerPreparedStatement[27266] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=109
com.mysql.jdbc.ServerPreparedStatement[27269] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=111
com.mysql.jdbc.ServerPreparedStatement[27272] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=122
com.mysql.jdbc.ServerPreparedStatement[27275] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=124
com.mysql.jdbc.ServerPreparedStatement[27278] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=134
com.mysql.jdbc.ServerPreparedStatement[27281] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=137
com.mysql.jdbc.ServerPreparedStatement[27284] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=140
com.mysql.jdbc.ServerPreparedStatement[27287] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=143
com.mysql.jdbc.ServerPreparedStatement[27290] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=148
com.mysql.jdbc.ServerPreparedStatement[27293] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=157
com.mysql.jdbc.ServerPreparedStatement[27296] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=162
com.mysql.jdbc.ServerPreparedStatement[27299] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=178
com.mysql.jdbc.ServerPreparedStatement[27302] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=179
com.mysql.jdbc.ServerPreparedStatement[27305] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=188
com.mysql.jdbc.ServerPreparedStatement[27308] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=189
com.mysql.jdbc.ServerPreparedStatement[27311] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=193
com.mysql.jdbc.ServerPreparedStatement[27314] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=206
com.mysql.jdbc.ServerPreparedStatement[27317] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=208
com.mysql.jdbc.ServerPreparedStatement[27320] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=215
com.mysql.jdbc.ServerPreparedStatement[27323] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=226
com.mysql.jdbc.ServerPreparedStatement[27326] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=238
com.mysql.jdbc.ServerPreparedStatement[27329] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=239
com.mysql.jdbc.ServerPreparedStatement[27332] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=244
com.mysql.jdbc.ServerPreparedStatement[27335] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=248
com.mysql.jdbc.ServerPreparedStatement[27338] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=249
com.mysql.jdbc.ServerPreparedStatement[27341] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=256
com.mysql.jdbc.ServerPreparedStatement[27344] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=257
com.mysql.jdbc.ServerPreparedStatement[27347] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=259
com.mysql.jdbc.ServerPreparedStatement[27350] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=264
com.mysql.jdbc.ServerPreparedStatement[27353] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=268
com.mysql.jdbc.ServerPreparedStatement[27356] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=270
com.mysql.jdbc.ServerPreparedStatement[27359] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=276
com.mysql.jdbc.ServerPreparedStatement[27362] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=285
com.mysql.jdbc.ServerPreparedStatement[27365] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=288
com.mysql.jdbc.ServerPreparedStatement[27368] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=289
com.mysql.jdbc.ServerPreparedStatement[27371] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=291
com.mysql.jdbc.ServerPreparedStatement[27374] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=295
com.mysql.jdbc.ServerPreparedStatement[27377] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=297
com.mysql.jdbc.ServerPreparedStatement[27380] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=298
com.mysql.jdbc.ServerPreparedStatement[27383] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=302
com.mysql.jdbc.ServerPreparedStatement[27386] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=304
com.mysql.jdbc.ServerPreparedStatement[27389] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=308
com.mysql.jdbc.ServerPreparedStatement[27392] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=314
com.mysql.jdbc.ServerPreparedStatement[27395] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=317
com.mysql.jdbc.ServerPreparedStatement[27398] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=321
com.mysql.jdbc.ServerPreparedStatement[27401] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=322
com.mysql.jdbc.ServerPreparedStatement[27404] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=332
com.mysql.jdbc.ServerPreparedStatement[27407] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=334
com.mysql.jdbc.ServerPreparedStatement[27410] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=336
com.mysql.jdbc.ServerPreparedStatement[27413] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=339
com.mysql.jdbc.ServerPreparedStatement[27416] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=345
com.mysql.jdbc.ServerPreparedStatement[27419] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=346
com.mysql.jdbc.ServerPreparedStatement[27422] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=348
com.mysql.jdbc.ServerPreparedStatement[27425] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=351
com.mysql.jdbc.ServerPreparedStatement[27428] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=353
com.mysql.jdbc.ServerPreparedStatement[27431] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=354
com.mysql.jdbc.ServerPreparedStatement[27434] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=356
com.mysql.jdbc.ServerPreparedStatement[27437] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=358
com.mysql.jdbc.ServerPreparedStatement[27440] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=363
com.mysql.jdbc.ServerPreparedStatement[27443] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=365
com.mysql.jdbc.ServerPreparedStatement[27446] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=375
com.mysql.jdbc.ServerPreparedStatement[27449] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=376
com.mysql.jdbc.ServerPreparedStatement[27452] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=377
com.mysql.jdbc.ServerPreparedStatement[27455] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=380
com.mysql.jdbc.ServerPreparedStatement[27458] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=381
com.mysql.jdbc.ServerPreparedStatement[27461] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=383
com.mysql.jdbc.ServerPreparedStatement[27464] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=391
com.mysql.jdbc.ServerPreparedStatement[27467] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=394
com.mysql.jdbc.ServerPreparedStatement[27470] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=397
com.mysql.jdbc.ServerPreparedStatement[27473] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=400
com.mysql.jdbc.ServerPreparedStatement[27476] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=407
com.mysql.jdbc.ServerPreparedStatement[27479] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=412
com.mysql.jdbc.ServerPreparedStatement[27482] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=417
com.mysql.jdbc.ServerPreparedStatement[27485] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=422
com.mysql.jdbc.ServerPreparedStatement[27488] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=429
com.mysql.jdbc.ServerPreparedStatement[27491] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=434
com.mysql.jdbc.ServerPreparedStatement[27494] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=435
com.mysql.jdbc.ServerPreparedStatement[27497] -  SELECT  sum(amount) FROM ipn_contract_data_2_201309 WHERE dt='2013-09-28' AND cid=445

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:396)
        at ru.bitel.bgbilling.kernel.container.ws.server.AbstractJaxWsHandler.invoke(AbstractJaxWsHandler.java:205)
        at ru.bitel.bgbilling.kernel.container.ws.server.JaxWsHandler.access$1(JaxWsHandler.java:1)
        at ru.bitel.bgbilling.kernel.container.ws.server.JaxWsHandler$2.run(JaxWsHandler.java:304)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:396)
        at ru.bitel.bgbilling.kernel.container.ws.server.JaxWsHandler.invoke(JaxWsHandler.java:298)
        at ru.bitel.bgbilling.kernel.container.ws.server.AbstractJaxWsHandler$ServiceInstanceResolver$1.invoke(AbstractJaxWsHandler.java:304)
        at com.sun.xml.ws.server.InvokerTube$2.invoke(InvokerTube.java:150)
        at com.sun.xml.ws.server.sei.EndpointMethodHandler.invoke(EndpointMethodHandler.java:261)
        at com.sun.xml.ws.server.sei.SEIInvokerTube.processRequest(SEIInvokerTube.java:100)
        at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:641)
        at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:600)
        at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:585)
        at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:482)
        at com.sun.xml.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java:314)
        at com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:608)
        at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:259)
        at com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:162)
        at ru.bitel.common.server.JaxWSAdapter.handle(JaxWSAdapter.java:374)
        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.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:140)
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309)
        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:66


вроде закрыто все, а вылетает, что не так то?

_________________
Код:
  Клиент: вер. 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: Many statements was open at connection close
СообщениеДобавлено: 30 сен 2013, 11:56 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
second_day забыл закрыть


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Many statements was open at connection close
СообщениеДобавлено: 30 сен 2013, 11:59 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Бтв, вот это странно выглядит:
Цитата:
while ( contractRs_first_day.next() && contractRs_second_day.next() && contractRs_third_day.next() )

are you sure?

зы. Разбираться лень, что там понаписано :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Many statements was open at connection close
СообщениеДобавлено: 30 сен 2013, 12:57 
Не в сети
Разработчик

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

+1


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Many statements was open at connection close
СообщениеДобавлено: 30 сен 2013, 12:58 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Cromeshnic писал(а):
Бтв, вот это странно выглядит:
Цитата:
while ( contractRs_first_day.next() && contractRs_second_day.next() && contractRs_third_day.next() )

are you sure?

зы. Разбираться лень, что там понаписано :)


Ага..skyb, стало любопытно, что тут имелось ввиду ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Many statements was open at connection close
СообщениеДобавлено: 30 сен 2013, 13:11 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
stark писал(а):
Cromeshnic писал(а):
Бтв, вот это странно выглядит:
Цитата:
while ( contractRs_first_day.next() && contractRs_second_day.next() && contractRs_third_day.next() )

are you sure?

зы. Разбираться лень, что там понаписано :)


Ага..skyb, стало любопытно, что тут имелось ввиду ?

Эм, ну я тут сразу решил 3 запроса обработать. Просто пытался найти как сравнивать значения из 3 запросов, так и ненашел, попробовал так, вроде выдает что нада. А как прпвильно?

_________________
Код:
  Клиент: вер. 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: Many statements was open at connection close
СообщениеДобавлено: 30 сен 2013, 13:12 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
Cromeshnic писал(а):
second_day забыл закрыть

блин, а слона то я и не приметил, пасиб

_________________
Код:
  Клиент: вер. 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: Many statements was open at connection close
СообщениеДобавлено: 30 сен 2013, 13:23 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
А ничего, что если хотя бы за 1 день не будет данных, то для остальных двух код тоже не выполнится?
Это как минимум.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Many statements was open at connection close
СообщениеДобавлено: 30 сен 2013, 16:57 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Т.е там сравнивается просто 3 суммы. Тогда можно второй while вообще на If сменить, это цикл один раз выполняется всегда .


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Many statements was open at connection close
СообщениеДобавлено: 30 сен 2013, 17:03 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
сказать что код просто жесть — это ничего не сказать)))

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Many statements was open at connection close
СообщениеДобавлено: 30 сен 2013, 17:05 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
dimOn писал(а):
сказать что код просто жесть — это ничего не сказать)))

но он работает ;-)

_________________
Код:
  Клиент: вер. 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: Many statements was open at connection close
СообщениеДобавлено: 30 сен 2013, 17:14 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
:facepalm: :facepalm: :facepalm: Еле понял что происходит внутри цикла. Там просто складывается 3 значения с учетом того что любые из них могут быть null(все 3 сразу null, все три сразу не null, только первый не null и т.п) . Очень сложно..По-моему эту катавасию можно заменить вот этим просто

Код:
BigDecimal amount1 = contractRs_first_day.getBigDecimal( 1 );
                        BigDecimal amount2 = contractRs_second_day.getBigDecimal( 1 );
                        BigDecimal amount3 = contractRs_third_day.getBigDecimal( 1 );
                         BigDecimal traf_sum = BigDecimal.ZERO;
if ( amount1 != null )
{
 traf_sum = traf_sum.add(amount1);
}
if ( amount2 != null )
{
 traf_sum = traf_sum.add(amount2);
}
if ( amount3 != null )
{
 traf_sum = traf_sum.add(amount3);
}
 if (traf_sum.compareTo( dd ) == -1)
{                                                                     {
...
}


И получится просто сумма 3 значений учетом, что любые из них могут быть null. Незачем городить столько условий и выполнять одинаковый код.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Many statements was open at connection close
СообщениеДобавлено: 30 сен 2013, 17:16 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
stark писал(а):
Еле понял что происходит внутри цикла. Там просто складывается 3 значения с учетом того что любые из них могут быть null(все 3 сразу null, все три сразу не null, только первый не null и т.п) . Очень сложно..По-моему эту катавасию можно заменить вот этим просто

Код:
BigDecimal amount1 = contractRs_first_day.getBigDecimal( 1 );
                        BigDecimal amount2 = contractRs_second_day.getBigDecimal( 1 );
                        BigDecimal amount3 = contractRs_third_day.getBigDecimal( 1 );
                         BigDecimal traf_sum = BigDecimal.ZERO;
if ( amount1 != null )
{
 traf_sum = traf_sum.add(amount1);
}
if ( amount2 != null )
{
 traf_sum = traf_sum.add(amount2);
}
if ( amount3 != null )
{
 traf_sum = traf_sum.add(amount3);
}
 if (traf_sum.compareTo( dd ) == -1)
{                                                                     {
...
}


И получится просто сумма 3 значений учетом, что любые из них могут быть null. Незачем городить столько условий и выполнять одинаковый код.

stark ПАСИБАААА!!!!!!!! я незнал как правильно, и никто подобного мне не показывал, гдеб я не спрашивал, книги тоже ответа не давали. Что и искал, сделал так как знал, во. плюс в карму

_________________
Код:
  Клиент: вер. 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: Many statements was open at connection close
СообщениеДобавлено: 30 сен 2013, 17:21 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
А я напишу этот код в 1 строчку!

Код:
...
BigDecimal traf_sum = BigDecimal.ZERO.add(amount1!=null?amount1:BigDecimal.ZERO).add(amount2!=null?amount2:BigDecimal.ZERO).add(amount3!=null?amount3:BigDecimal.ZERO);

...

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Many statements was open at connection close
СообщениеДобавлено: 30 сен 2013, 17:24 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
dimOn писал(а):
А я напишу этот код в 1 строчку!

Код:
...
BigDecimal traf_sum = BigDecimal.ZERO.add(amount1!=null?amount1:BigDecimal.ZERO).add(amount2!=null?amount2:BigDecimal.ZERO).add(amount3!=null?amount3:BigDecimal.ZERO);

...

Изображение

_________________
Код:
  Клиент: вер. 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: Many statements was open at connection close
СообщениеДобавлено: 30 сен 2013, 17:42 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Я тогда напишу оптимизированный:
Код:
BigDecimal amount1 = contractRs_first_day.getBigDecimal( 1 );
BigDecimal amount2 = contractRs_second_day.getBigDecimal( 1 );
BigDecimal amount3 = contractRs_third_day.getBigDecimal( 1 );

BigDecimal traf_sum = amount1;

if( amount2 != null )
{
    traf_sum = traf_sum != null ? traf_sum.add( amount2 ) : amount2;
}

if( amount3 != null )
{
    traf_sum = traf_sum != null ? traf_sum.add( amount3 ) : amount3;
}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Many statements was open at connection close
СообщениеДобавлено: 30 сен 2013, 19:21 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
Ооооооочень сомнительна оптимальность! Имхо, в моём случае компилятором оптимальнее развернётся работа со стеком при последовательных обращениях к цепочке вызовов.

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Many statements was open at connection close
СообщениеДобавлено: 30 сен 2013, 19:51 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Посмотри сколько цепочек вызовов в методе BigDecimal.add. И новых объектов меньше создается.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Many statements was open at connection close
СообщениеДобавлено: 30 сен 2013, 19:54 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Кодинг по-админски: тырк, тырк, копипаста, работает - и ладно.
Не работает - пишем на форум.

Блин, skyb, начни с того, что возьми любой код и пойми, что делает в нём каждая строчка.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Many statements was open at connection close
СообщениеДобавлено: 30 сен 2013, 20:09 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
Cromeshnic писал(а):
Кодинг по-админски: тырк, тырк, копипаста, работает - и ладно.
Не работает - пишем на форум.

Блин, skyb, начни с того, что возьми любой код и пойми, что делает в нём каждая строчка.

угу, нач-ву нада вчера, я буду втыкать в код пол года и нифига не пойму изза того что некому пояснить почему именно так. Да и чем плохо на форум написать то?

работник по русски (и админ и кодер и тд....)

_________________
Код:
  Клиент: вер. 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: Many statements was open at connection close
СообщениеДобавлено: 30 сен 2013, 20:10 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
ну и да, код не копипаста, писал полностью сам, с нуля, поэтому такой и вышел, на сколько хватило знаний

_________________
Код:
  Клиент: вер. 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: Many statements was open at connection close
СообщениеДобавлено: 30 сен 2013, 21:57 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
Amir писал(а):
Посмотри сколько цепочек вызовов в методе BigDecimal.add. И новых объектов меньше создается.

Вообще-то в моей строке не создаётся ВООБЩЕ ни одного объекта :umnik:

З.ы. разумеется, кроме инициализируемого этой же строкой целевого BigDecimal traf_sum;

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Many statements was open at connection close
СообщениеДобавлено: 01 окт 2013, 12:38 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
dimOn писал(а):
Amir писал(а):
Посмотри сколько цепочек вызовов в методе BigDecimal.add. И новых объектов меньше создается.

Вообще-то в моей строке не создаётся ВООБЩЕ ни одного объекта :umnik:



Да ну ? Каждый add создает новый объект внутри.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Many statements was open at connection close
СообщениеДобавлено: 01 окт 2013, 12:43 
Не в сети
Разработчик

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

Как это не копипаста ? Вот этот кусок 7 раз повторяется
Код:
  BigDecimal traf_sum_mb = traf_sum.divide(aa, BigDecimal.ROUND_CEILING);
                                                      report_title.append("<tr><td>"+ i++ +"</td><td>"+title+ "</td>"+"<td>"+comment+"</td>"+"<td>"+traf_sum_mb+" МБ</td><td width=\"600\"></td></tr>" );
   //                                                                                 report_comment.append("<tr>"+comment +"</tr>" );
                                                                                    //report.append(traf_sum_mb+" МБ" );
                                                                                       //print ("traf_sum_mb " + traf_sum_mb + " title " + title);



На будущее , если нужно несколько раз скопировать свой код, нужно вынести это в отдельную функцию. Избавьте остальных от чтения 7 раз одного и того же и попытки понять чем эти 7 блоков все-таки отличаются.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Many statements was open at connection close
СообщениеДобавлено: 01 окт 2013, 13:17 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
stark писал(а):
dimOn писал(а):
Amir писал(а):
Посмотри сколько цепочек вызовов в методе BigDecimal.add. И новых объектов меньше создается.

Вообще-то в моей строке не создаётся ВООБЩЕ ни одного объекта :umnik:



Да ну ? Каждый add создает новый объект внутри.

ну да, а ещё скорее всего дополнительно кучу побочных инстансов других типов в процессе складывания, мы говорим же о текущем контексте. Тем более, что создание объекта в java намного дешевле, чем сами инструкции, например, вычисления. Не говоря уж о том, что складывание трёх чисел - не то место, где надо оптимизировать по скорости, особенно если эти три числа получены из нескольких неслабых запросов с агрегацией к БД.

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Many statements was open at connection close
СообщениеДобавлено: 01 окт 2013, 14:10 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! А куча if — фу, прогорклое масло, старый замшелый пень, прелая мормыка из тыквы.

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Many statements was open at connection close
СообщениеДобавлено: 01 окт 2013, 14:15 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
dimOn писал(а):
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! А куча if — фу, прогорклое масло, старый замшелый пень, прелая мормыка из тыквы.


он не читабилен. Погоня за краткостью в ущерб легкости понимания.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Many statements was open at connection close
СообщениеДобавлено: 01 окт 2013, 14:30 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
dimOn писал(а):
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! А куча if — фу, прогорклое масло, старый замшелый пень, прелая мормыка из тыквы.

Забрал в подпись :lol:

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Many statements was open at connection close
СообщениеДобавлено: 01 окт 2013, 14:44 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
stark писал(а):
dimOn писал(а):
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! А куча if — фу, прогорклое масло, старый замшелый пень, прелая мормыка из тыквы.


он не читабилен. Погоня за краткостью в ущерб легкости понимания.

да, вот твой код читабельнее, да, потому что тупо в лоб сравнение->действие. нормальный такой простой код.
а мой примерно настолько же читабелен, как оптимизированный код амира (который использует цепочку не вполне тривиальных сравнений/присваиваний), но мой при этом кратщще и изящщнее.

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Many statements was open at connection close
СообщениеДобавлено: 21 янв 2014, 10:58 
Не в сети

Зарегистрирован: 17 дек 2013, 10:48
Сообщения: 79
Карма: 0
Имеется java-код который работает по планировщику в 01.30. Но спотыкается об этот "камушек" :
01-21/01:30:01 INFO [Thread-3] TaskExecuter - Starting periodic task #41: bitel.billing.server.script.global.bean.GlobalScriptTimer
01-21/01:31:24 ERROR [pool-2-thread-3] DefaultServerSetup - Many statements was open at connection close:
com.mysql.jdbc.JDBC4PreparedStatement@7a07a5ad: SELECT * FROM global_script_link WHERE id=1
com.mysql.jdbc.StatementImpl@2b6a1b3a
com.mysql.jdbc.StatementImpl@4321931a
com.mysql.jdbc.StatementImpl@3b6e83dc
com.mysql.jdbc.StatementImpl@5492feff
com.mysql.jdbc.StatementImpl@182cef2
com.mysql.jdbc.StatementImpl@32e072a4
com.mysql.jdbc.StatementImpl@1ee4dbf7
......
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:272)
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 ru.bitel.common.worker.ThreadContext.pop(ThreadContext.java:54)
at ru.bitel.bgbilling.kernel.task.server.TaskBase.run(TaskBase.java:84)
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)
01-21/01:31:24 INFO [pool-2-thread-3] GlobalScriptTimer - Task finished time=83102 ms.

Самое интересное в другом. Когда тот же самый код запускаешь не планировщиком, а ручками. Он работает! И не валиться на Many statements was open at connection close!!!!

BGBilling v5.2

_________________
BGBilling v5.2


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 32 ]  На страницу 1, 2  След.

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


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

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


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

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