ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 存储过程里调用编译自己是什么情况?

存储过程里调用编译自己是什么情况?

原创 Linux操作系统 作者:wei-xh 时间:2011-03-08 13:01:59 0 删除 编辑

CREATE OR REPLACE procedure   test_kgllk  as
 begin
   execute immediate 'alter procedure test_kgllk compile';
 end;
/

SESSION 1:

apolloCRMG>exec test_kgllk;

hang在那,后台出现了pin等待。

SESSION 2:

apolloCRMG>Alter session set events 'immediate trace name library_cache level 10';

Session altered.

查看dump文件:

BUCKET#33667 mtx=0x82e73958(0, 13877, 0):
  LIBRARY HANDLE:0x9981fad0 bid=33667 hid=d9fc8383 lmd=X pmd=S sta=VALD
  name=APOLLO.TEST_KGLLK
  hash=d0fa07e525588ed0eeb7e2e7d9fc8383 idn=0
  tim=03-08-2011 12:58:03  kkkk-dddd-llll=0000-009d-60bf
  exc=0 ivc=1 ldc=4 slc=2 lct=10 pct=16
  cbb=9 rpr=6 kdp=0 kep=0 bus=8 hus=8 dbg=0
  dmtx=0x9981fb78(0, 6, 0) mtx=0x9981fbe0(1060, 269, 0)
  nsp=TABL(01) typ=PRCD(07) llm=0 flg=KGHP/TIM/[00004800]
  lwt=0x9981fb58[0x9981fb58,0x9981fb58]
  pwt=0x9981fb38[0x7af194a8,0x7af194a8]
  ref=0x9981fb68[0x7883a9e0,0x765602e0]
    HANDLE REFERENCES:
    reference   handle   flags
    --------- ---------  -------------------
     7883a9e0  682f2338  DEP[01]
 timestamp=03-08-2011 12:58:03 whr=0
     765602e0  7a661840  DEP/INV[05]
 timestamp=03-08-2011 12:48:21 whr=8
    LOCK OWNERS:
        lock     user  session count mode       flags
    -------- -------- -------- ----- ---- ------------------------
    7af19530 b222a920 b222a920     1 X    CNB/[01]
    886e24b8 b222a920 b222a920     1 N    PNC/[02]

    PIN OWNERS:
         pin     user  session     lock count mode mask
    -------- -------- -------- -------- ----- ---- ----
    77706f90 b222a920 b222a920 886e24b8     3 S    0011
    PIN WAITERS:
         pin     user  session     lock count mode mask
    -------- -------- -------- -------- ----- ---- ----
    7af19438 b222a920 b222a920        0     0 X    0000

    LIBRARY OBJECT: 0x769c1480
    flg=EXS/LOC[0005] pfl=NST[0001] ssta=VALD
    DEPENDENCIES: count=2 size=16
    dependency#    table reference   handle position flags
    ----------- -------- --------- -------- -------- -------------------
              0 76bb14e8  76bb1228 886e51a8        0 DEP[01]
              1 76bb14e8  76bb1268 778c6908        0 DEP[01]
    PARAMETERS are used
    DATA BLOCKS:
    data#     heap  pointer    status pins change whr
    ----- -------- -------- --------- ---- ------ ---
        0 99bb45d0 769c1560 769c1450 I/P/A/-/-    0 NONE   00
        2 769c17a8 a5873bf8 a5873bc8 I/-/A/-/-    0 NONE   00
        4 6fcad290 a5872bf8 a5872bc8 I/P/A/-/-    1 NONE   00
        7 9a1ec8e0 a226cb50 a226cb20 I/-/A/-/-    0 NONE   00

有点类似“死锁”的情况,这种等待比较绝望,最后会报错超时。

因为我们看到等待pin的会话和持有pin的会话是同一个。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22034023/viewspace-688632/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 表压缩技术
请登录后发表评论 登录
全部评论
Oracle ACE组成员,DBGeeK用户组发起人。曾在DTCC、ORACLE技术嘉年华、Gdevops等公开场合做过数据库技术专题分享,2017年应Oracle邀请在世界最大的数据库会议OOW上做技术分享。组织翻译了《拨云见日,解密Oracle ASM内核》一书。

注册时间:2009-07-04

  • 博文量
    422
  • 访问量
    2337683