ORA-02049:超时:分布式事务处理等待锁模拟
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了ORA-02049:超时:分布式事务处理等待锁模拟,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1594字,纯文字阅读大概需要3分钟。
内容图文
![ORA-02049:超时:分布式事务处理等待锁模拟](/upload/InfoBanner/zyjiaocheng/561/aa02a53311634edbb4a10f258855e990.jpg)
现场报这个错,我想模拟一下,看是什么问题。 在Oracle数据库B上建表: create table TEST( A NUMBER, B DATE);insert into te
现场报这个错,我想模拟一下,,看是什么问题。
在Oracle数据库B上建表:
create table TEST
(
A NUMBER,
B DATE
);
insert into test (A, B) values (2, to_date('16-04-2015 16:38:26', 'dd-mm-yyyy hh24:mi:ss'));
insert into test (A, B) values (1, to_date('24-03-2015 16:32:36', 'dd-mm-yyyy hh24:mi:ss'));
insert into test (A, B) values (2, to_date('16-04-2015 16:35:19', 'dd-mm-yyyy hh24:mi:ss'));
insert into test (A, B) values (2, to_date('16-04-2015 16:35:19', 'dd-mm-yyyy hh24:mi:ss'));
commit;
在数据库A上:
drop database link to_B;
create database link to_B
connect to B_user identified by B_password
using '(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.15.10)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)';
在数据库B上执行update不提交:
SQL> update test set b = sysdate where A =2;
在数据库A上:
SQL> show parameter distributed_lock_timeout;
NAME TYPE VALUE
------------------------------------ ----------- -------
distributed_lock_timeout integer 60
SQL> update test@to_B set b = sysdate where A =2;
update test@to_B set b = sysdate where A =2
*
第 1 行出现错误:
ORA-02049: 超时: 分布式事务处理等待锁
ORA-02063: 紧接着 line (起自 TO_B)
等待60s后就报超时,就是distributed_lock_timeout设置的值
解决方案:数据库B上的事务尽快提交,或者数据库B上的SQL(update or delete or merge)太慢,需要调优。
本文永久更新链接地址:
内容总结
以上是互联网集市为您收集整理的ORA-02049:超时:分布式事务处理等待锁模拟全部内容,希望文章能够帮你解决ORA-02049:超时:分布式事务处理等待锁模拟所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。