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

Откуда:
Сообщений: 48
Подскажите, может кто уже наступал на грабли связанные с закрытием курсоров, при использовании JDBC драйвера. При выполнении следующего кода:
 ............
       ResourceLocator resourceLocator = ResourceLocator.getInstance(this.getServletContext());
       connection = resourceLocator.getConnection();
         .....................
         cs = connection.prepareCall("{ call monitor.Test(?,?,?)} ");				
         cs.setString(1, request.getHeader("dtS"));
	 cs.setString(2, request.getHeader("dtPo"));
	 cs.registerOutParameter(3, Types.CLOB);
	 cs.execute();
	 long light = cs.getClob(3).length();
	 String str = cs.getClob(3).getSubString(1, (int) light);
	 response.getWriter().println(str);				
	
	.................
		} catch (AccessEcseption e) {
		} catch (Exception e) {
			e.printStackTrace();
		}
        finally {
            try {
            	if (ps != null){
            		ps.close();
            	}
                if (rs != null){
                	rs.close();
                }   
                if (cs != null){
                	cs.close();
                	cs = null;                	
                }
                connection.close();
            	connection = null;
            	
            }
            catch (Exception ex1) { 
            
            }
        } 


в бд открывается курсор, который не закрывается. Через некоторое время получаю ошибку ora-01000


Хранимая процедура простейшая:
create or replace
PROCEDURE Test(dtS in varchar2, dtPo in varchar2, json out clob) AS 

BEGIN         
   json := '{"records":[]}';
END GET_FOREX_KASSA;


Использую Oracle Database 11g Release 2
19 апр 13, 15:49    [14204808]     Ответить | Цитировать Сообщить модератору
 Re: Не закрывается курсор  [new]
Изя Кацман
Member

Откуда: Великий Эксперимент
Сообщений: 2019
newbsite,

Расскажи, как ты смотрел, что открывается, а потом не закрывается

Сделай трассировку сессии Oracle DB, посмотри, что она делает
19 апр 13, 16:38    [14205282]     Ответить | Цитировать Сообщить модератору
 Re: Не закрывается курсор  [new]
newbsite
Member

Откуда:
Сообщений: 48
Значение в колонке VALUE увеличивается как минимум на 1

К сообщению приложен файл. Размер - 117Kb
19 апр 13, 16:50    [14205393]     Ответить | Цитировать Сообщить модератору
 Re: Не закрывается курсор  [new]
Серафимный Шестикрыл
Member [заблокирован]

Откуда: С луны свалился
Сообщений: 2922
newbsite,

объясни, как ты связал этот код с открытими курсорами.
19 апр 13, 17:12    [14205609]     Ответить | Цитировать Сообщить модератору
 Re: Не закрывается курсор  [new]
newbsite
Member

Откуда:
Сообщений: 48
Серафимный Шестикрыл
Ну прямо так и связал :)
В колонке VALUE показывается число открытых курсоров
19 апр 13, 17:28    [14205714]     Ответить | Цитировать Сообщить модератору
 Re: Не закрывается курсор  [new]
Серафимный Шестикрыл
Member [заблокирован]

Откуда: С луны свалился
Сообщений: 2922
newbsite
Серафимный Шестикрыл
Ну прямо так и связал :)
В колонке VALUE показывается число открытых курсоров


Тогда возможно ты даже сможешь дать рациональное объяснение наличию java-простыни
в твоем первом посте ?
19 апр 13, 17:31    [14205747]     Ответить | Цитировать Сообщить модератору
 Re: Не закрывается курсор  [new]
newbsite
Member

Откуда:
Сообщений: 48
Уххх... Ребята большое спасибо за помощь, после включения трассировки, разобрался. В сервлете был вызов еще одной хранимой процедуры, после вызова которой не закрывалось соединение
19 апр 13, 17:48    [14205887]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить