powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Сессия из Oracle NetCore сама каждую минуту создает один и тот же новый курсор
3 сообщений из 3, страница 1 из 1
Сессия из Oracle NetCore сама каждую минуту создает один и тот же новый курсор
    #40075034
KorvinT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Перехожу с NETFramework на NetCore.
С Oracle.DataAccess.dll на Oracle.ManagedDataAccess.dll
И все вроде успешно, но через 3 часа работы программа вылетает с ошибкой "Слишком много открытых курсоров". И их действительно до хрена - причем одинаковых с одним и тем же sql_id. Я их не открывал!
Конкретно - более 200 одинаковых курсоров с sql-кодом:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
DECLARE  
  err_code VARCHAR2(2000);  
  err_msg VARCHAR2(2000);  
BEGIN  
  SELECT VALUE into :p_nls_comp from nls_session_parameters where PARAMETER='NLS_COMP'; 
  SELECT VALUE into :p_nls_length_semantics from nls_session_parameters where PARAMETER='NLS_LENGTH_SEMANTICS'; 
  SELECT VALUE into :p_nls_nchar_conv_excep from nls_session_parameters where PARAMETER='NLS_NCHAR_CONV_EXCP'; 
  SELECT '0' into :p_err_code from dual;  
  SELECT '0' into :p_err_msg from dual;  
END;



Нигде в моей программе такого кода нет! Не мое!

Все эти курсоры с одинаковым типом "SESSION CURSOR CACHED" кроме одного, у которого тип "DICTIONARY LOOKUP CURSOR CACHED". Хотя и sql_id и Hash Value у них всех идентичны.

В какую сторону копать, не подскажите?
...
Рейтинг: 0 / 0
Сессия из Oracle NetCore сама каждую минуту создает один и тот же новый курсор
    #40075048
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
KorvinT,

Код: plsql
1.
alter session set events 'trace[SQL_Execution.*] [SQL: &sqlid]{occurence:end_after 10} controlc_signal()';

замени &sqlid на sql_id этого проблемного блока и сразу после коннекта выполни в своей сессии. Где свалится - оттуда и лезет :)
...
Рейтинг: 0 / 0
Сессия из Oracle NetCore сама каждую минуту создает один и тот же новый курсор
    #40075058
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KorvinT
Перехожу с NETFramework на NetCore.
С Oracle.DataAccess.dll на Oracle.ManagedDataAccess.dll
И все вроде успешно, но через 3 часа работы программа вылетает с ошибкой "Слишком много открытых курсоров". И их действительно до хрена - причем одинаковых с одним и тем же sql_id. Я их не открывал!
Конкретно - более 200 одинаковых курсоров с sql-кодом:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
DECLARE  
  err_code VARCHAR2(2000);  
  err_msg VARCHAR2(2000);  
BEGIN  
  SELECT VALUE into :p_nls_comp from nls_session_parameters where PARAMETER='NLS_COMP'; 
  SELECT VALUE into :p_nls_length_semantics from nls_session_parameters where PARAMETER='NLS_LENGTH_SEMANTICS'; 
  SELECT VALUE into :p_nls_nchar_conv_excep from nls_session_parameters where PARAMETER='NLS_NCHAR_CONV_EXCP'; 
  SELECT '0' into :p_err_code from dual;  
  SELECT '0' into :p_err_msg from dual;  
END;



Нигде в моей программе такого кода нет! Не мое!

Все эти курсоры с одинаковым типом "SESSION CURSOR CACHED" кроме одного, у которого тип "DICTIONARY LOOKUP CURSOR CACHED". Хотя и sql_id и Hash Value у них всех идентичны.

В какую сторону копать, не подскажите?



Похоже на инициализацию класса
Устанавливается NLS + инициализируются bind переменные для обработки ошибок
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Сессия из Oracle NetCore сама каждую минуту создает один и тот же новый курсор
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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