本文发表在 rolia.net 枫下论坛This may happen in several ways:
1) If the communication only through the Java JDBC.
possibly, check the java code for those resultset.close(), statement.close(), and conn.close(). whenever exception catch need to call all the close() in correct order
2) In the DB side, you may need to check the instance init parameters for the maxium open cursor:
use sqlplus: logon as the specific DBA user, type "show parameters cursor"
NAME TYPE VALUE
------------------------------------ ----------- ------------
cursor_sharing string EXACT
cursor_space_for_time boolean FALSE
open_cursors integer 300
session_cached_cursors integer 0
the default open_cursor is 300, this depends on how many cursors one user can open concurrently
another inportant thing is the cursor_sharing, if it's "EXACT", it's not good, thich means "select a from tab1 where b=c" and "select a from tab1 where b=d" will open two mem location in the shared pool area.they do not share the parsed sql code. this may waste open cursor number too. ask your dba change it to "FORCE" to avoid develper non-binding variable sql and even case difference
hope that helps!更多精彩文章及讨论,请光临枫下论坛 rolia.net
1) If the communication only through the Java JDBC.
possibly, check the java code for those resultset.close(), statement.close(), and conn.close(). whenever exception catch need to call all the close() in correct order
2) In the DB side, you may need to check the instance init parameters for the maxium open cursor:
use sqlplus: logon as the specific DBA user, type "show parameters cursor"
NAME TYPE VALUE
------------------------------------ ----------- ------------
cursor_sharing string EXACT
cursor_space_for_time boolean FALSE
open_cursors integer 300
session_cached_cursors integer 0
the default open_cursor is 300, this depends on how many cursors one user can open concurrently
another inportant thing is the cursor_sharing, if it's "EXACT", it's not good, thich means "select a from tab1 where b=c" and "select a from tab1 where b=d" will open two mem location in the shared pool area.they do not share the parsed sql code. this may waste open cursor number too. ask your dba change it to "FORCE" to avoid develper non-binding variable sql and even case difference
hope that helps!更多精彩文章及讨论,请光临枫下论坛 rolia.net