maximum open cursors exceeded

Elena
22 de Octubre del 2004
Hola,
mi problema es que desde una aplicacion se está intentando insertar un registro. En la tabla tengo un trigger y un secuencia que me genera el id a insertar. A nivel de base de datos se hace el insert correctamente pero desde la aplicación da el siguiente error:AunaException: CLASE: PagadorOJB METODO: insertarPagadorOJB() EXCEPCION: SQL failure while insert object data for class es.gpm.auna.clasesrelacionadas.vo.PagadorVO, PK of the given object is [ pagadorID=null], object was es.gpm.auna.clasesrelacionadas.vo.PagadorVO@da5598, exception message is [ORA-01000: maximum open cursors exceeded ORA-06512: at "COBROS_AGC.TRG_PAGADOR", line 3 ORA-04088: error during execution of trigger 'COBROS_AGC.TRG_PAGADOR' ]

Si pudieran ayudarme, muchas gracias. Elena

Jorge-DBA
22 de Octubre del 2004
Elena.

Es simple, la base de datos esta limitando los cursores concurrentes a la base de datos.

realiza en siguiente query desde SQLPLUS:

SQL> col name for a15
SQL> col value for a15
SQL> select name, value
2 from v$parameter
3 where name = 'open_cursors';

Por default cuando la base de datos es creada pone por defecto 300 cursores, por el momento incrementa este valor.

En la aplicacion mas grande que he trabajado no excede a mas de 1000 cursores, entra al init modificalo da de baja la base de datos y levantala con este valor como ejemplo, y monitoreas la base de datos.

para tener la segurirdad de que se hja incrementado este valor puedes hacer nuevamente el query.

SQL> select name, value
2 from v$parameter
3 where name = 'open_cursors';

Te debe de dar como resultado el valor que incrementaste.


vuelve a provocar el error con la aplicacion para verificar que este funcionado, y ve monitoreando la base de datos.


Saludos

Jorge