forum.bitel.ru http://forum.bitel.ru/ |
|
[5.2] Many statements was open at connection close http://forum.bitel.ru/viewtopic.php?f=22&t=7075 |
Страница 1 из 1 |
Автор: | madmax [ 09 авг 2012, 15:24 ] |
Заголовок сообщения: | [5.2] Many statements was open at connection close |
В логах server.error.log выходит периодически Код: DefaultServerSetup - Many statements was open at connection close: com.mysql.jdbc.ServerPreparedStatement[191] - SELECT config FROM module_config WHERE mid=1 AND active=1 LIMIT 1 com.mysql.jdbc.ServerPreparedStatement[193] - SELECT config FROM module_config WHERE mid=1 AND active=1 LIMIT 1 com.mysql.jdbc.ServerPreparedStatement[194] - SELECT config FROM module_config WHERE mid=1 AND active=1 LIMIT 1 com.mysql.jdbc.ServerPreparedStatement[195] - SELECT config FROM module_config WHERE mid=1 AND active=1 LIMIT 1 com.mysql.jdbc.ServerPreparedStatement[196] - SELECT config FROM module_config WHERE mid=1 AND active=1 LIMIT 1 и .т.д 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.container.managed.ServerContext.recycle(ServerContext.java:366) at ru.bitel.common.worker.WorkerTask.run(WorkerTask.java:103) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) at java.lang.Thread.run(Thread.java:619) at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:40) mq 08-09/00:30:11 ERROR [event-proc-p-2-t-1] DefaultServerSetup - Many statements was open at connection close: А также в schedule.error.log каждый час после запуска проверки IPN Код: scheduler 08-08/10:21:33 ERROR [pool-2-thread-3] DefaultServerSetup - Many statements was open at connection close:
com.mysql.jdbc.ServerPreparedStatement[9] - SELECT config FROM module_config WHERE mid=1 AND active=1 LIMIT 1 com.mysql.jdbc.ServerPreparedStatement[28] - SELECT vid FROM ipn_gate_vlan_1 WHERE gid = 2 AND cid = 98 com.mysql.jdbc.ServerPreparedStatement[29] - SELECT vid FROM ipn_gate_vlan_1 WHERE gid = 13 AND cid = 76 com.mysql.jdbc.ServerPreparedStatement[30] - SELECT vid FROM ipn_gate_vlan_1 WHERE gid = 12 AND cid = 32 com.mysql.jdbc.ServerPreparedStatement[31] - SELECT vid FROM ipn_gate_vlan_1 WHERE gid = 20 AND cid = 10 com.mysql.jdbc.ServerPreparedStatement[32] - SELECT vid FROM ipn_gate_vlan_1 WHERE gid = 2 AND cid = 30 com.mysql.jdbc.ServerPreparedStatement[33] - SELECT vid FROM ipn_gate_vlan_1 WHERE gid = 13 AND cid = 49 com.mysql.jdbc.ServerPreparedStatement[34] - SELECT vid FROM ipn_gate_vlan_1 WHERE gid = 12 AND cid = 69 com.mysql.jdbc.ServerPreparedStatement[35] - SELECT vid FROM ipn_gate_vlan_1 WHERE gid = 20 AND cid = 15 и куча таких же записей 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.bgbilling.server.util.ServerUtils.closeConnection(ServerUtils.java:568) at bitel.billing.server.ipn.IPNTestGates.executeTask(IPNTestGates.java:177) at ru.bitel.bgbilling.kernel.task.server.TaskBase.run(TaskBase.java:74) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) at java.lang.Thread.run(Thread.java:619) |
Автор: | stark [ 09 авг 2012, 17:49 ] |
Заголовок сообщения: | Re: [5.2] Many statements was open at connection close |
Это не совсем ошибка , это средство диагностики незакрытия ресурсов БД , которое выливается в повешенное потребление памяти приложением. Исправили , выложили обновление . Если появятся такие ошибки еще - пишите , исправим . |
Автор: | madmax [ 10 авг 2012, 21:51 ] |
Заголовок сообщения: | Re: [5.2] Many statements was open at connection close |
Вот еще появилась scheduler 08-10/06:00:06 ERROR [pool-2-thread-2] DefaultServerSetup - Many statements was open at connection close: com.mysql.jdbc.ServerPreparedStatement[39] - SELECT * FROM contract WHERE id=37 com.mysql.jdbc.ServerPreparedStatement[46] - SELECT * FROM contract WHERE id=86 com.mysql.jdbc.ServerPreparedStatement[47] - SELECT * FROM contract WHERE id=92 com.mysql.jdbc.ServerPreparedStatement[48] - SELECT * FROM contract WHERE id=40 com.mysql.jdbc.ServerPreparedStatement[49] - SELECT * FROM contract WHERE id=59 com.mysql.jdbc.ServerPreparedStatement[50] - SELECT * FROM contract WHERE id=39 com.mysql.jdbc.ServerPreparedStatement[51] - select count(*) from contract_parameter_type_1_log where cid=39 and date(now())-interval 3 day<= date(dt_change) and user_id=0 and pid=32; com.mysql.jdbc.ServerPreparedStatement[52] - SELECT * FROM contract WHERE id=67 |
Автор: | stark [ 14 авг 2012, 15:05 ] |
Заголовок сообщения: | Re: [5.2] Many statements was open at connection close |
madmax писал(а): Вот еще появилась scheduler 08-10/06:00:06 ERROR [pool-2-thread-2] DefaultServerSetup - Many statements was open at connection close: com.mysql.jdbc.ServerPreparedStatement[39] - SELECT * FROM contract WHERE id=37 com.mysql.jdbc.ServerPreparedStatement[46] - SELECT * FROM contract WHERE id=86 com.mysql.jdbc.ServerPreparedStatement[47] - SELECT * FROM contract WHERE id=92 com.mysql.jdbc.ServerPreparedStatement[48] - SELECT * FROM contract WHERE id=40 com.mysql.jdbc.ServerPreparedStatement[49] - SELECT * FROM contract WHERE id=59 com.mysql.jdbc.ServerPreparedStatement[50] - SELECT * FROM contract WHERE id=39 com.mysql.jdbc.ServerPreparedStatement[51] - select count(*) from contract_parameter_type_1_log where cid=39 and date(now())-interval 3 day<= date(dt_change) and user_id=0 and pid=32; com.mysql.jdbc.ServerPreparedStatement[52] - SELECT * FROM contract WHERE id=67 и Excеption опять можно ? |
Автор: | madmax [ 14 авг 2012, 22:23 ] |
Заголовок сообщения: | Re: [5.2] Many statements was open at connection close |
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.bgbilling.server.util.ServerUtils.closeConnection(ServerUtils.java:568) at bitel.billing.server.script.global.bean.GlobalScriptMachine.runScript(GlobalScriptMachine.java:113) at bitel.billing.server.script.global.bean.GlobalScriptManager.executeGlobalScript(GlobalScriptManager.java:39) at bitel.billing.server.script.global.bean.GlobalScriptTimer.executeBsh(GlobalScriptTimer.java:73) at bitel.billing.server.script.global.bean.GlobalScriptTimer.executeTask(GlobalScriptTimer.java:53) at ru.bitel.bgbilling.kernel.task.server.TaskBase.run(TaskBase.java:74) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) at java.lang.Thread.run(Thread.java:619) |
Автор: | stark [ 16 авг 2012, 12:35 ] |
Заголовок сообщения: | Re: [5.2] Many statements was open at connection close |
madmax писал(а): 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.bgbilling.server.util.ServerUtils.closeConnection(ServerUtils.java:568) at bitel.billing.server.script.global.bean.GlobalScriptMachine.runScript(GlobalScriptMachine.java:113) at bitel.billing.server.script.global.bean.GlobalScriptManager.executeGlobalScript(GlobalScriptManager.java:39) at bitel.billing.server.script.global.bean.GlobalScriptTimer.executeBsh(GlobalScriptTimer.java:73) at bitel.billing.server.script.global.bean.GlobalScriptTimer.executeTask(GlobalScriptTimer.java:53) at ru.bitel.bgbilling.kernel.task.server.TaskBase.run(TaskBase.java:74) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) at java.lang.Thread.run(Thread.java:619) И ниже еще есть что-нибудь типа cause? . Это ошибка одного из ваших глобальных скриптов, запускаемых по таймеру . Там либо создается PreparedStatement и не закрывается либо создается ContractManager много раз . Покажите скрипт - скажу как исправить . |
Автор: | madmax [ 17 авг 2012, 12:07 ] |
Заголовок сообщения: | Re: [5.2] Many statements was open at connection close |
Вот скрипт для отправки СМС Код: import bitel.billing.common.TimeUtils; import bitel.billing.server.service.bean.ModuleAndServiceUtils; import bitel.billing.server.admin.errorlog.bean.PeriodicErrorManager; import bitel.billing.server.contract.bean.BalanceUtils; import bitel.billing.server.contract.bean.Contract; import bitel.billing.server.contract.bean.ContractStatus; import bitel.billing.server.contract.bean.ContractStatusManager; import bitel.billing.server.contract.bean.ContractManager; import bitel.billing.server.contract.bean.ServiceCostCache; import bitel.billing.server.service.bean.ModuleAndServiceManager; import bitel.billing.server.contract.bean.ContractParameterManager; import java.math.BigDecimal; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.Statement; import java.util.Calendar; import java.util.Date; import java.util.HashSet; import java.util.Map; import java.util.Set; import org.apache.log4j.Logger; import ru.bitel.bgbilling.kernel.task.server.TaskBase; import ru.bitel.bgbilling.modules.npay.server.Calculator; import ru.bitel.bgbilling.modules.npay.server.bean.DebetStatusManageConfig; import ru.bitel.bgbilling.server.util.ModuleSetup; import ru.bitel.bgbilling.server.util.ServerUtils; import ru.bitel.bgbilling.server.util.Setup; import ru.bitel.common.Preferences; import ru.bitel.common.Utils; import javax.jms.Connection; import javax.jms.DeliveryMode; import javax.jms.Destination; import javax.jms.JMSException; import javax.jms.MessageProducer; import javax.jms.Session; import javax.jms.TextMessage; import org.apache.activemq.ActiveMQConnectionFactory; import java.text.SimpleDateFormat; import ru.bitel.bgbilling.kernel.module.server.ModuleCache; public void main( setup, con, conSlave ) { int LOG_PARAM_ID = 32; // id строкового параметра договора с включенным логом, где будем вести историю отправки по клиенту int mid=3; //id модуля абонплат String TABLE_GROUPED_SUB_ACCOUNT = " _npay_precalc_sub_account_" + this.mid + " "; String TABLE_GROUPED_SUPER_AND_INDEPEND_ACCOUNT = " _npay_precalc_sub_and_independ_account_" + this.mid + " "; now = (new SimpleDateFormat("yyyy/MM/dd HH:mm:ss")).format(new Date()); cpm = new ContractParameterManager(con); startMonth = TimeUtils.getStartMonth(Calendar.getInstance()); Calendar toDate = Calendar.getInstance(); toDate.add(Calendar.DAY_OF_MONTH,3); String moduleServices = ModuleCache.getInstance().getModuleServicesString(mid); Date currentDate = new Date(); try { conSlave.createStatement().executeUpdate("DROP TEMPORARY TABLE IF EXISTS " + TABLE_GROUPED_SUB_ACCOUNT); conSlave.createStatement().executeUpdate("DROP TEMPORARY TABLE IF EXISTS " + TABLE_GROUPED_SUPER_AND_INDEPEND_ACCOUNT); BalanceUtils bu = new BalanceUtils(conSlave); Calculator calculator = new Calculator(); calculator.setExecutingTime(toDate); calculator.initTask(setup, 0, "mid=" + mid + "\nservice.set=0"); calculator.setPreCalc(); calculator.startTask(); Map planAccountMap = calculator.getCostCache().getContractAccounts(); Set cidsForClose = new HashSet(); String query = "CREATE TEMPORARY TABLE " + TABLE_GROUPED_SUB_ACCOUNT + "SELECT contract.scid AS scid, SUM(ROUND(account.summa,2)) AS summa " + "FROM contract_account AS account " + "INNER JOIN contract ON account.cid=contract.id " + "WHERE account.yy=? AND account.mm=? AND account.sid IN (" + moduleServices + ") AND " + "contract.sub_mode=0 AND contract.scid>0 " + "GROUP BY contract.scid"; PreparedStatement psCreateTempTable = conSlave.prepareStatement(query); psCreateTempTable.setInt(1, startMonth.get(1)); psCreateTempTable.setInt(2, startMonth.get(2) + 1); psCreateTempTable.executeUpdate(); psCreateTempTable.close(); query = "CREATE TEMPORARY TABLE " + TABLE_GROUPED_SUPER_AND_INDEPEND_ACCOUNT + "SELECT contract.id AS cid, SUM(ROUND(account.summa,2)) AS summa " + "FROM contract_account AS account " + "INNER JOIN contract ON account.cid=contract.id " + "WHERE account.yy=? AND account.mm=? AND account.sid IN (" + moduleServices + ") AND " + "( contract.scid<=0 OR (contract.sub_mode=1) )" + "GROUP BY contract.id"; psCreateTempTable = conSlave.prepareStatement(query); psCreateTempTable.setInt(1, startMonth.get(1)); psCreateTempTable.setInt(2, startMonth.get(2) + 1); psCreateTempTable.executeUpdate(); psCreateTempTable.close(); query = "SELECT contract.id, contract.scid, contract.sub_list, contract.sub_mode, contract.closesumma, contract.title, contract.gr, account.summa, sub_account.summa, contract.fc, contract_parameter_type_phone_item.phone FROM contract INNER JOIN contract_module ON contract.id=contract_module.cid AND contract_module.mid=? LEFT JOIN " + TABLE_GROUPED_SUPER_AND_INDEPEND_ACCOUNT + " AS account ON contract.id=account.cid " + "LEFT JOIN " + TABLE_GROUPED_SUB_ACCOUNT + " AS sub_account ON contract.id=sub_account.scid " + "LEFT JOIN contract_parameter_type_phone_item ON contract_parameter_type_phone_item.cid=contract.id AND contract_parameter_type_phone_item.pid=30 AND contract_parameter_type_phone_item.n=3 " + "WHERE contract.mode=1 AND contract.status=0 AND (contract.scid<=0 OR contract.sub_mode=1) " + "AND (contract.date2 IS NULL OR ?<=contract.date2) AND contract.gr&(1<<0)=1 AND contract.fc=0 AND contract_parameter_type_phone_item.phone IS not NULL"; PreparedStatement psSelect = conSlave.prepareStatement(query); psSelect.setInt(1, mid); psSelect.setDate(2, TimeUtils.convertDateToSqlDate(currentDate)); ResultSet rs = psSelect.executeQuery(); String subList; while (rs.next()) { int contractId = rs.getInt(1); int superId = rs.getInt(2); subList = rs.getString(3); int subMode = rs.getInt(4); BigDecimal limit = Utils.maskNull(rs.getBigDecimal(5)); String title = rs.getString(6); long gr = rs.getLong(7); BigDecimal accountSumma = rs.getBigDecimal(8); BigDecimal subSumma = rs.getBigDecimal(9); int fc = rs.getInt( 10 ); String phone = rs.getString( 11 ); contract = new ContractManager(con).getContractById(contractId); contract_groups = contract.getGroups(); if(accountSumma==null){accountSumma=new BigDecimal(0);} if(subSumma==null){subSumma=new BigDecimal(0);} accountSumma = accountSumma.add(subSumma); BigDecimal planAccount = (BigDecimal)planAccountMap.get(Integer.valueOf(contractId)); if(planAccount==null){planAccount=new BigDecimal(0);} if (superId == -1) { for (Integer dependSub : Utils.toIntegerList(subList)) { BigDecimal subAccount = (BigDecimal)planAccountMap.get(dependSub); if(subAccount==null){subAccount=new BigDecimal(0);} planAccount = planAccount.add(subAccount); } } if (planAccount.compareTo(accountSumma) <= 0) continue; Contract contract = new Contract(); contract.setId(contractId); contract.setSuperId(superId); contract.setGroups(gr); contract.setDependSubList(subList); contract.setSubMode(subMode); BigDecimal diff = planAccount.subtract(accountSumma); BigDecimal balance = bu.getBalance(currentDate, contract); if (balance.subtract(diff).compareTo(limit) >= 0) continue; //Сколько уведомлений было отправлено в последние 2 дня для группы? ps1 = con.prepareStatement("select count(*) from contract_parameter_type_1_log where cid=? and date(now())-interval 3 day<= date(dt_change) and user_id=0 and pid=?;"); ps1.setInt(1,contractId); ps1.setInt(2,LOG_PARAM_ID); rs1 = ps1.executeQuery(); notificationCount = 0; if(rs1.next()){notificationCount = rs1.getInt(1);} if(notificationCount>=1) { print("skip: contract " + title + " balance: " + Utils.formatBigDecimalSumm(balance) + "; currentAccount: " + Utils.formatBigDecimalSumm(accountSumma) + "; planAccount: " + Utils.formatBigDecimalSumm(planAccount) + "; phone: " + phone); continue; } if (phone.startsWith ("79") && balance.floatValue() >=0 ) { print("sent: contract " + title + " balance: " + Utils.formatBigDecimalSumm(balance) + "; currentAccount: " + Utils.formatBigDecimalSumm(accountSumma) + "; planAccount: " + Utils.formatBigDecimalSumm(planAccount) + "; phone: " + phone); text = "Ваш баланс "+Utils.formatBigDecimalSumm(balance)+" возможно отключение услуг через 3 дня."; String q = "insert into sms_informer (cid,phone_number,message_text,source_addr,create_dt) values(?,?,?,?,NOW())"; PreparedStatement ps = con.prepareStatement( q ); ps.setInt(1,contractId); ps.setString(2,phone); ps.setString(3,text); ps.setString(4,from); ps.executeUpdate(); ps.close(); cpm.updateTextParam(contractId, LOG_PARAM_ID, now + " : balance= " + balance+", limit= "+limit+", currentAccount= " + Utils.formatBigDecimalSumm(accountSumma) +", planAccount= " + Utils.formatBigDecimalSumm(planAccount), 0); } } psSelect.close(); } catch (Exception e) { error(e.getMessage()); } finally { try { conSlave.createStatement().executeUpdate("DROP TEMPORARY TABLE IF EXISTS " + TABLE_GROUPED_SUB_ACCOUNT); conSlave.createStatement().executeUpdate("DROP TEMPORARY TABLE IF EXISTS " + TABLE_GROUPED_SUPER_AND_INDEPEND_ACCOUNT); } catch (Exception e) { error(e.getMessage()); } } } Нашли что нужно тут добавить Код: if(rs1.next()){notificationCount = rs1.getInt(1);} ps1.close(); Но вот все равно выходит другая ошибка Код: om.mysql.jdbc.ServerPreparedStatement[105] - SELECT * FROM contract WHERE id=43779
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.bgbilling.server.util.ServerUtils.closeConnection(ServerUtils.java:568) at bitel.billing.server.script.global.bean.GlobalScriptMachine.runScript(GlobalScriptMachine.java:113) at bitel.billing.server.script.global.bean.GlobalScriptManager.executeGlobalScript(GlobalScriptManager.java:39) at bitel.billing.server.script.global.bean.GlobalScriptTimer.executeBsh(GlobalScriptTimer.java:73) at bitel.billing.server.script.global.bean.GlobalScriptTimer.executeTask(GlobalScriptTimer.java:53) at ru.bitel.bgbilling.kernel.task.server.TaskBase.run(TaskBase.java:74) at ru.bitel.bgbilling.kernel.task.server.TaskBase.startTask(TaskBase.java:135) at bitel.billing.server.task.TaskBaseRunner.executeTask(TaskBaseRunner.java:72) at bitel.billing.server.task.bean.RunTask.run(RunTask.java:41) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) at java.lang.Thread.run(Thread.java:636) |
Автор: | Amir [ 17 авг 2012, 14:12 ] |
Заголовок сообщения: | Re: [5.2] Many statements was open at connection close |
Цитата: contract = new ContractManager(con).getContractById(contractId); ContractManager лучше создать один раз выше цикла.
|
Автор: | madmax [ 17 авг 2012, 15:02 ] |
Заголовок сообщения: | Re: [5.2] Many statements was open at connection close |
А как его создать выше цикла если в цикле идет поиск договора int contractId = rs.getInt(1); |
Автор: | Amir [ 17 авг 2012, 15:03 ] |
Заголовок сообщения: | Re: [5.2] Many statements was open at connection close |
Т.е. Код: ContractManager cm = new ContractManager( con );
... while(rs.next()) { ... contract = cm.getContractById(contractId); ... |
Автор: | madmax [ 17 авг 2012, 15:12 ] |
Заголовок сообщения: | Re: [5.2] Many statements was open at connection close |
Да сорри не на тот цикл воткнул. Сейчас ошибка исчезла. Теперь понятно как закрывать соединения. |
Автор: | madmax [ 10 окт 2012, 15:31 ] |
Заголовок сообщения: | Re: [5.2] Many statements was open at connection close |
Еще появилась ошибка такого же типа Код: com.mysql.jdbc.ServerPreparedStatement[7283] - SELECT * FROM contract WHERE id=17
com.mysql.jdbc.ServerPreparedStatement[7284] - SELECT t1.id, IF(t2.title IS NULL, '<?????>', t2.title), comment, dt, summa, t2.flag, t1.uid, t1.lm FROM contract_charge AS t1 LEFT JOIN contract_char com.mysql.jdbc.ServerPreparedStatement[7285] - SELECT * FROM contract WHERE id=17 com.mysql.jdbc.ServerPreparedStatement[7286] - SELECT t1.id, IF(t2.title IS NULL, '<?????>', t2.title), comment, dt, summa, t2.flag, t1.uid, t1.lm FROM contract_payment AS t1 LEFT JOIN contract_pay com.mysql.jdbc.ServerPreparedStatement[7287] - SELECT * FROM contract WHERE id=17 com.mysql.jdbc.ServerPreparedStatement[7288] - SELECT mm, yy, summa1, summa2, summa3, summa4, summa1 + summa2 - summa3 - summa4 FROM contract_balance WHERE cid=38817 AND ( ( yy>2012 AND yy<2012 ) O com.mysql.jdbc.ServerPreparedStatement[7289] - SELECT id, title, mid FROM service com.mysql.jdbc.ServerPreparedStatement[7290] - SELECT yy, mm, sid, ROUND(summa,2), sid FROM contract_account WHERE cid=17 AND yy*12+mm>=24154 AND yy*12+mm<=24154 ORDER BY yy, mm, sid 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 bitel.billing.server.ActionBase.freeConnection(ActionBase.java:181) 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.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:885) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) at java.lang.Thread.run(Thread.java:619) |
Автор: | skyb [ 10 окт 2012, 16:46 ] |
Заголовок сообщения: | Re: [5.2] Many statements was open at connection close |
http://wiki.bgbilling.ru/index.php/SMS_ ... %D0%B2_5.2 |
Автор: | stark [ 10 окт 2012, 19:29 ] |
Заголовок сообщения: | Re: [5.2] Many statements was open at connection close |
madmax писал(а): Еще появилась ошибка такого же типа Код: com.mysql.jdbc.ServerPreparedStatement[7283] - SELECT * FROM contract WHERE id=17 com.mysql.jdbc.ServerPreparedStatement[7284] - SELECT t1.id, IF(t2.title IS NULL, '<?????>', t2.title), comment, dt, summa, t2.flag, t1.uid, t1.lm FROM contract_charge AS t1 LEFT JOIN contract_char com.mysql.jdbc.ServerPreparedStatement[7285] - SELECT * FROM contract WHERE id=17 com.mysql.jdbc.ServerPreparedStatement[7286] - SELECT t1.id, IF(t2.title IS NULL, '<?????>', t2.title), comment, dt, summa, t2.flag, t1.uid, t1.lm FROM contract_payment AS t1 LEFT JOIN contract_pay com.mysql.jdbc.ServerPreparedStatement[7287] - SELECT * FROM contract WHERE id=17 com.mysql.jdbc.ServerPreparedStatement[7288] - SELECT mm, yy, summa1, summa2, summa3, summa4, summa1 + summa2 - summa3 - summa4 FROM contract_balance WHERE cid=38817 AND ( ( yy>2012 AND yy<2012 ) O com.mysql.jdbc.ServerPreparedStatement[7289] - SELECT id, title, mid FROM service com.mysql.jdbc.ServerPreparedStatement[7290] - SELECT yy, mm, sid, ROUND(summa,2), sid FROM contract_account WHERE cid=17 AND yy*12+mm>=24154 AND yy*12+mm<=24154 ORDER BY yy, mm, sid 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 bitel.billing.server.ActionBase.freeConnection(ActionBase.java:181) 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.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:885) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) at java.lang.Thread.run(Thread.java:619) Обновление выложено. |
Автор: | stark [ 10 окт 2012, 19:29 ] |
Заголовок сообщения: | Re: [5.2] Many statements was open at connection close |
skyb писал(а): http://wiki.bgbilling.ru/index.php/SMS_%D1%80%D0%B0%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B0_%D1%87%D0%B5%D1%80%D0%B5%D0%B7_SMPP_%D0%BF%D0%BE_%D1%81%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B2%D0%B0%D0%BC_%D0%B4%D0%B8%D0%BD_%D0%BA%D0%BE%D0%B4%D0%B0_%D0%B2_5.2 Не понял. при чем тут этот скрипт ? |
Автор: | Phricker [ 10 окт 2012, 19:31 ] |
Заголовок сообщения: | Re: [5.2] Many statements was open at connection close |
stark писал(а): Не понял. при чем тут этот скрипт ? так скуб всегда топики по диагонали читает. я тем же страдаю только изредка, а у него это на постоянной основе ![]() |
Автор: | skyb [ 10 окт 2012, 20:30 ] |
Заголовок сообщения: | Re: [5.2] Many statements was open at connection close |
madmax писал(а): Вот скрипт для отправки СМС скинул который проще и который работает =) что то пропустил? =) |
Автор: | stark [ 12 окт 2012, 11:50 ] |
Заголовок сообщения: | Re: [5.2] Many statements was open at connection close |
skyb писал(а): madmax писал(а): Вот скрипт для отправки СМС скинул который проще и который работает =) что то пропустил? =) Здесь тема для тех, у кого в логах "Many statements was open at connection close". Этот скрипт вообще к базе не обращается |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |