RE: How to determine sessions with invalid package states

From: Bobak, Mark <>
Date: Thu, 7 May 2009 10:57:27 -0400
Message-ID: <>

Cool idea, Toon.....never thought of that....

From: [] On Behalf Of Toon Koppelaars Sent: Thursday, May 07, 2009 10:52 AM
Cc: oracle-l-freelists
Subject: Re: How to determine sessions with invalid package states

I work around this issue.

The way I work around this issue is that I introduce dedicated state-only packages. All packages with code are not allowed to have package-variables. The state-only packages have no further dependencies, they hold no code: i.e. their bodies will never get invalidated by newly replaced other objects.


Since they hold no code, these state-only packages hardly ever require replacing themselves. Only when new state-variables are introduced.

In doing so I reduce the number of occurences of this issue, dramatically.

On Thu, May 7, 2009 at 4:35 PM, Rumpi Gravenstein <<>> wrote: I received a couple of responses on this -- the responses were around looking at locks. That will not help. I'm attempting to find packages that have invalid session state. The scenario is like so

Session one calls package TEST that creates session state A

Session two recompiles package TEST. If session one had a lock, this would not be possible. At this point session one's package state is invalid.

Session one calls package TEST and receives something along the lines of: ORA-04068: existing state of packagesstringstringstring has been discarded

On Wed, May 6, 2009 at 1:27 PM, Rumpi Gravenstein <<>> wrote: All,

Is it possible to write a query to identify sessions that are holding invalidated package states? We are looking at issues around code migrations. The goal is to only recycle sessions that we know will have problems. Any ideas?


Rumpi Gravenstein


Rumpi Gravenstein


Toon Koppelaars
RuleGen BV

(co)Author: "Applied Mathematics for Database Professionals"<>

-- Received on Thu May 07 2009 - 09:57:27 CDT

Original text of this message