在你最美丽的时候遇到谁

oracle技术

  DonewsBlog  |  Donews首页  |  Donews社区  |  Donews邮箱  |  我的首页  |  联系作者  |  聚合   |  登录
  37篇文章 :: 0篇收藏:: 2篇评论:: 0个Trackbacks

文章

收藏

相册

技术网站

友情链接

存档


正在读取评论……


现象:dms中几乎所有的入库出库都报错

2005-12-10 09:12:53 [ERROR] com.topup.ent.kroraina.model.sysmgmt.usersqlquery.USqlQueryDAO (USqlQueryDAO.java             :4255) - error=java.sql.SQLException: ORA-01591: 锁定已被有问题的分配事务处理20.18.156406挂起

ORA-01591: 锁定已被有问题的分配事务处理20.18.156406挂起 ORA-06512: 在"XXDMS.P_UPDATEITEMCOST", line 45 ORA-06512: 在"XXDMS.P_ORDCREATE_AF_10191", line 15 ORA-06512: 在"XXDMS.P_ORDCREATE_AF_10170", line 115 ORA-06512: 在line 1

查到XXDMS.P_UPDATEITEMCOST", line 45  是查询t_order_trans表,到OEM里看

进入锁,根本没发现相关的对象被锁定,

重启数据库之后做入库单还是不行 报同样的错误

查看视图DBA_2PC_PENDING,发现该事务的痕迹

看来出错原因:远程事务失败,但是又没有返回造成分布式事务挂死,从而锁定了行,数据库中有操作

update...table@erpdb,远程操作

于是登陆数据库
COMMIT FORCE '20.18.156406';
然后查看DBA_2PC_PENDING发现状态已经改为'COMMIT FORCE',SELECT该表相关行,一切正常。至此,故障解决。
总体来看,直接INSERT ... TABLENAME@SQLDBLK还是很危险的,遇上不能正常返回就出问题了。Oracle的文档是推荐使用包或者存储过程来解决,此后建议同事改用此方法,目前已经测试通过。



Trackback: http://tb.donews.net/TrackBack.aspx?PostId=653159


[点击此处收藏本文]  发表于2005年12月10日 11:01 AM




正在读取评论……

发表评论

大名:
网址:
验证码
评论