添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
神勇威武的鸵鸟  ·  vuejs2 - What is ...·  1 年前    · 
刚分手的马铃薯  ·  org.springframework.da ...·  1 年前    · 
爱旅游的木瓜  ·  SQl ...·  1 年前    · 

ORA-02049: 超时: 分布式事务处理等待锁。

【问题思路】:

(1)首先我在数据库中刚查过数据(印刷流水号),sql为:
select visaserialno, businessno,visacode, visaname, usercode, visastatus, comcode from vsmark
where visacode like 'DAC051A32007A(山东)'  and usercode='02110003'  for update;
(2)然后在核心系统中输入查询的印刷流水号visaserialno,在核心系统中调用接口出现 ORA-02049: 超时: 分布式事务处理等待锁 的错误。
(3)我怀疑是因为上述sql只for update而没有提交事务(commit),数据库事务你没有commit或者rollback导致事务不能统一提交。导致把错误回传给客户端让其处理。因为核心系统用的数据库和我更改的数据库是一致的。
(4)然后我把本地数据库commit,再在核心系统中调用接口。成功。

【总结】:

该参数指定等待分布式锁资源的时间,超过这个时间事务自动回滚,即在等待未释放的资源超过一定的时间,系统自动报错给客户端,就会以ORA-02049: 超时: 分布式事务处理等待锁 的方式提错给你。该值默认为60,即等待分布式锁资源60秒。从上面的测试来看,使用dblink做分布式事务时一定要及时commit或rollback,尽量在分布式应用中使用短事务为宜。dblink 作用就是让数据库中的数据负载均衡,一般情况下数据量较大的数据都会用到。 现场报有一个功能走不下去,后台日志报错:java.sql.SQLException: ORA -01591: 被未决 分布式事务 处理 657.7.39336持有。解决方案: rollback force ‘657.7.39336‘;--执行可能会比较慢执行完成后,查询DBA_2PC_PENDING,select*fromDBA_2PC_PENDINGswheres.local_tran... 今晚接到项目经理发来的数据库问题,报错为 ORA - 02049 : 超时 : 分布式事务 处理 等待 ,第一时间感觉是维护的数据库的d blink 问题,因为现在维护的这些数据库使用大量d blink ,70%以上的查询都使用d blink ,查看对于的存储过程发现,在循环 处理 后没有 commit ,导致该问题的出现。下面是在测试环境的模拟:连接第一个数据库,查看DISTRIBUTED_LOCK_TIMEOUT参数的值为60... 今晚接到项目经理发来的数据库问题,报错为 ORA - 02049 : 超时 : 分布式事务 处理 等待 ,第一时间感觉是维护的数据库的d blink 问题,因为现在维护的这些数据库使用大量d blink ,70%以上的查询都使用d blink ,查看对于... 最近在工作中遇到了一个问题,错误是 Ora cle dbca时报错: ORA -12547: TNS:lost contact,通过查找相关的资料终于找到了解决的方法,下面分享给大家,话不多说了,来一起看看详细的介绍吧。 OS:RHEL6.5 x86-64bit DB:11.2.0.4 for Linux 86-64bit DBCA报错,首先看DBCA的日志,日志中也是报 ORA -12547: TNS:lost contact 于是再sqlplus / as sysdba敲回车,也是报 ORA -12547: TNS:lost contact, 基于之前的工程经验,先 公司服务器周末要加硬盘,周一来后应用连不上了。报错如下 报错: ORA -12170:TNS connect timeout occurred 第一反应是监听没开: 1. 测试了一下, 连接 超时 没用ping 通 C:\Users\Administrator>tnsping brorcl TNS Ping Utility for 64-bit Windows: Version 11.2.0.1.0 – Production on 15-6月 -2015 09:45:43 已使用的参数文件 ORA - 02049 是一个 分布式事务 等待 超时 的错误,当一个session 持有一个行级 ,另一个 分布式事务 比如通过d blink 也想修改相同行的数据,就会产生行 队列 等待 ,当 等待 时间超过了系统参数distributed_lock_timeout的值时,就产生了这个错误,任何通过通过D BLINK 的操作都是分布式事物。 测试库1: 创建测试表并插入测试数据: SQL> create table test(id number 一.系统环境: ORA CLE:9IR2OS:WINDOWS 2003 SERVER二.问题描述:现场人员报怨报表数据不准确,查明为韩国方面数据回传中断,联系韩国相关人员后,给我发了个他那边回传程式报的一个错: ORA - 02049 :timeout:distributed transaction waiting for lock.三.问题分析:找了下有关 ORA - 02049 错误的简短说明如下: ORA -020... S.USERNAME, DECODE(L.TYPE, 'TM', 'TABLE LOCK', 'TX', 'ROW LOCK', NULL) LOCK_LEVEL, O.OWNER, O.OBJECT_NAME, O.OBJECT_TYPE, S.SID, S.SERIAL#, S.TERMINAL, S.MACHINE, ORA - 02049 :timeout:... ORA -02036:preceding... 原因 :远端的目标表独占 ,导致本地的连接一直在 等待 ,导致连接 超时 报错。 还有一种情形就是当通过d blink 更新视图报错 ORA -02036的时候,可能是创建的d blink 包含order by等子句,无法进行更新。 可更新的视图不得包含以下任何构造:set... ORA - 02049 ‘timeout: distributed transaction waiting for lock’ ORA - 02049 是一个 分布式事务 等待 超时 的异常,当一个session 持有一个行级 ,另一个 分布式事务 比如通过d blink 也想修改相同行的数据,就会产生 tx队列 等待 ,当 等待 时间超过了系统参数distributed_lock_timeout的值时,就产生了这个错误,任何通过通... 1.在通过远程方式连接上数据库后,首先对数据库主机的CPU/内存等硬件资源进行检查,未发现明显资源瓶颈。 2.在数据库实例中检查是否存在 等问题,相关进程有enq: TM – contention表 等待 ,但是未发现对应的阻塞源头进程。 3.根据报错信息中的 分布式事务 超时 问题,查看数据库相关视图表,发现有110个状态为collecting的 分布式事务 ,是是非正常状态的,之后进 原因 :使用D BLINK 后,很容易出现一个问题: ORA - 02049 超时 分布式事务 处理 等待 ORA -02063:紧接着line(起自ODS_LINK)。 事物没有提交或回滚导致 。 基本思路:找到lock的sid和SERIAL,杀掉 命令: ALTER SYSTEM KILL SESSION ‘SID,SERIAL#’; 查找sid相关命令: SELECT S.USERNAME, DECODE(L.TYPE, 'T