| From: | Steve Adams |
| Date: | 04-May-2001 08:05 |
| Subject: | Why does GRANT need an X library cache pin? |
|
|
The grant needs to invalidate the cached meta data for DBMS_PIPE in the library cache. The X pin is required for the invalidation.
|
![]() |
I am trying to grant execute on the DBMS_PIPE package to user A. My session was hanging. So I went to V$SESSION_WAIT to find why my session was hanging. My session was waiting for library cache pin. I looked at X$KGLPN and X$KGLOB and saw that my statement was requesting the library cache pin in exclusive mode(3) and a few sessions were executing PL/SQL blocks with calls to DBMS_PIPE.UNPACK_MESSAGE (so holding the same library cache pin in shared mode). My questions is why would GRANT request the library cache pin in exclusive mode? I am not even granting to the same user who is holding the pin. Any ideas?
|