Spring StoredProcedure mit Oracle-Array: ORA-01000: maximale offene Cursor überschritten

8

Beim Aufruf einer gespeicherten Oracle-Prozedur mit OracleTypes.ARRAY -Eingangsparameter mehrmals, wird der folgende Fehler angezeigt: -

%Vor%

Die JDBC-Vorlagenkonfiguration lautet: -

%Vor%

Die gespeicherte Prozedurklasse: -

%Vor%

Oracle SqlTypeValue: -

%Vor%

Anstelle von CommonsDbcpNativeJdbcExtractor versucht mit OracleJdbc4NativeJdbcExtractor auch. Aber immer noch ist der Fehler da.

Grundsätzlich enthält der Heap viele nicht geschlossene Statement -Objekte. Irgendeine Idee warum Frühling die Ressourcen nicht schließt?

Umgebung: - Java 1.8, Spring 4.1.6, Tomcat 7.

    
Manu 11.01.2016, 07:48
quelle

2 Antworten

1

Überprüfen Sie Ihren open_cursor Parameter. Dieser Parameter definiert den maximal zulässigen Cursor PER SESSION. Standard ist 50.

Überprüfen Sie, ob Sie ein Cursorleck haben. Normalerweise sollten Werte von 200 ~ 300 mehr als genug für normale Benutzer sein.

    
Jin 01.07.2017 14:34
quelle
0

Im obigen Fall war das Problem auf die falsche Eigentümerschaft des Oracle-Array-Typs zurückzuführen. Tatsächlich gehörte der benutzerdefinierte Array-Typ TBL_EMP_ID einem anderen Schema als dem Schema, in dem die gespeicherte Prozedur deklariert wurde.

Das Problem wurde dadurch gelöst, dass die Array-Typ-Deklaration in dasselbe Schema verschoben wurde, in dem die gespeicherte Prozedur GET_EMPLOYEE_LIST deklariert wurde.

    
Manu 29.01.2016 09:01
quelle