![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| m@kxus |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 110 Регистрация: 20.2.2003 Где: Estonia Репутация: нет Всего: 2 |
Очерёдность действий:
1. Создаю java.sql.Connection 2. Внутри него делаю CallableStatement (prepareCall) для обращения к базе Oracle9i. 3. Делаю execute(); 4. Так как всё это дело стоит в try{}catch{}final{}, то как раз в final{} стоит ещё один try{}catch{}, который пробует закрыть CallableStatement, то есть close() Таким образом, я могу видеть, что у меня обычно при работе сервлета имеется 3-4 физических соединяния с базой и плюс ко всему огромная куча псевдо-соединений. По идее, метод CallableStatement.close(); должен их закрыть, но почему то этого не происходит. То есть, close() отрабатывает без ошибок (проверял), но соединения остаются. В итоге, после 10-15 минут работы, выскакивает Exception по поводу отсутсвия свободных соединений (ORA-00018: maximum number of sessions exceeded) и сервлет падает. Поставил в некоторых местах System.gc(); - немного помогло. Но, полагаться на GarbageCollector - последнее дело. Кто чем может помочь в данной ситуации? |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 51 Всего: 118 |
Была какая-то проблема с самим Ораклом - он не всегда корректно закрывал коннекты. Так что может тут твой программа не при чем.
А не закрывается, как я понял, только если происходит ошибка при выполнении оператора SQL ? Или просто так может не закрыться ? |
|||
|
||||
| m@kxus |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 110 Регистрация: 20.2.2003 Где: Estonia Репутация: нет Всего: 2 |
В том то и дело, что не закрывается в любом случае - будь то корректный SQL или неверный.
Кстати, "была проблема" - это значит, что она решена? Как? |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 51 Всего: 118 |
Я не вдавался в подробности - было что-то о новой версии Оракла и вот там якобы это решено. Но насколько новая версия - не могу сказать. Может даже 10-ка. |
|||
|
||||
| m@kxus |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 110 Регистрация: 20.2.2003 Где: Estonia Репутация: нет Всего: 2 |
Ну что же, буду пока что System.gc() пользовать. В ближайшее время на 10ку переходить у нас не собираются...
|
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |