DBAtlas · Atlas de operaciones de bases de datos

ORA-04068: existing state of packages has been discarded (se descartó el estado existente de los paquetes)

Oracle

¿Qué significa?

Mientras una sesión en ejecución usaba el estado de un paquete, el paquete se recompiló, por lo que ese estado quedó invalidado. La instancia del paquete que mantiene la sesión ya no es válida.

¿Por qué ocurre?

Se recompiló el cuerpo o la especificación de un paquete con ALTER/CREATE OR REPLACE mientras había sesiones activas que dependían de él; suele ocurrir durante el despliegue de aplicaciones en un sistema en producción. Se ve junto con ORA-04061/04065.

Cómo solucionarlo

Volver a ejecutar la llamada (reintento) suele resolverlo; en el segundo intento el paquete se carga en su nueva forma. Capture ORA-04068 en la aplicación y reintente automáticamente. Aplique los cambios de paquetes en ventanas de mantenimiento con poca actividad de usuarios. Un diseño de paquetes sin estado reduce este problema.

Abrir en DBAtlas →

Más entradas de este motor