Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Курсор ли?  [new]
Курсорщик
Guest
Хай!

Вот наступает 9-00 и на сервере в логах web-servera вижу java.sql.SQLException Exhausted Resultset exception. В оракле не вижу ничего.

Есть подозрение что в оракле превышен лимит открытых курсоров. Вопрос как это определить и проверитЬ?
7 дек 10, 23:08    [9902156]     Ответить | Цитировать Сообщить модератору
 Re: Курсор ли?  [new]
Курсорщик
Guest
С другой стороны эта ошибка встречается редко и в пик когда юзеры начинают активно работать.
7 дек 10, 23:10    [9902165]     Ответить | Цитировать Сообщить модератору
 Re: Курсор ли?  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 18399
тут смотрели?
8 дек 10, 09:39    [9902922]     Ответить | Цитировать Сообщить модератору
 Re: Курсор ли?  [new]
Курсорщик
Guest
Да, тут смотрели. Фишка в том, что у меня next есть и всё работает. Проблема в том что иногда возникает эта ошибка (как правило в пик активности ю-зверя).

Поэтому предполагаю, что ошибка здеся в оракле. И не знаю как её отследить, определить в чём проблема.
9 дек 10, 05:58    [9908375]     Ответить | Цитировать Сообщить модератору
 Re: Курсор ли?  [new]
брадобрей
Member

Откуда:
Сообщений: 4696
параметр open_cursors отвечает за кол-во курсоров в сессии.
Могла ли твоя сессия превысить лимит?
думаю ты бы об этом точно знал, если бы это случилось.

вывод: делай свои логи такими, чтобы самому понятно было что происходит
9 дек 10, 06:02    [9908377]     Ответить | Цитировать Сообщить модератору
 Re: Курсор ли?  [new]
Курсорщик
Guest
Да, действительно логи должны быть информативными

Итак,поставил трасировку со стороны джавы:

session start
.....
resultset_length=164 columns=7
...
work with row=35
work with row=36
work with row=37
work with row=38
java.sql.SQLException Exhausted Resultset exception


Проанализировал десяток таких логов пришёл к выводу:

1. Ошибка начинает появляться, когда много таких запросов к базе. И чем больше, тем больше таких ошибок.
2. Работа с открытым курсором может завалиться на любой записи, и на 38 из 164, и на 2 из 1000. Номер последнего удачного row может быть любым. Таблица тоже может быть любой.

Подозреваю, что дело не в java, а в оракле. Подскажите пожалуйста как проверить со стороны оракла? Даже не знаю куда копать:(
9 дек 10, 16:45    [9912171]     Ответить | Цитировать Сообщить модератору
 Re: Курсор ли?  [new]
Timur Akhmadeev
Member

Откуда:
Сообщений: 510
Курсорщик
Подозреваю, что дело не в java, а в оракле.

Ерунда. 99.99% дело в клиентском коде.
9 дек 10, 21:47    [9914007]     Ответить | Цитировать Сообщить модератору
 Re: Курсор ли?  [new]
Бамбукъ
Member

Откуда:
Сообщений: 2152
Всё дело в пуле коннектов. Другая сессия получает коннект из пула и закрывает курсор на самом интересном месте.
9 дек 10, 22:25    [9914166]     Ответить | Цитировать Сообщить модератору
 Re: Курсор ли?  [new]
Бамбукъ
Member

Откуда:
Сообщений: 2152
Либо, как совсем маловероятный вариант, ваша сессия просто грохнулась, либо её кильнул злобный админ. Проверить можно в alert.log. Но, скорее всего, ваш коннект запорчен именно вашим приложением. С курсорами это не связано вообще.
9 дек 10, 22:41    [9914238]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить