powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / VB .NET + Oracle. ORA-01000 maximum open cursors exceeded
8 сообщений из 8, страница 1 из 1
VB .NET + Oracle. ORA-01000 maximum open cursors exceeded
    #39119542
Warlock86
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеется программа, написанная на Visual Basic .NET . Суть её работы в том, что создаётся объект DataTable , наполняется данными, после чего происходит внесение этих данных в базу Oracle . Цикл For-Each проходит по всем строчкам DataTable и для каждой из них вызывается хранимая процедура, осуществляющая валидацию входных данных и внесение их в таблицу БД. Недавно заменил библиотеку System.Data.OracleClient на Oracle.DataAccess , теперь, если число строк в DataTable порядка 10 тысяч, начинают возникать exception 'ы: ORA-01000 maximum open cursors exceeded . Пробовал после каждого вызова хранимой процедуры делать COMMIT - не помогло:

Код: vbnet
1.
2.
3.
4.
Dim otran As OracleTransaction = ocon.BeginTransaction(IsolationLevel.ReadCommitted)
ocom.ExecuteNonQuery()
'ocom - объект типа OracleCommand, хранимая процедура, добавляющая даннные в БД.
 otran.Commit()



Подскажите, пожалуйста, в чём может быть проблема.
...
Рейтинг: 0 / 0
VB .NET + Oracle. ORA-01000 maximum open cursors exceeded
    #39120074
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы попробовал диспозить экземпляр OracleCommand после каждого вызова ExecuteNonQuery.
...
Рейтинг: 0 / 0
VB .NET + Oracle. ORA-01000 maximum open cursors exceeded
    #39120147
Barkan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Warlock86Недавно заменил библиотеку System.Data.OracleClient на Oracle.DataAccess

Сорри что не по существу, но зачем заменил библиотеку?
...
Рейтинг: 0 / 0
VB .NET + Oracle. ORA-01000 maximum open cursors exceeded
    #39134139
Warlock86
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Barkan , Visual Studio давно уже ругалась, что System.Data.OracleClient устарела, а при переходе на 64-битную Винду она не работает. Вот и пришлось сменить.

Что касается диспоза OracleCommand , увы, не помогло. Ошибка осталась. Есть ещё какие-нибудь мысли на этот счёт?
...
Рейтинг: 0 / 0
VB .NET + Oracle. ORA-01000 maximum open cursors exceeded
    #39134148
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может так?
Код: c#
1.
ocom.ExecuteReader().Dispose();
...
Рейтинг: 0 / 0
VB .NET + Oracle. ORA-01000 maximum open cursors exceeded
    #39134385
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Warlock86
Что касается диспоза OracleCommand , увы, не помогло. Ошибка осталась. Есть ещё какие-нибудь мысли на этот счёт?
Надо коннекции закрывать (возвращать в пул), а не команды диспозить!
Плюс, в крайнем случае можно пинуть ораклячего ДБА и он увеличит настройку, которая отвечает за макс открытых курсоров.
...
Рейтинг: 0 / 0
VB .NET + Oracle. ORA-01000 maximum open cursors exceeded
    #39136208
Warlock86
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Отключение соединения и подключение заново, вроде бы, помогло - больше ошибка не возникает. Благодарю за совет. А кто-нибудь может объяснить, чем вызвана такая ошибка, и почему она появляется именно при использовании библиотеки Oracle.DataAccess ?
...
Рейтинг: 0 / 0
VB .NET + Oracle. ORA-01000 maximum open cursors exceeded
    #39136399
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Warlock86Отключение соединения и подключение заново, вроде бы, помогло - больше ошибка не возникает. Благодарю за совет. А кто-нибудь может объяснить, чем вызвана такая ошибка, и почему она появляется именно при использовании библиотеки Oracle.DataAccess ?
При "Отключение соединения" - коннекция возвращается в пул и открытый курсор закрывается.
И это не ошибка, а у программиста руки кривые.
Тут скорее библиотека от МС вела не правильно.

P.S. Хотя Oracle.DataAccess после нескольких десятков часов интенсивной работы начинает сходить с ума.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / VB .NET + Oracle. ORA-01000 maximum open cursors exceeded
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]