número máximo de cursores abiertos excedido
A ver si alguién me pudiera decir como se puede solucionar este error que alguna que otra vez nos aparece en la página. Imagino que será que hay demasiada gente haciendo peticiones a nuestro servidor, pero hay alguna manera de poder solucionar el problema?
el error es el siguiente:
"número máximo de cursores abiertos excedido"
Reiniciando el servidor se soluciona el problema, pero me gustarÃa tener otra solución menos drástica y solucionar el problema para que no volviera a salir más.
Gracias.
el error es el siguiente:
"número máximo de cursores abiertos excedido"
Reiniciando el servidor se soluciona el problema, pero me gustarÃa tener otra solución menos drástica y solucionar el problema para que no volviera a salir más.
Gracias.
Hoy se me ha presentado este problema y se soluciona cerrando es Statement y sonretodo el ResultSet una vez hayas recuperado los datos de la base de datos
statement.close();
resultset.close();
statement.close();
resultset.close();
A mi me susedia lo mismo, por lo general esto ocurre cuando uno hace select dentro de un ciclo, para solucionar esto se debe cerrar la conexion y el resultset dentro del ciclo, es decir por cada entrada al ciclo se abre la conexion y se cierra y lo mismo para el result set
Hi,
Bien, evidentemente puedes aumentar un parametro en el init<SID> ; open_cursors, segun creo que tienes o haz creado el database a un nivel de standar's el valore sera igual a "300" cambia a "600".
Pero creo que il problema no es cambiar parametros,
debes verificar algunas query o select que estan ejectuando a nivel de aplicaciones mucho (SORT-PARSE).
Sino puedes, usar la cache del cursor, donde no te repetira la query dos vez, ya que la almacena en la cache, valor de modificar:
session_cached_cursors= open_cursors/2.
session_cached_cursors=600/2=300
session_cached_cursors=300
Todos estos parametros requieren que el database este cerrado (SHUTDOWN IMMEDIATE), modifica y despues STARTUP.
Verifica a nivel de sqlplus si los valores han sido modificados:
sqlplus /nolog
connect /as sysdba
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
open_cursors integer 300
open_links integer 4
open_links_per_instance integer 4
read_only_open_delayed boolean FALSE
session_max_open_files integer 10
SQL> show parameter cur
NAME TYPE VALUE
------------------------------------ ----------- -----------------open_cursors integer 600
session_cached_cursors integer 300
bye.
suerte.
Nota: Si tienes una version 9i, recuerda que los parametro pueden ser cambiandos en runtime,
con la instance STARTUP. Ya que tiene el soporte de
Server Parameter file (SPfile.ora).
Bien, evidentemente puedes aumentar un parametro en el init<SID> ; open_cursors, segun creo que tienes o haz creado el database a un nivel de standar's el valore sera igual a "300" cambia a "600".
Pero creo que il problema no es cambiar parametros,
debes verificar algunas query o select que estan ejectuando a nivel de aplicaciones mucho (SORT-PARSE).
Sino puedes, usar la cache del cursor, donde no te repetira la query dos vez, ya que la almacena en la cache, valor de modificar:
session_cached_cursors= open_cursors/2.
session_cached_cursors=600/2=300
session_cached_cursors=300
Todos estos parametros requieren que el database este cerrado (SHUTDOWN IMMEDIATE), modifica y despues STARTUP.
Verifica a nivel de sqlplus si los valores han sido modificados:
sqlplus /nolog
connect /as sysdba
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
open_cursors integer 300
open_links integer 4
open_links_per_instance integer 4
read_only_open_delayed boolean FALSE
session_max_open_files integer 10
SQL> show parameter cur
NAME TYPE VALUE
------------------------------------ ----------- -----------------open_cursors integer 600
session_cached_cursors integer 300
bye.
suerte.
Nota: Si tienes una version 9i, recuerda que los parametro pueden ser cambiandos en runtime,
con la instance STARTUP. Ya que tiene el soporte de
Server Parameter file (SPfile.ora).
Hola ams ...
Para incrementar el número de cursores que puedes tener habierto debes modificar el parámetro open_cursors en el fichero de inicialización de tu base de datos.
Una vez hecho esto, tienes que reiniciar la base de datos.
De todas formas, si el problema se da con frecuencia, debes revisar la codificación de la aplicación que hace uso de la base de datos, pues no estás cerrando los cursores de PL.
Un saludo.
Para incrementar el número de cursores que puedes tener habierto debes modificar el parámetro open_cursors en el fichero de inicialización de tu base de datos.
Una vez hecho esto, tienes que reiniciar la base de datos.
De todas formas, si el problema se da con frecuencia, debes revisar la codificación de la aplicación que hace uso de la base de datos, pues no estás cerrando los cursores de PL.
Un saludo.