|
VB .NET + Oracle. ORA-01000 maximum open cursors exceeded
|
|||
---|---|---|---|
#18+
Имеется программа, написанная на 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.
Подскажите, пожалуйста, в чём может быть проблема. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2015, 15:12 |
|
VB .NET + Oracle. ORA-01000 maximum open cursors exceeded
|
|||
---|---|---|---|
#18+
Я бы попробовал диспозить экземпляр OracleCommand после каждого вызова ExecuteNonQuery. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2015, 06:13 |
|
VB .NET + Oracle. ORA-01000 maximum open cursors exceeded
|
|||
---|---|---|---|
#18+
Warlock86Недавно заменил библиотеку System.Data.OracleClient на Oracle.DataAccess Сорри что не по существу, но зачем заменил библиотеку? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2015, 09:42 |
|
VB .NET + Oracle. ORA-01000 maximum open cursors exceeded
|
|||
---|---|---|---|
#18+
Barkan , Visual Studio давно уже ругалась, что System.Data.OracleClient устарела, а при переходе на 64-битную Винду она не работает. Вот и пришлось сменить. Что касается диспоза OracleCommand , увы, не помогло. Ошибка осталась. Есть ещё какие-нибудь мысли на этот счёт? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2015, 09:34 |
|
VB .NET + Oracle. ORA-01000 maximum open cursors exceeded
|
|||
---|---|---|---|
#18+
Может так? Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2015, 09:43 |
|
VB .NET + Oracle. ORA-01000 maximum open cursors exceeded
|
|||
---|---|---|---|
#18+
Warlock86 Что касается диспоза OracleCommand , увы, не помогло. Ошибка осталась. Есть ещё какие-нибудь мысли на этот счёт? Надо коннекции закрывать (возвращать в пул), а не команды диспозить! Плюс, в крайнем случае можно пинуть ораклячего ДБА и он увеличит настройку, которая отвечает за макс открытых курсоров. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2015, 12:43 |
|
VB .NET + Oracle. ORA-01000 maximum open cursors exceeded
|
|||
---|---|---|---|
#18+
Отключение соединения и подключение заново, вроде бы, помогло - больше ошибка не возникает. Благодарю за совет. А кто-нибудь может объяснить, чем вызвана такая ошибка, и почему она появляется именно при использовании библиотеки Oracle.DataAccess ? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2015, 16:10 |
|
VB .NET + Oracle. ORA-01000 maximum open cursors exceeded
|
|||
---|---|---|---|
#18+
Warlock86Отключение соединения и подключение заново, вроде бы, помогло - больше ошибка не возникает. Благодарю за совет. А кто-нибудь может объяснить, чем вызвана такая ошибка, и почему она появляется именно при использовании библиотеки Oracle.DataAccess ? При "Отключение соединения" - коннекция возвращается в пул и открытый курсор закрывается. И это не ошибка, а у программиста руки кривые. Тут скорее библиотека от МС вела не правильно. P.S. Хотя Oracle.DataAccess после нескольких десятков часов интенсивной работы начинает сходить с ума. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2015, 18:25 |
|
|
start [/forum/topic.php?fid=20&fpage=70&tid=1400941]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
33ms |
get topic data: |
13ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 304ms |
total: | 430ms |
0 / 0 |