lib. cache lock on a package freezing everything: how come ?

From: Sébastien de Mapias <sglrigaud_at_gmail.com>
Date: Wed, 13 Feb 2008 02:46:34 -0800 (PST)
Message-ID: <7f95c5cc-2365-4af1-a4cf-385aedfe8e2f@b2g2000hsg.googlegroups.com>


Hi,
On a 10g DB we experienced a problem with a session obviously holding a lock on a package, that started to block any other sessions trying to perform calls to this pkg. During this phase where everything
was blocked the status in DBA_OBJECTS for this pkg body showed 'INVALID'. As I didn't have time enough to find the guilty (the blocking
session) I restarted the instance, which freeed everything.

Once rebooted, the status then showed 'VALID', and last_ddl_time showed the pkg hadn't been recompiled for months. When a session happens to lock a PL/SQL module that way, what is it trying to do ? There's no more compilation at runtime OK ?, so how come a pkg or a procedure can be held kind of exclusively without any other session being able to access it ? How could this module status read 'INVALID' (to then come back to a valid state by itself) ?

Thanks for any enlightenments...
Regards,
SR Received on Wed Feb 13 2008 - 04:46:34 CST

Original text of this message