🛠️ После deploy package VALID, но старые sessions получили ORA-04068
Причина может быть в stateful PL/SQL package.
У каждой DB session — своя package instantiation и свой runtime state.
Сценарий:
session вызвала package
→ появился package state
→ package body recompiled / instance invalidated
→ session снова вызывает package
→ old state discarded
→ ORA-04068
После этого package может re-instantiate, но прежнее state уже потеряно.
Поэтому:
STATUS = VALID
не означает, что long-lived sessions сохранили прежнее состояние.
И механический:
retry
не универсально безопасен.
Сначала выясните:
— что хранилось в package state;
— какие sessions были открыты до deploy;
— что делает initialization;
— как connection pool обрабатывает ошибку;
— имеет ли потерянное state бизнес-смысл;
— можно ли безопасно повторить операцию.
Характерная картина:
новые connections работают
старые pooled sessions ловят ORA-04068
не противоречит тому, что сам package уже VALID.
Практический вывод:
object validity
≠
session state continuity
Сохраните этот сценарий для change review систем, где PL/SQL packages хранят session state.
🔹🔹🔹🔹
Причина может быть в stateful PL/SQL package.
У каждой DB session — своя package instantiation и свой runtime state.
Сценарий:
session вызвала package
→ появился package state
→ package body recompiled / instance invalidated
→ session снова вызывает package
→ old state discarded
→ ORA-04068
После этого package может re-instantiate, но прежнее state уже потеряно.
Поэтому:
STATUS = VALID
не означает, что long-lived sessions сохранили прежнее состояние.
И механический:
retry
не универсально безопасен.
Сначала выясните:
— что хранилось в package state;
— какие sessions были открыты до deploy;
— что делает initialization;
— как connection pool обрабатывает ошибку;
— имеет ли потерянное state бизнес-смысл;
— можно ли безопасно повторить операцию.
Характерная картина:
новые connections работают
старые pooled sessions ловят ORA-04068
не противоречит тому, что сам package уже VALID.
Практический вывод:
object validity
≠
session state continuity
Сохраните этот сценарий для change review систем, где PL/SQL packages хранят session state.
🔹🔹🔹🔹