编辑oracle对象的时候被锁的检查 ora-04021
2021/11/5 19:12:02
本文主要是介绍编辑oracle对象的时候被锁的检查 ora-04021,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
编辑数据库包或者object的时候被锁了,但是检查锁的时候没有查到原因
纠结了一下,后来想到是否是因为依赖对象的锁导致的连环锁,做追踪检查,最终确认了问题
第一步,检查对象被锁的代码,未找到相关锁
SELECT a.Sid
,a.Serial#
,b.Sql_Fulltext
,a.Machine
,a.Status
,a.Blocking_Session
,a.Blocking_Session_Status
FROM V$session a
,V$sql b
WHERE a.Sql_Id = b.Sql_Id
AND b.Sql_Fulltext LIKE '%XXINTERFACE_PAGE%';
第二步,检查该对象的依赖关系
说明:Dba_Dependencies表的referenced_name表名被依赖对象,及如果对象“XXINTERFACE_PAGE”被修改,会影响那些对象,如果这些对象在锁,则XXINTERFACE_PAGE不能被修改
SELECT *
FROM Dba_Dependencies Dd
WHERE Dd.referenced_name = 'XXINTERFACE_PAGE';
第三步,参照第一步的代码,检查依赖对象的锁,果然,有被锁的对象,解开锁就可以正常编译了
SELECT a.Sid
,a.Serial#
,b.Sql_Fulltext
,a.Machine
,a.Status
,a.Blocking_Session
,a.Blocking_Session_Status
FROM V$session a
,V$sql b
WHERE a.Sql_Id = b.Sql_Id
AND (b.Sql_Fulltext LIKE '%XXINTERFACE_SYSTEM_BOM%'
or b.Sql_Fulltext LIKE '%XXINTERFACE_SYSTEM_GTS%'
or b.Sql_Fulltext LIKE '%XXINTERFACE_SYSTEM_BOM%'
or b.Sql_Fulltext LIKE '%XXINTERFACE_SYSTEM_GTS%'
or b.Sql_Fulltext LIKE '%XXINTERFACE_MESSAGE%'
or b.Sql_Fulltext LIKE '%XXCUS_ITEMSYNC_NEW_PKG%'
or b.Sql_Fulltext LIKE '%XXCUS_GTS_ITEMS_PKG%'
or b.Sql_Fulltext LIKE '%XXINTERFACE_SYSTEM%'
or b.Sql_Fulltext LIKE '%XXINTERFACE_MESSAGE_GTS%'
or b.Sql_Fulltext LIKE '%XXCUS_INT_MESSAGE_NEW_UTL%'
or b.Sql_Fulltext LIKE '%XXCUS_INT_MESSAGE_NEW_UTL%'
or b.Sql_Fulltext LIKE '%XXCUS_INT_MESSAGE_INFO_UTL%'
or b.Sql_Fulltext LIKE '%XXCUS_BOM_EXPAND_PKG%'
or b.Sql_Fulltext LIKE '%XXCUS_INT_MESSAGE_INFO_UTL%'
or b.Sql_Fulltext LIKE '%XXINTERFACE_SYSTEM%'
or b.Sql_Fulltext LIKE '%XXINTERFACE_MESSAGE%'
or b.Sql_Fulltext LIKE '%XXINTERFACE_PAGE%'
or b.Sql_Fulltext LIKE '%XXINTERFACE_PAGES%'
or b.Sql_Fulltext LIKE '%XXINTERFACE_MESSAGE_GTS%'
or b.Sql_Fulltext LIKE '%XXINTERFACE_PAGE%');
注意:这次的原因是因为,一个发送报文的程序,写在了一个对象中,一旦这个调用这个对象的发送报文程序,则其依赖的对象都会被锁定,直到事物结束。
程序设计的时候,一些核心的和被频繁调用的程序要单独成包,降低耦合,避免过度的依赖造成无意义的锁。
这篇关于编辑oracle对象的时候被锁的检查 ora-04021的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-29易优CMS安装常见问题汇总-icode9专业技术文章分享
- 2024-06-28易优新手必读安装教程-icode9专业技术文章分享
- 2024-06-28忘记eyoucms后台密码怎么办?-icode9专业技术文章分享
- 2024-06-26终极指南:Scrum中如何设置需求优先级
- 2024-06-26AI大模型企业应用实战(25)-为Langchain Agent添加记忆功能
- 2024-06-26小白家庭 nas 搭建方案-icode9专业技术文章分享
- 2024-06-23AI大模型企业应用实战(14)-langchain的Embedding
- 2024-06-23AI大模型企业应用实战(15)-langchain核心组件
- 2024-06-23AI大模型企业应用实战(16)-langchain核心组件
- 2024-06-23AI 大模型企业应用实战(06)-初识LangChain