forum.bitel.ru
http://forum.bitel.ru/

Pool [data.data]: Connections limit is over!!!!!
http://forum.bitel.ru/viewtopic.php?f=14&t=10237
Страница 1 из 1

Автор:  Jolly_Joker [ 02 мар 2015, 15:56 ]
Заголовок сообщения:  Pool [data.data]: Connections limit is over!!!!!

В модуле "Bill" сформировал счета (1240 штук). Теперь пытаюсь распечатать. В server.error.log наблюдаю:
Код:
server 03-02/21:44:28 ERROR [http-bio-0.0.0.0-8080-exec-1] DefaultServerSetup - Pool [data.data]: Connections limit is over!!!!!
server 03-02/21:44:31 ERROR [http-bio-0.0.0.0-8080-exec-4] DefaultServerSetup - Pool [data.data]: Connections limit is over!!!!!
...

server_status.sh
Код:
BGBillingServer v 6.1.1044 / 27.02.2015 16:23:14
Started: 02.03.2015 21:10:52    Uptime: 0 d 00:33:46
Memory total: 1 197 998 080; max: 3 817 865 216; free: 770 921 016
Memory pools:
  Non-heap memory[Code Cache]: max: 50 331 648; used: 8 321 728; peek: 8 332 608
  Heap memory[PS Eden Space]: max: 1 310 195 712; used: 314 240 392; peek: 1 003 487 232
  Heap memory[PS Survivor Space]: max: 62 390 272; used: 24 140 000; peek: 55 061 888
  Heap memory[PS Old Gen]: max: 2 863 136 768; used: 88 696 672; peek: 88 696 672
  Non-heap memory[PS Perm Gen]: max: 536 870 912; used: 48 900 256; peek: 48 900 256
Thread count: 331
Connections pool to Master status Idle: 0; Active: 300; maxActive: 300; maxIdle: 20

В data.properties: db.trace=1
На каждую 1 распечатанную страницу уходит 1 "Active".
Что делать? До 5 числа нужно счета отдать, а мы распечатать не можем :(
З.Ы. До обновления работало всё

Автор:  stark [ 02 мар 2015, 16:21 ]
Заголовок сообщения:  Re: Pool [data.data]: Connections limit is over!!!!!

покажите вывод
Код:
/server.sh conpool

Автор:  Jolly_Joker [ 02 мар 2015, 16:31 ]
Заголовок сообщения:  Re: Pool [data.data]: Connections limit is over!!!!!

stark писал(а):
покажите вывод
Код:
/server.sh conpool

Код:
[root@bill b]# ./server.sh conpool
java.net.SocketTimeoutException: Receive timed out
        at java.net.PlainDatagramSocketImpl.receive0(Native Method)
        at java.net.AbstractPlainDatagramSocketImpl.receive(AbstractPlainDatagramSocketImpl.java:145)
        at java.net.DatagramSocket.receive(DatagramSocket.java:786)
        at bitel.billing.server.Server.executeCommand(Server.java:420)
        at bitel.billing.server.Server.main(Server.java:371)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at ru.bitel.common.bootstrap.Boot.boot(Boot.java:129)
        at ru.bitel.common.bootstrap.Boot.main(Boot.java:178)

Автор:  stark [ 02 мар 2015, 16:33 ]
Заголовок сообщения:  Re: Pool [data.data]: Connections limit is over!!!!!

Код:
server.sh status


что показывает

Автор:  Jolly_Joker [ 02 мар 2015, 16:58 ]
Заголовок сообщения:  Re: Pool [data.data]: Connections limit is over!!!!!

stark писал(а):
Код:
server.sh status


что показывает

[root@bill b]# ./server.sh status
Код:
BGBillingServer v 6.1.1044 / 27.02.2015 16:23:14
Started: 02.03.2015 22:08:05    Uptime: 0 d 00:49:28
Memory total: 1 185 939 456; max: 3 817 865 216; free: 440 221 976
Memory pools:
  Non-heap memory[Code Cache]: max: 50 331 648; used: 7 862 016; peek: 7 867 392
  Heap memory[PS Eden Space]: max: 1 315 438 592; used: 642 784 848; peek: 994 050 048
  Heap memory[PS Survivor Space]: max: 59 768 832; used: 23 976 080; peek: 53 977 488
  Heap memory[PS Old Gen]: max: 2 863 136 768; used: 78 956 552; peek: 78 956 552
  Non-heap memory[PS Perm Gen]: max: 536 870 912; used: 46 255 472; peek: 46 255 472
Thread count: 330
Connections pool to Master status Idle: 0; Active: 300; maxActive: 300; maxIdle: 20

Автор:  stark [ 02 мар 2015, 17:05 ]
Заголовок сообщения:  Re: Pool [data.data]: Connections limit is over!!!!!

Jolly_Joker писал(а):
stark писал(а):
Код:
server.sh status


что показывает

[root@bill b]# ./server.sh status
Код:
BGBillingServer v 6.1.1044 / 27.02.2015 16:23:14
Started: 02.03.2015 22:08:05    Uptime: 0 d 00:49:28
Memory total: 1 185 939 456; max: 3 817 865 216; free: 440 221 976
Memory pools:
  Non-heap memory[Code Cache]: max: 50 331 648; used: 7 862 016; peek: 7 867 392
  Heap memory[PS Eden Space]: max: 1 315 438 592; used: 642 784 848; peek: 994 050 048
  Heap memory[PS Survivor Space]: max: 59 768 832; used: 23 976 080; peek: 53 977 488
  Heap memory[PS Old Gen]: max: 2 863 136 768; used: 78 956 552; peek: 78 956 552
  Non-heap memory[PS Perm Gen]: max: 536 870 912; used: 46 255 472; peek: 46 255 472
Thread count: 330
Connections pool to Master status Idle: 0; Active: 300; maxActive: 300; maxIdle: 20


покажите conpool он не должен быть пустым в этот момент.

Автор:  Jolly_Joker [ 02 мар 2015, 17:14 ]
Заголовок сообщения:  Re: Pool [data.data]: Connections limit is over!!!!!

./server.sh conpool пишет тоже, что я написал выше... :(

Автор:  Jolly_Joker [ 02 мар 2015, 18:19 ]
Заголовок сообщения:  Re: Pool [data.data]: Connections limit is over!!!!!

Код:
[root@bill b]# ./server_status.sh
BGBillingServer v 6.1.1044 / 27.02.2015 16:23:14
Started: 02.03.2015 23:35:00    Uptime: 0 d 00:37:01
Memory total: 985 137 152; max: 3 817 865 216; free: 271 088 216
Memory pools:
  Non-heap memory[Code Cache]: max: 50 331 648; used: 4 706 688; peek: 4 717 248
  Heap memory[PS Eden Space]: max: 1 289 748 480; used: 592 975 648; peek: 781 189 120
  Heap memory[PS Survivor Space]: max: 71 827 456; used: 39 313 936; peek: 60 668 672
  Heap memory[PS Old Gen]: max: 2 863 136 768; used: 81 759 352; peek: 81 759 352
  Non-heap memory[PS Perm Gen]: max: 536 870 912; used: 44 825 064; peek: 44 825 064
Thread count: 33
Connections pool to Master status Idle: 2; Active: 0; maxActive: 300; maxIdle: 20
Для продолжения нажмите любую клавишу...

[root@bill b]# ./server_status.sh
BGBillingServer v 6.1.1044 / 27.02.2015 16:23:14
Started: 02.03.2015 23:35:00    Uptime: 0 d 00:38:09
Memory total: 985 137 152; max: 3 817 865 216; free: 210 712 104
Memory pools:
  Non-heap memory[Code Cache]: max: 50 331 648; used: 5 177 280; peek: 5 182 656
  Heap memory[PS Eden Space]: max: 1 289 748 480; used: 653 351 760; peek: 781 189 120
  Heap memory[PS Survivor Space]: max: 71 827 456; used: 39 313 936; peek: 60 668 672
  Heap memory[PS Old Gen]: max: 2 863 136 768; used: 81 759 352; peek: 81 759 352
  Non-heap memory[PS Perm Gen]: max: 536 870 912; used: 46 142 448; peek: 46 142 448
Thread count: 35
Connections pool to Master status Idle: 2; Active: 3; maxActive: 300; maxIdle: 20
Для продолжения нажмите любую клавишу...

Автор:  stark [ 03 мар 2015, 13:22 ]
Заголовок сообщения:  Re: Pool [data.data]: Connections limit is over!!!!!

Проблема в вашем динамическом коде, который вызывается из xslt. Там вы открываете Connection и не закрываете.

Автор:  Jolly_Joker [ 06 мар 2015, 03:41 ]
Заголовок сообщения:  Re: Pool [data.data]: Connections limit is over!!!!!

stark писал(а):
Проблема в вашем динамическом коде, который вызывается из xslt. Там вы открываете Connection и не закрываете.

Проблема решилась добавлением в динамический код следующего:
Код:
   protected void finalize()
      throws SQLException
   {
      con.close();
   }

Огромное спасибо, что ткнули носом! :)

Автор:  vkulakov [ 06 мар 2015, 12:18 ]
Заголовок сообщения:  Re: Pool [data.data]: Connections limit is over!!!!!

Думаю, не очень удачное решение для освобождения ресурсов. Метод finalize вызывается при удалении объектов сборщиком мусора и теоретически может не вызваться до момента исчерпания свободных подключений к базе.

Лучше всё-таки закрывать соединение сразу после использования в методах динамического кода.

Автор:  Amir [ 06 мар 2015, 16:26 ]
Заголовок сообщения:  Re: Pool [data.data]: Connections limit is over!!!!!

Цитата:
теоретически может не вызваться до момента исчерпания свободных подключений к базе.
Не совсем так. Точно вызовется когда/если будет заканчиваться выделенная память. Но исчерпание свободных подключений к базе к этому наверняка может не привести, поэтому можно все равно получить постоянный "Connections limit is over!!!!!".

Цитата:
Лучше всё-таки закрывать соединение сразу после использования в методах динамического кода.
Да. Добавлю, что по правильному, если сами получаете соединение из пула, то нужно примерно так:
Код:
Connection con = get();
try {
...
} finally {
  con.close();
}
Т.е. чтобы всегда происходило закрытие, даже если между открытием и закрытием произошла ошибка.

Автор:  vkulakov [ 06 мар 2015, 16:40 ]
Заголовок сообщения:  Re: Pool [data.data]: Connections limit is over!!!!!

Примерно так и хотел изначально написать, но стало лень. Спасибо за более подробный ответ. :)

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/