ora-04021:等待锁定对象(包名称)时发生超时

vbagcl 2020-06-27 04:10:50
oracle有一个包,不能编译,要等好久,报错:ora-04021:等待锁定对象(包名称)时发生超时
根据网上提示的各种帖子,根本找不到那个session在用这个包。
愁死人了。
...全文
1124 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
vbagcl 2020-06-30
  • 打赏
  • 举报
回复
成为历史疑案了,服务器重启就好了。
vbagcl 2020-06-29
  • 打赏
  • 举报
回复
引用 7 楼 lhdz_bj 的回复:
[quote=引用 6 楼 vbagcl 的回复:]
[quote=引用 4 楼 lhdz_bj 的回复:]
[quote=引用 1 楼 vbagcl 的回复:]
Select b.SID,b.SERIAL# From dba_ddl_locks a, v$session b Where a.session_id = b.SID And upper(a.name) = 'PKG_L2L2_ASB0041S' ORDER BY SID
一般情况如果有包被锁住,用这个语句就能查到相关的session,而这个包,用这个语句,啥也找不到,好像没有被锁住


也有可能这个包引用的对象被锁定了,比如:包内参考的表被锁定,也可能导致这个包编译时获取不到相应的锁,否则,没有锁的话,包编译应该是很快的。[/quote]
应该不是,把这个重新命名,编译没有问题[/quote]

那这个过程在运行吗?[/quote]
没有运行
lhdz_bj 2020-06-28
  • 打赏
  • 举报
回复
引用 1 楼 vbagcl 的回复:
Select b.SID,b.SERIAL# From dba_ddl_locks a, v$session b Where a.session_id = b.SID And upper(a.name) = 'PKG_L2L2_ASB0041S' ORDER BY SID
一般情况如果有包被锁住,用这个语句就能查到相关的session,而这个包,用这个语句,啥也找不到,好像没有被锁住


也有可能这个包引用的对象被锁定了,比如:包内参考的表被锁定,也可能导致这个包编译时获取不到相应的锁,否则,没有锁的话,包编译应该是很快的。
sxq129601 2020-06-28
  • 打赏
  • 举报
回复
RAC查gv$session
js14982 2020-06-28
  • 打赏
  • 举报
回复
看看是不是rac,rac可能是另外一个节点的问题
lhdz_bj 2020-06-28
  • 打赏
  • 举报
回复
引用 6 楼 vbagcl 的回复:
[quote=引用 4 楼 lhdz_bj 的回复:]
[quote=引用 1 楼 vbagcl 的回复:]
Select b.SID,b.SERIAL# From dba_ddl_locks a, v$session b Where a.session_id = b.SID And upper(a.name) = 'PKG_L2L2_ASB0041S' ORDER BY SID
一般情况如果有包被锁住,用这个语句就能查到相关的session,而这个包,用这个语句,啥也找不到,好像没有被锁住


也有可能这个包引用的对象被锁定了,比如:包内参考的表被锁定,也可能导致这个包编译时获取不到相应的锁,否则,没有锁的话,包编译应该是很快的。[/quote]
应该不是,把这个重新命名,编译没有问题[/quote]

那这个过程在运行吗?
vbagcl 2020-06-28
  • 打赏
  • 举报
回复
引用 4 楼 lhdz_bj 的回复:
[quote=引用 1 楼 vbagcl 的回复:]
Select b.SID,b.SERIAL# From dba_ddl_locks a, v$session b Where a.session_id = b.SID And upper(a.name) = 'PKG_L2L2_ASB0041S' ORDER BY SID
一般情况如果有包被锁住,用这个语句就能查到相关的session,而这个包,用这个语句,啥也找不到,好像没有被锁住


也有可能这个包引用的对象被锁定了,比如:包内参考的表被锁定,也可能导致这个包编译时获取不到相应的锁,否则,没有锁的话,包编译应该是很快的。[/quote]
应该不是,把这个重新命名,编译没有问题
vbagcl 2020-06-28
  • 打赏
  • 举报
回复
引用 3 楼 sxq129601 的回复:
RAC查gv$session

Select b.SID, b.SERIAL#
From dba_ddl_locks a, gv$session b
Where a.session_id = b.SID
And upper(a.name) = 'PKG_L2L2_ASB0041S'
ORDER BY SID
啥也找不到
vbagcl 2020-06-27
  • 打赏
  • 举报
回复
Select b.SID,b.SERIAL# From dba_ddl_locks a, v$session b Where a.session_id = b.SID And upper(a.name) = 'PKG_L2L2_ASB0041S' ORDER BY SID
一般情况如果有包被锁住,用这个语句就能查到相关的session,而这个包,用这个语句,啥也找不到,好像没有被锁住

17,090

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧