DBAtlas · Atlas de operações de banco de dados

ORA-04068: existing state of packages has been discarded

Oracle

O que significa?

Enquanto uma sessão em execução usava o estado de um package, o package foi recompilado, e esse estado foi invalidado. A instância do package mantida pela sessão não é mais válida.

Por que acontece?

O body ou a specification de um package foi recompilado com ALTER/CREATE OR REPLACE enquanto sessões dependentes dele estavam ativas; geralmente ocorre durante o deploy da aplicação em um sistema em produção. Visto junto com ORA-04061/04065.

Como resolver

Executar a chamada novamente (retry) geralmente resolve; na segunda tentativa o package é carregado em sua nova forma. Capture o ORA-04068 na aplicação e tente novamente de forma automática. Aplique as alterações de packages em janelas de manutenção, quando a atividade dos usuários for baixa. Um design de package stateless reduz esse problema.

Abrir no DBAtlas →

Mais entradas deste banco