BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 25 апр 2024, 07:14

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




Начать новую тему Ответить на тему  [ Сообщений: 359 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7, 8 ... 12  След.
Автор Сообщение
 Заголовок сообщения: Re: Незакрытые preparedStatement
СообщениеДобавлено: 20 мар 2014, 18:28 
Не в сети

Зарегистрирован: 05 окт 2007, 13:36
Сообщения: 1073
Карма: 46
у меня последние три недели пару раз в неделю в среднем биллинг подвисает. говорит "конекшн лимит овер".
Код:
# ./server_status.sh
BGBillingServer v 5.2 build 1496 from 13.05.2013 19:34:01
Started: 18.03.2014 21:20:50    Uptime: 1 d 18:44:41
Memory total: 1 798 766 592; max: 1 908 932 608; free: 1 338 031 800
Memory pools:
  Non-heap memory[Code Cache]: max: 50 331 648; used: 20 461 440; peek: 20 476 096
  Heap memory[PS Eden Space]: max: 557 514 752; used: 194 303 760; peek: 538 443 776
  Heap memory[PS Survivor Space]: max: 75 759 616; used: 62 286 032; peek: 74 927 976
  Heap memory[PS Old Gen]: max: 1 431 699 456; used: 204 145 000; peek: 1 145 524 032
  Non-heap memory[PS Perm Gen]: max: 536 870 912; used: 92 496 504; peek: 92 986 128
Thread count: 55
Connections pool to Master status Idle: 0; Active: 300; maxActive: 300; maxIdle: 50

при этом в mysql show full processlist показывает рабочие 90-100 конектов, система не нагружена.
в логах ничего особенного, кроме собственно
Код:
mq 03-20/15:48:46 ERROR [event-proc-p-2-t-1] DefaultServerSetup - Pool [data.data]: Connections limit is over!!!!!
server 03-20/15:54:10 ERROR ["http-bio-/0.0.0.0-8080"-exec-10] DefaultServerSetup - Pool [data.data]: Connections limit is over!!!!!
server 03-20/15:54:10 ERROR ["http-bio-/0.0.0.0-8080"-exec-3] DefaultServerSetup - Pool [data.data]: Connections limit is over!!!!!
server 03-20/15:54:10 ERROR ["http-bio-/0.0.0.0-8443"-exec-7] DefaultServerSetup - Pool [data.data]: Connections limit is over!!!!!
server 03-20/15:54:44 ERROR ["http-bio-/0.0.0.0-8080"-exec-10] DefaultServerSetup - Pool [data.data]: Connections limit is over!!!!!
server 03-20/15:56:02 ERROR ["http-bio-/0.0.0.0-8080"-exec-1] DefaultServerSetup - Pool [data.data]: Connections limit is over!!!!!
server 03-20/15:56:02 ERROR ["http-bio-/0.0.0.0-8080"-exec-1] DefaultServerSetup - Pool [data.data]: Connections limit is over!!!!!
server 03-20/15:56:02 ERROR ["http-bio-/0.0.0.0-8080"-exec-1] DefaultServerSetup - Pool [data.data]: Connections limit is over!!!!!
server 03-20/15:58:12 ERROR ["http-bio-/0.0.0.0-8080"-exec-1] DefaultServerSetup - Pool [data.data]: Connections limit is over!!!!!
server 03-20/15:58:19 ERROR ["http-bio-/0.0.0.0-8443"-exec-10] DefaultServerSetup - Pool [data.data]: Connections limit is over!!!!!
server 03-20/15:58:25 ERROR ["http-bio-/0.0.0.0-8080"-exec-5] DefaultServerSetup - Pool [data.data]: Connections limit is over!!!!!
server 03-20/15:58:30 ERROR ["http-bio-/0.0.0.0-8080"-exec-9] DefaultServerSetup - Pool [data.data]: Connections limit is over!!!!!
server 03-20/15:58:32 ERROR ["http-bio-/0.0.0.0-8080"-exec-6] DefaultServerSetup - Pool [data.data]: Connections limit is over!!!!!
server 03-20/15:58:33 ERROR ["http-bio-/0.0.0.0-8080"-exec-4] DefaultServerSetup - Pool [data.data]: Connections limit is over!!!!!
server 03-20/15:58:34 ERROR ["http-bio-/0.0.0.0-8080"-exec-3] DefaultServerSetup - Pool [data.data]: Connections limit is over!!!!!
server 03-20/15:58:41 ERROR ["http-bio-/0.0.0.0-8080"-exec-7] DefaultServerSetup - Pool [data.data]: Connections limit is over!!!!!
server 03-20/15:58:49 ERROR ["http-bio-/0.0.0.0-8080"-exec-2] DefaultServerSetup - Pool [data.data]: Connections limit is over!!!!!
server 03-20/15:58:57 ERROR ["http-bio-/0.0.0.0-8080"-exec-10] DefaultServerSetup - Pool [data.data]: Connections limit is over!!!!!
server 03-20/15:59:05 ERROR ["http-bio-/0.0.0.0-8080"-exec-8] DefaultServerSetup - Pool [data.data]: Connections limit is over!!!!!
mq 03-20/16:00:07 ERROR [event-proc-p-2-t-1] DefaultServerSetup - Pool [data.data]: Connections limit is over!!!!!
server 03-20/16:03:56 ERROR ["http-bio-/0.0.0.0-8443"-exec-8] DefaultServerSetup - Pool [data.data]: Connections limit is over!!!!!
server 03-20/16:04:26 ERROR ["http-bio-/0.0.0.0-8443"-exec-7] DefaultServerSetup - Pool [data.data]: Connections limit is over!!!!!


в чем может быть дело? раньше такого не было, а когда было, то база реально не справлялась, кол-во коннектов к базе совпадало с совокупностью конектов подсистем биллинга.
это может быть изза моих сервлетов? два сервлета запустил месяц назад, ну и... может совпадение. в сервлетах да и вообще везде конекты к базе не закрываю, они же должны сами закрыться по идее, или хотя бы отображаться в списке конектов mysql.

_________________
интеграция биллинга с 1с http://bgbilling-1c.ru/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Незакрытые preparedStatement
СообщениеДобавлено: 21 мар 2014, 11:57 
Не в сети
Разработчик

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


Как это не закрываете ? нужно ОБЯЗАТЕЛЬНО закрывать. Из-за этого и проблема, скорее всего. Вы используете dbcp pool-ы? Если да, то соединение при закрытии физически не закрывается, а возвращается в pool(ресурсы и при этом все освобождаются), так происходит во всех наших приложениях. Если не используете pool-ы, то соединение все равно надо закрывать. У нас всегда закрывается соединение, если не закрывается это очень серьезная ошибка.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Незакрытые preparedStatement
СообщениеДобавлено: 21 мар 2014, 12:00 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Akhmat писал(а):
у меня последние три недели пару раз в неделю в среднем биллинг подвисает. говорит "конекшн лимит овер".
Код:
# ./server_status.sh
BGBillingServer v 5.2 build 1496 from 13.05.2013 19:34:01
Started: 18.03.2014 21:20:50    Uptime: 1 d 18:44:41
Memory total: 1 798 766 592; max: 1 908 932 608; free: 1 338 031 800
Memory pools:
  Non-heap memory[Code Cache]: max: 50 331 648; used: 20 461 440; peek: 20 476 096
  Heap memory[PS Eden Space]: max: 557 514 752; used: 194 303 760; peek: 538 443 776
  Heap memory[PS Survivor Space]: max: 75 759 616; used: 62 286 032; peek: 74 927 976
  Heap memory[PS Old Gen]: max: 1 431 699 456; used: 204 145 000; peek: 1 145 524 032
  Non-heap memory[PS Perm Gen]: max: 536 870 912; used: 92 496 504; peek: 92 986 128
Thread count: 55
Connections pool to Master status Idle: 0; Active: 300; maxActive: 300; maxIdle: 50



Стоп. Active: 300; maxActive: 300; - это не нормально . У вас все соединения в pool-е выбраны. Вы в каких-нибудь скриптах случайно не создаете Connection, который тоже забываете закрыть ? Желательно везде использовать наш, который передали( его мы закрываем).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Незакрытые preparedStatement
СообщениеДобавлено: 21 мар 2014, 12:04 
Не в сети
Разработчик

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Незакрытые preparedStatement
СообщениеДобавлено: 21 мар 2014, 12:10 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Нужно .
1. Если в data.properties не стоит
Код:
db.trace=1

То поставить и перезагрузить сервер.

2. Дождаться когда ситуация в статусе будет такая, что все 300 соединений из пула выбрано, появятся ошибки в логах о переполенном пуле.

3. Запустите ./server.sh conpool
Результат прикрепите сюда.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Незакрытые preparedStatement
СообщениеДобавлено: 21 мар 2014, 15:34 
Не в сети

Зарегистрирован: 05 окт 2007, 13:36
Сообщения: 1073
Карма: 46
Спасибо. поставил. жду. перепроверяю закрытие коннектов

_________________
интеграция биллинга с 1с http://bgbilling-1c.ru/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Незакрытые preparedStatement
СообщениеДобавлено: 21 мар 2014, 19:56 
Не в сети

Зарегистрирован: 05 окт 2007, 13:36
Сообщения: 1073
Карма: 46
Засада! Дело в сервлете, та команда показывает на текущий момент 30 активных коннектов сервлета. Получаю конект.
Код:
   
   Connection con = this.setup.getDBConnectionFromPool();

Как лучше закрывать конект, ресурсы освобождать вообще? у меня там несколько return-ов, перед каждым закрывать стремно. теория не силен, но в жаве должен быть нормальный механизм для этого

_________________
интеграция биллинга с 1с http://bgbilling-1c.ru/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Незакрытые preparedStatement
СообщениеДобавлено: 24 мар 2014, 11:28 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Akhmat писал(а):
Засада! Дело в сервлете, та команда показывает на текущий момент 30 активных коннектов сервлета. Получаю конект.
Код:
   
   Connection con = this.setup.getDBConnectionFromPool();

Как лучше закрывать конект, ресурсы освобождать вообще? у меня там несколько return-ов, перед каждым закрывать стремно. теория не силен, но в жаве должен быть нормальный механизм для этого


А сервлет же на нашем сервере крутиться, тогда понятно .
Код:
Connection con = null;
try
{
               con = this.setup.getDBConnectionFromPool();
               ......
}
finally
{
     ServerUtils.closeConnection( con );
}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Незакрытые preparedStatement
СообщениеДобавлено: 24 мар 2014, 14:43 
Не в сети

Зарегистрирован: 05 окт 2007, 13:36
Сообщения: 1073
Карма: 46
Спасибо! поправил, повызывал сервлет, все впорядке теперь судя по всему, активных конектов 0.

_________________
интеграция биллинга с 1с http://bgbilling-1c.ru/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Незакрытые preparedStatement
СообщениеДобавлено: 25 апр 2014, 13:42 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
inet вер. 5.2 сборка 1311 от 21.04.2014 20:05:33

InetServRuntimeMap.load(ServerContext context, int deviceId, boolean slave)

В BGInetAccess/log/error.log :

Цитата:
...
com.mysql.jdbc.JDBC4PreparedStatement@72329e50: SELECT * FROM contract WHERE id=143267
com.mysql.jdbc.JDBC4PreparedStatement@7e9aad70: SELECT status.id, status.date1, status.date2 FROM contract_status AS status WHERE status.cid=143267 AND status.status IN (3,4,null,null,null,null) AND (null IS NULL OR status.date1 IS NULL OR status.date1<=null) AND (status.date2 IS NULL OR status.date2>='2014-04-22') ORDER BY status.date1
com.mysql.jdbc.JDBC4PreparedStatement@77da1945: SELECT * FROM contract WHERE id=201482
com.mysql.jdbc.JDBC4PreparedStatement@520bc33c: SELECT status.id, status.date1, status.date2 FROM contract_status AS status WHERE status.cid=201483 AND status.status IN (3,4,null,null,null,null) AND (null IS NULL OR status.date1 IS NULL OR status.date1<=null) AND (status.date2 IS NULL OR status.date2>='2014-04-22') ORDER BY status.date1
com.mysql.jdbc.JDBC4PreparedStatement@7fae1832: SELECT * FROM contract WHERE id=197565
com.mysql.jdbc.JDBC4PreparedStatement@110371ea: SELECT status.id, status.date1, status.date2 FROM contract_status AS status WHERE status.cid=197565 AND status.status IN (3,4,null,null,null,null) AND (null IS NULL OR status.date1 IS NULL OR status.date1<=null) AND (status.date2 IS NULL OR status.date2>='2014-04-22') ORDER BY status.date1

java.lang.RuntimeException
at ru.bitel.bgbilling.server.util.DefaultServerSetup$2$1.close(DefaultServerSetup.java:494)
at ru.bitel.bgbilling.server.util.PoolGuardConnectionWrapper.close(PoolGuardConnectionWrapper.java:47)
at ru.bitel.common.sql.ConnectionSet.recycle(ConnectionSet.java:274)
at ru.bitel.bgbilling.modules.inet.access.sa.ServiceActivatorDeviceWorker.runWorker(ServiceActivatorDeviceWorker.java:233)
at ru.bitel.bgbilling.kernel.event.EventWorker.internalRunWorker(EventWorker.java:139)
at ru.bitel.bgbilling.modules.inet.access.sa.ServiceActivatorDeviceWorker.runImpl(ServiceActivatorDeviceWorker.java:128)
at ru.bitel.common.worker.WorkerTask.run(WorkerTask.java:86)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204)
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:662)
at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:40)



Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Незакрытые preparedStatement
СообщениеДобавлено: 25 апр 2014, 14:27 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Cromeshnic писал(а):
inet вер. 5.2 сборка 1311 от 21.04.2014 20:05:33

InetServRuntimeMap.load(ServerContext context, int deviceId, boolean slave)

В BGInetAccess/log/error.log :

Цитата:
...

com.mysql.jdbc.JDBC4PreparedStatement@7e9aad70: SELECT status.id, status.date1, status.date2 FROM contract_status AS status WHERE status.cid=143267 AND status.status IN (3,4,null,null,null,null) AND (null IS NULL OR status.date1 IS NULL OR status.date1<=null) AND (status.date2 IS NULL OR status.date2>='2014-04-22') ORDER BY status.date1
com.mysql.jdbc.JDBC4PreparedStatement@77da1945: SELECT * FROM contract WHERE id=201482
com.mysql.jdbc.JDBC4PreparedStatement@520bc33c: SELECT status.id, status.date1, status.date2 FROM contract_status AS status WHERE status.cid=201483 AND status.status IN (3,4,null,null,null,null) AND (null IS NULL OR status.date1 IS NULL OR status.date1<=null) AND (status.date2 IS NULL OR status.date2>='2014-04-22') ORDER BY status.date1
com.mysql.jdbc.JDBC4PreparedStatement@7fae1832: SELECT * FROM contract WHERE id=197565
com.mysql.jdbc.JDBC4PreparedStatement@110371ea: SELECT status.id, status.date1, status.date2 FROM contract_status AS status WHERE status.cid=197565 AND status.status IN (3,4,null,null,null,null) AND (null IS NULL OR status.date1 IS NULL OR status.date1<=null) AND (status.date2 IS NULL OR status.date2>='2014-04-22') ORDER BY status.date1

java.lang.RuntimeException
at ru.bitel.bgbilling.server.util.DefaultServerSetup$2$1.close(DefaultServerSetup.java:494)
at ru.bitel.bgbilling.server.util.PoolGuardConnectionWrapper.close(PoolGuardConnectionWrapper.java:47)
at ru.bitel.common.sql.ConnectionSet.recycle(ConnectionSet.java:274)
at ru.bitel.bgbilling.modules.inet.access.sa.ServiceActivatorDeviceWorker.runWorker(ServiceActivatorDeviceWorker.java:233)
at ru.bitel.bgbilling.kernel.event.EventWorker.internalRunWorker(EventWorker.java:139)
at ru.bitel.bgbilling.modules.inet.access.sa.ServiceActivatorDeviceWorker.runImpl(ServiceActivatorDeviceWorker.java:128)
at ru.bitel.common.worker.WorkerTask.run(WorkerTask.java:86)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204)
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:662)
at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:40)




Исправлено, в следующем обновлении будет


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Незакрытые preparedStatement
СообщениеДобавлено: 05 июн 2014, 09:54 
Не в сети
Клиент

Зарегистрирован: 10 окт 2012, 17:00
Сообщения: 339
Карма: 0
На тестовом стенде биллинга 6.1 повторяется та же проблема, изложенная мною примерно год назад:

viewtopic.php?f=22&t=7369&start=90#p67776

исходные данные те же самые, только в логах добавилось:

Код:
06-05/13:44:04 ERROR [pool-2-thread-4] DispatchWorker - ?????? ????????????? ???????????? ?????????!
ru.bitel.bgbilling.common.BGMessageException: ?????? ????????????? ???????????? ?????????!
        at ru.bitel.bgbilling.plugins.dispatch.server.DispatchServiceImpl.updateMessage(DispatchServiceImpl.java:118)
        at ru.bitel.bgbilling.plugins.dispatch.server.task.DispatchWorker.executeTask(DispatchWorker.java:113)
        at ru.bitel.bgbilling.kernel.task.server.TaskBase.run(TaskBase.java:76)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)


знаки вопроса в логах победить пока не могу (:

Информация о версии:

Клиент: вер. 6.1.735 / 02.06.2014 20:00:17
os: Linux; java: Java HotSpot(TM) Server VM, v.1.7.0_55
Сервер: вер. 6.1.903 / 04.06.2014 20:27:07
os: Linux; java: Java HotSpot(TM) Client VM, v.1.7.0_55

assist: вер. 6.1.74 / 17.03.2014 15:27:39
bill: вер. 6.1.246 / 17.03.2014 15:27:41
card: вер. 6.1.197 / 07.05.2014 11:13:50
dba: вер. 6.1.160 / 17.03.2014 15:28:14
enaza: вер. 6.1.53 / 17.03.2014 15:28:23
gorod: вер. 6.1.156 / 17.03.2014 15:28:24
inet: вер. 6.1.539 / 04.06.2014 20:51:55
mps: вер. 6.1.166 / 26.05.2014 17:16:51
npay: вер. 6.1.172 / 23.04.2014 15:37:50
paylinks: вер. 6.1.26 / 17.03.2014 15:29:51
qiwi: вер. 6.1.23 / 17.03.2014 15:30:04
rentsoft: вер. 6.1.44 / 22.05.2014 15:56:00
reports: вер. 6.1.178 / 14.05.2014 16:07:03
rscm: вер. 6.1.167 / 14.04.2014 12:46:03
ru.bitel.bgbilling.plugins.cladr: вер. 6.1.114 / 02.04.2014 17:58:45
ru.bitel.bgbilling.plugins.dispatch: вер. 6.1.48 / 26.05.2014 17:16:52
trayinfo: вер. 6.1.161 / 17.03.2014 15:30:33
wellpay: вер. 6.1.27 / 17.03.2014 15:31:05
wm: вер. 6.1.174 / 17.03.2014 15:31:26
yamoney: вер. 6.1.54 / 02.06.2014 20:01:25


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Незакрытые preparedStatement
СообщениеДобавлено: 05 июн 2014, 11:16 
Не в сети
Разработчик

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

viewtopic.php?f=22&t=7369&start=90#p67776

исходные данные те же самые, только в логах добавилось:

Код:
06-05/13:44:04 ERROR [pool-2-thread-4] DispatchWorker - ?????? ????????????? ???????????? ?????????!
ru.bitel.bgbilling.common.BGMessageException: ?????? ????????????? ???????????? ?????????!
        at ru.bitel.bgbilling.plugins.dispatch.server.DispatchServiceImpl.updateMessage(DispatchServiceImpl.java:118)
        at ru.bitel.bgbilling.plugins.dispatch.server.task.DispatchWorker.executeTask(DispatchWorker.java:113)
        at ru.bitel.bgbilling.kernel.task.server.TaskBase.run(TaskBase.java:76)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)





Нет вы давайте целиком ошибку опять покажите. Специально проверил, именно то исправление было на 6.1 тоже применено. Возможно там запросы другие в списке, т.е это не совсем такая же ошибка.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Незакрытые preparedStatement
СообщениеДобавлено: 05 июн 2014, 11:19 
Не в сети
Разработчик

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



Что у вас выводит команда

Код:
locale
LANG=ru_RU.UTF-8
LANGUAGE=
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"



на машине сервера биллинга?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Незакрытые preparedStatement
СообщениеДобавлено: 05 июн 2014, 11:22 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
abu писал(а):
[code]06-05/13:44:04 ERROR [pool-2-thread-4] DispatchWorker - ?????? ????????????? ???????????? ?????????!
ru.bitel.bgbilling.common.BGMessageException: ?????? ????????????? ???????????? ?????????!


Тут ошибка ""Нельзя редактировать отправленное сообщение!".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Незакрытые preparedStatement
СообщениеДобавлено: 05 июн 2014, 11:24 
Не в сети
Клиент

Зарегистрирован: 10 окт 2012, 17:00
Сообщения: 339
Карма: 0
Ошибка со знаками вопроса решается с помощью
viewtopic.php?f=54&t=8996

Ошибка, которая осталась:

Код:
06-05/15:19:00  INFO [Thread-3] TaskExecuter - Starting periodic task #10: ru.bitel.bgbilling.plugins.dispatch.server.task.DispatchWorker
06-05/15:19:01 ERROR [pool-2-thread-16] DefaultServerSetup - Many statements was open at connection close:
com.mysql.jdbc.ServerPreparedStatement[22] - SELECT * FROM dispatch_message WHERE dispatch_id=1 ORDER BY id
com.mysql.jdbc.ServerPreparedStatement[25] - SELECT * FROM contract WHERE id=243
com.mysql.jdbc.ServerPreparedStatement[28] - SELECT * FROM contract WHERE id=243
com.mysql.jdbc.ServerPreparedStatement[29] - SELECT * FROM contract WHERE id=161
com.mysql.jdbc.ServerPreparedStatement[30] - SELECT * FROM contract WHERE id=161
com.mysql.jdbc.ServerPreparedStatement[31] - SELECT * FROM contract WHERE id=179
com.mysql.jdbc.ServerPreparedStatement[32] - SELECT * FROM contract WHERE id=179
com.mysql.jdbc.ServerPreparedStatement[33] - SELECT * FROM contract WHERE id=62
com.mysql.jdbc.ServerPreparedStatement[34] - SELECT * FROM contract WHERE id=62
com.mysql.jdbc.ServerPreparedStatement[35] - SELECT * FROM contract WHERE id=65
com.mysql.jdbc.ServerPreparedStatement[36] - SELECT * FROM contract WHERE id=65
com.mysql.jdbc.ServerPreparedStatement[37] - SELECT * FROM contract WHERE id=66
com.mysql.jdbc.ServerPreparedStatement[38] - SELECT * FROM contract WHERE id=66
com.mysql.jdbc.ServerPreparedStatement[39] - SELECT * FROM contract WHERE id=70
com.mysql.jdbc.ServerPreparedStatement[40] - SELECT * FROM contract WHERE id=70
com.mysql.jdbc.ServerPreparedStatement[41] - SELECT * FROM contract WHERE id=71
com.mysql.jdbc.ServerPreparedStatement[42] - SELECT * FROM contract WHERE id=71
com.mysql.jdbc.ServerPreparedStatement[43] - SELECT * FROM contract WHERE id=73

...

com.mysql.jdbc.ServerPreparedStatement[120] - SELECT * FROM contract WHERE id=74
com.mysql.jdbc.ServerPreparedStatement[121] - SELECT * FROM contract WHERE id=74
com.mysql.jdbc.ServerPreparedStatement[122] - SELECT * FROM contract WHERE id=174
com.mysql.jdbc.ServerPreparedStatement[123] - SELECT * FROM contract WHERE id=172
com.mysql.jdbc.ServerPreparedStatement[124] - SELECT * FROM contract WHERE id=172
com.mysql.jdbc.ServerPreparedStatement[125] - SELECT * FROM contract WHERE id=171

java.lang.RuntimeException
        at ru.bitel.bgbilling.server.util.DefaultServerSetup$2$1.close(DefaultServerSetup.java:417)
        at ru.bitel.bgbilling.server.util.PoolGuardConnectionWrapper.close(PoolGuardConnectionWrapper.java:48)
        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.plugins.dispatch.server.task.DispatchWorker.executeTask(DispatchWorker.java:140)
        at ru.bitel.bgbilling.kernel.task.server.TaskBase.run(TaskBase.java:76)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
06-05/15:19:01  INFO [pool-2-thread-16] DispatchWorker - Task finished time=1392 ms.
06-05/15:20:00  INFO [Thread-3] TaskExecuter - Starting periodic task #10: ru.bitel.bgbilling.plugins.dispatch.server.task.DispatchWorker
06-05/15:20:00  INFO [pool-2-thread-17] DispatchWorker - Task finished time=5 ms.


Код, который запускается, нормально отрабатывает, но дает ошибку:

Код:
package ru.my.scripts;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*;
import java.io.*;
import java.util.List;
import java.util.Calendar;
import javax.activation.DataSource;
import ru.bitel.bgbilling.common.BGException;
import ru.bitel.bgbilling.plugins.dispatch.common.bean.Contact;
import ru.bitel.bgbilling.plugins.dispatch.server.sender.Sender;

public class sms
   implements Sender
{
   @Override
   public void send( Contact contact1, String string2, String string3, List<DataSource> list4 )
   throws BGException
   {
            
      try{   
            String queryStr =string3;
            String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(Calendar.getInstance().getTime());
            String filePath = "/path/to/save/" + contact1.getValue() + "_" + timeStamp + "_" +Integer.toString(contact1.getContractId());
            PrintWriter out = null;
         
      try
         {   
            out = new PrintWriter(new File(filePath).getAbsoluteFile(), "UTF-8");
         }
      catch(FileNotFoundException e) { throw new RuntimeException(e);   }

                   out.print(queryStr);
                   out.close();
   }
   catch (UnsupportedEncodingException e) {   throw new AssertionError("UTF-8 not supported");}

   }

}


Код:
locale
LANG=ru_RU.UTF-8
LANGUAGE=
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Незакрытые preparedStatement
СообщениеДобавлено: 05 июн 2014, 13:19 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
LC_ALL= тоже поставьте

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Незакрытые preparedStatement
СообщениеДобавлено: 05 июн 2014, 14:00 
Не в сети
Разработчик

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

[code]06-05/15:19:00 INFO [Thread-3] TaskExecuter - Starting periodic task #10: ru.bitel.bgbilling.plugins.dispatch.server.task.DispatchWorker
06-05/15:19:01 ERROR [pool-2-thread-16] DefaultServerSetup - Many statements was open at connection close:
com.mysql.jdbc.ServerPreparedStatement[22] - SELECT * FROM dispatch_message WHERE dispatch_id=1 ORDER BY id
com.mysql.jdbc.ServerPreparedStatement[25] - SELECT * FROM contract WHERE id=243
com.mysql.jdbc.ServerPreparedStatement[28] - SELECT * FROM contract WHERE id=243


Исправлено. в следующем обновлении будет. Получается, что тогда мы это не исправили на самом деле, а вы больше не писали о проблеме.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Незакрытые preparedStatement
СообщениеДобавлено: 06 июн 2014, 04:51 
Не в сети
Клиент

Зарегистрирован: 10 окт 2012, 17:00
Сообщения: 339
Карма: 0
dimon

Поправил - не помогло.

System.out.println(Locale.getDefault()) выдает en_US (и на рабочем сервере 6.0 тоже). Что и где еще нужно прописать?

Код:
locale
LANG=ru_RU.UTF-8
LANGUAGE=
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=ru_RU.UTF-8


UPD - добавил, как временное решение, в настройках запуска строку:
Код:
PARAMS="-Duser.language=ru -Duser.country=RU -Dfile.encoding=utf-8

с ней - работает.

stark

Я не сообщал, потому что после тогдашнего обновления проблема на версии 6.0 больше не появлялась. Спасибо за исправления.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Незакрытые preparedStatement
СообщениеДобавлено: 06 июн 2014, 12:44 
Не в сети
Разработчик

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

Я не сообщал, потому что после тогдашнего обновления проблема на версии 6.0 больше не появлялась. Спасибо за исправления.


Ну, надеюсь, что в этот раз я угадал :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Незакрытые preparedStatement
СообщениеДобавлено: 06 июн 2014, 13:49 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
после установки/изменения локали перезагружали всё что нужно? написал тест с System.out.println(Locale.getDefault()); - LC_ALL совершенно точно влияет на локаль. ну или не знаю, может LANGUAGE надо задать итд. это вопрос настройки вашей конкретной ОС, короче. настройте там полноценно локаль, и ява её подцепит. до этого никаких проблем ни у кого не было особо.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Незакрытые preparedStatement
СообщениеДобавлено: 09 июн 2014, 07:09 
Не в сети
Клиент

Зарегистрирован: 10 окт 2012, 17:00
Сообщения: 339
Карма: 0
dimOn - понятно, спасибо. Буду разбираться дальше, мб, что-то и напутал. Вариант с указанием в скриптах запуска локали и языка можно использовать в работе?

stark - извините, проблема не ушла. Версия dispatch - ru.bitel.bgbilling.plugins.dispatch: вер. 6.1.49 / 05.06.2014 14:08:27


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Незакрытые preparedStatement
СообщениеДобавлено: 09 июн 2014, 11:02 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
Цитата:
Вариант с указанием в скриптах запуска локали и языка можно использовать в работе?
ну вообще можно, почему бы и нет.

только потом не забудьте про это, когда будете что-нибудь перенастраивать, обновлять, заменять лаунчеры, ставить другие приложения итд

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Незакрытые preparedStatement
СообщениеДобавлено: 09 июн 2014, 12:29 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
abu писал(а):
dimOn - понятно, спасибо. Буду разбираться дальше, мб, что-то и напутал. Вариант с указанием в скриптах запуска локали и языка можно использовать в работе?

stark - извините, проблема не ушла. Версия dispatch - ru.bitel.bgbilling.plugins.dispatch: вер. 6.1.49 / 05.06.2014 14:08:27


Покажите ошибку снова, может быть там что-то поменялось.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Незакрытые preparedStatement
СообщениеДобавлено: 09 июн 2014, 12:46 
Не в сети
Клиент

Зарегистрирован: 10 окт 2012, 17:00
Сообщения: 339
Карма: 0
Код:
06-09/16:45:03  INFO [Thread-3] TaskExecuter - Starting periodic task #10: ru.bitel.bgbilling.plugins.dispatch.server.task.DispatchWorker
06-09/16:45:04 ERROR [pool-2-thread-6] DefaultServerSetup - Many statements was open at connection close:
com.mysql.jdbc.ServerPreparedStatement[7] - SELECT * FROM dispatch_message WHERE dispatch_id=1 ORDER BY id
com.mysql.jdbc.ServerPreparedStatement[339] - SELECT * FROM contract WHERE id=243
com.mysql.jdbc.ServerPreparedStatement[516] - SELECT * FROM contract WHERE id=243
com.mysql.jdbc.ServerPreparedStatement[517] - SELECT * FROM contract WHERE id=161
com.mysql.jdbc.ServerPreparedStatement[518] - SELECT * FROM contract WHERE id=161
com.mysql.jdbc.ServerPreparedStatement[519] - SELECT * FROM contract WHERE id=179
com.mysql.jdbc.ServerPreparedStatement[520] - SELECT * FROM contract WHERE id=179
com.mysql.jdbc.ServerPreparedStatement[521] - SELECT * FROM contract WHERE id=62
com.mysql.jdbc.ServerPreparedStatement[522] - SELECT * FROM contract WHERE id=62
com.mysql.jdbc.ServerPreparedStatement[523] - SELECT * FROM contract WHERE id=65
com.mysql.jdbc.ServerPreparedStatement[524] - SELECT * FROM contract WHERE id=65
com.mysql.jdbc.ServerPreparedStatement[525] - SELECT * FROM contract WHERE id=66
com.mysql.jdbc.ServerPreparedStatement[526] - SELECT * FROM contract WHERE id=66
com.mysql.jdbc.ServerPreparedStatement[527] - SELECT * FROM contract WHERE id=70
com.mysql.jdbc.ServerPreparedStatement[528] - SELECT * FROM contract WHERE id=70
com.mysql.jdbc.ServerPreparedStatement[529] - SELECT * FROM contract WHERE id=71
com.mysql.jdbc.ServerPreparedStatement[530] - SELECT * FROM contract WHERE id=71

...

om.mysql.jdbc.ServerPreparedStatement[601] - SELECT * FROM contract WHERE id=138
com.mysql.jdbc.ServerPreparedStatement[602] - SELECT * FROM contract WHERE id=138
com.mysql.jdbc.ServerPreparedStatement[603] - SELECT * FROM contract WHERE id=156
com.mysql.jdbc.ServerPreparedStatement[604] - SELECT * FROM contract WHERE id=156
com.mysql.jdbc.ServerPreparedStatement[605] - SELECT * FROM contract WHERE id=158
com.mysql.jdbc.ServerPreparedStatement[606] - SELECT * FROM contract WHERE id=288
com.mysql.jdbc.ServerPreparedStatement[607] - SELECT * FROM contract WHERE id=288
com.mysql.jdbc.ServerPreparedStatement[608] - SELECT * FROM contract WHERE id=74
com.mysql.jdbc.ServerPreparedStatement[609] - SELECT * FROM contract WHERE id=74
com.mysql.jdbc.ServerPreparedStatement[610] - SELECT * FROM contract WHERE id=174
com.mysql.jdbc.ServerPreparedStatement[611] - SELECT * FROM contract WHERE id=172
com.mysql.jdbc.ServerPreparedStatement[612] - SELECT * FROM contract WHERE id=172
com.mysql.jdbc.ServerPreparedStatement[613] - SELECT * FROM contract WHERE id=171

java.lang.RuntimeException
        at ru.bitel.bgbilling.server.util.DefaultServerSetup$2$1.close(DefaultServerSetup.java:417)
        at ru.bitel.bgbilling.server.util.PoolGuardConnectionWrapper.close(PoolGuardConnectionWrapper.java:48)
        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.plugins.dispatch.server.task.DispatchWorker.executeTask(DispatchWorker.java:140)
        at ru.bitel.bgbilling.kernel.task.server.TaskBase.run(TaskBase.java:76)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
06-09/16:45:04  INFO [pool-2-thread-6] DispatchWorker - Task finished time=1078 ms.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Незакрытые preparedStatement
СообщениеДобавлено: 09 июн 2014, 13:03 
Не в сети
Разработчик

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Незакрытые preparedStatement
СообщениеДобавлено: 09 июн 2014, 13:18 
Не в сети
Разработчик

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Незакрытые preparedStatement
СообщениеДобавлено: 09 июн 2014, 13:34 
Не в сети
Клиент

Зарегистрирован: 10 окт 2012, 17:00
Сообщения: 339
Карма: 0
Да, точно, перезагружал. Стенд на виртуальной машине, с того времени неоднократно ее выключал, включал, обновлял.

Рассылка стандартная, никакого кода, кроме приведенного в теме, у меня нет.

Чтобы вам пока не тратить время на это, я пересоберу стенд (мб на работу влияет то, что база на нем старая или еще что), и если проблема повторится - отпишу здесь или в ЛС.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Незакрытые preparedStatement
СообщениеДобавлено: 09 июн 2014, 13:46 
Не в сети
Разработчик

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

Рассылка стандартная, никакого кода, кроме приведенного в теме, у меня нет.

Чтобы вам пока не тратить время на это, я пересоберу стенд (мб на работу влияет то, что база на нем старая или еще что), и если проблема повторится - отпишу здесь или в ЛС.


стандартная по email?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Незакрытые preparedStatement
СообщениеДобавлено: 09 июн 2014, 18:02 
Не в сети
Клиент

Зарегистрирован: 10 окт 2012, 17:00
Сообщения: 339
Карма: 0
А вот это - нет.

Метод отправки - используется динамический код, который я тут привел - сохранение в файл при наступлении условия рассылки. Пользовательский шаблон. Условие отправки - отправка по балансу (больше никаких условий нет). В сообщении используются переменные: $${balance} и $${title}.


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

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


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

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


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

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