ORA-04021 错误的再现及解决方法.docVIP

  • 7
  • 0
  • 约 6页
  • 2016-11-27 发布于河南
  • 举报
ORA-04021 错误的再现及解决方法

ORA-04021 错误的再现及解决方法 =========================================================== 编译的存储过程的时候,程序死住,等待一会出现ora-04021错误解决办法: 1.可能被锁住 查看v$lockedselect b.sid,b.serial#,b.machine,b.terminal,b.program,b.process,b.status from v$lock a , v$session b where a.SID = b.SID 得到死锁session的SID,SERIAL#参看这个是否为你自己用户下的,然后kill掉session 2.可能被挂起 查看v$session_waitselect b.serial#,a.* from v$session_wait a,v$session bwhere a.sid = b.sid得到等待的session的sid和serial#3.查看dba_ddl_locksselect session_id sid, owner, name, type, mode_held held, mode_requested request from dba_ddl_locks where name = your_package_name --------------------------------------------------------------- 我们系统中,又产生了一次ORA-04021错误。 该错误的产生,一般是在你试图更新一个存储过程的时候。具体现象就是:你试图更新一个存储过程,编译时会一直等待,当超过一定时间后,提示这个错误。 Oracle对这个错误的解释如下 ORA-04021 timeout occurred while waiting to lock object stringstringstringstringstring Cause: While waiting to lock a library object, a timeout is occurred. Action: Retry the operation later. 这很有可能是因为其他会话在调用该后台包,此时该包在共享池中被锁住。查询v$session_wait时会发现你的会话处于“library cache pin”等待。下面我们先再现一下该错误: session1:创建一个长期执行的过程(死循环),并执行。此时该过程被pin到library cache中。 请输入用户名: yuechaotian/test 连接到: Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production With the Partitioning, OLAP and Oracle Data Mining options JServer Release 9.2.0.1.0 - Production SQL select distinct sid from v$mystat; SID ---------- 11 SQL CREATE OR REPLACE PROCEDURE prc_test_lock 2 IS 3 BEGIN 4 WHILE TRUE LOOP 5 NULL; 6 END LOOP; 7 END; 8 / 过程已创建。 SQL exec prc_test_lock; ... --处于死循环中 ... 请输入用户名: yuechaotian/test 连接到: Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production With the Partitioning, OLAP and Oracle Data Mining options JServer Release 9.2.0.1.0 - Production SQL select distinct sid from v$mystat; SID ---------- 12 SQL CREATE OR REPLACE PROCEDURE prc_test_lock 2 IS 3 v_temp VARCHAR2(10); 4 BEGIN 5 WHILE TRUE LOOP 6 NULL; 7 END LOOP; 8 END; 9 / ... -- 处于等待中,一段时间后,出现如下错误: CREATE OR REPLACE PROCEDURE prc_test_lock * ERROR 位于第 1 行: ORA-04021: 等待锁定对象 TEST.P

文档评论(0)

1亿VIP精品文档

相关文档