今天,功能顾问说客户在作付款的时候忽然客户端掉电,然后再次登录以后就无法继续付款了,报错界面如下。
![]() |
| 图1 |
明显是意外掉电导致的客户端进程没有释放,所以产生了始终不释放的lock。
如果对于业务比较熟悉,知道这是哪个form,问清楚客户使用的什么职责,通常从v$lock和v$session中就可以得到足够的信息,然后kill掉产生lock的会话就可以了。
但是如果对于业务不熟悉就只能依靠Oracle RDBMS的知识一点点检查了,我的解决方法基本上是这样。
1、为发生错误的Form加上跟踪
2、重现错误,在udump目录下查看trace文件
3、找到这样的报错
|
4、确认err=54是资源繁忙的错误
$ oerr ora 54
00054, 00000, “resource busy and acquire with NOWAIT specified”
// *Cause: Resource interested is busy.
// *Action: Retry if necessary.
5、查看dba_objects和v$locked_object,找到对SQL中的表加锁的SESSION_ID,然后kill这个会话。
这一步需要注意的是,Oracle ERP系统中使用了大量的带有CLIENT_INFO环境参数的视图,比如本例中的AP_CHECK_STOCKS就是一个视图,所以直接从v$locked_object里面是查不到锁定视图的会话的,所以通常我们还需要找到这个视图的定义,然后查询视图使用的基表。
|
||||
| · Windows Server 2008专.. · LAMP技术精解 · AMD Phenom三核处理器.. · 充电计划之热门IT认证.. · 勇闯IT培训黑色围城 · 如何有效防御SQL注入攻.. · 2008年上半年全国软考.. · 选择适合自己的IT认证 |
· IPv6协议--拓展网络无.. · 了解统一威胁管理(UTM).. · 调查:十大发现 解秘技.. · 技术人求职简历完备手册 · Vista SP1对决XP SP3 · 运营商封堵ADSL共享 中.. · PHP开发应用手册 · 解析35岁技术人的价值.. |
|||
|
||||
| · SQL Server 2008/2005.. · SOA 面向服务架构 · SQL Server 2008/2005.. · iSCSI应用与发展 · RAID——磁盘阵列基础 · Apache技术专题 · 三层交换技术专题 · SQL Server入门到精通 |
· Apache技术专题 · 国际文档格式标准开战 · 路由器设置与口令恢复 · 打造安全服务器 · PHP开发应用手册 · SOA 面向服务架构 · 企业数据恢复指南 · 了解统一威胁管理(UTM).. |
|||
|
||||
| · iSCSI应用与发展 · SQL Server入门到精通 · SQL Server 2008/2005.. · SOA 面向服务架构 · Apache技术专题 · iSCSI应用与发展 · 三层交换技术专题 · Apache技术专题 |
· RAID——磁盘阵列基础 · 企业数据恢复指南 · 路由器设置与口令恢复 · SOA 面向服务架构 · 了解统一威胁管理(UTM).. · 反垃圾邮件技术应用 · 访问控制列表(ACL)介绍 · PHP开发应用手册 |
|||