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/ |