下午接到事业部同事的电话,说ASCP运行错误。因为订单急等要下,所以情况很紧急!进入系统查看出错的请求日志,一共有4种类型的请求报错,分别是:基于内存的快照,快照监控程序,快照删除工作流程,基于内存的快照工作流程。分别查看错误日志,发现错误的起源来自快照删除工作流程这个请求。日志已经列出了出错的原因:此程序无法在表MSC_SUPPLIES中进行锁定。措施:稍后重新提交此程序。
查看这张表是否已经被锁定了:
SQL> select * from dba_objects where OBJECT_NAME='MSC_SUPPLIES';
--这张表是分区表,object_id=87546
SQL> select * from v$locked_object where object_id=87546;
XIDUSN XIDSLOT XIDSQN OBJECT_ID SESSION_ID ORACLE_USERNAME OS_USER_NAME PROCESS LOCKED_MODE
---------- ---------- ---------- ---------- ---------- ------------------------------ ------------------------------ ------------ -----------
25 31 100738 87546 434 APPS applprod 426478 3
--果然是被锁住了,锁的类型是行独占锁。
select p.spid,a.serial#, c.object_name,b.session_id,b.oracle_username,b.os_user_name from v$process p,v$session a, v$locked_object b,all_objects c where p.addr=a.paddr and a.process=b.process and c.object_id=b.object_id And b. object_id=87546
--获得87546这个对象的一些进程,会话信息。
select * from v$session where SERIAL# in(10065,1574)
--获得sid,SERIAL#。从v$session里可以看到这个两个session已经是inactive了。kill后重新跑
阅读(2701) | 评论(0) | 转发(0) |