在写pl/sql的时候,有个很重要的注意点;
比如:
begin
update 某个sqlserver的表@dblink名字 .....;
update 某个oracle的表...;
end;
这段pl/sql执行会报错:
错误信息是:
-----------------------------------------------------------------
执行失败:ORA-02054: 事务处理 2.12.27634 有问题
ORA-28500: 连接 ORACLE 到非 Oracle 系统时返回此信息:
[Oracle][ODBC SQL Server Driver][SQL Server]对象名 'RECOVER.HS_TRANSACTION_LOG' 无效。
ORA-02063: 紧接着 2 lines (起自 dblink名字)
-----------------------------------------------------------------
然后你执行:
select * from 某个sqlserver的表@dblink名字
这个没问题;
再执行:
select * from 某个oracle的表
完了!结果提示:
执行失败:ORA-01591: 锁被有问题的分布式事务处理 2.12.27634 持有
这时候,你查询:
SELECT * FROM DBA_2PC_PENDING
会发现,被锁的信息;
然后,你用
commit/rollback force '2.12.27634' ; 解锁;
当然这里的2.12.27634 是随机的。每次被锁,都是不同的值;
这个问题如何解决呢?
begin
update 某个sqlserver的表@dblink名字 .....;
commit; --非常重要;
update 某个oracle的表...;
end;
这样就OK了,原因我觉得是这样的:oracle内部其实是两块事务,一个是针对sqlserver,一个针对自己的oracle;
所以必须把两端的事务独立下来;
下面这个写法也是OK的:
begin
update 某个sqlserver的表@dblink名字 .....;
update 某个sqlserver的表@dblink名字 .....;
commit; --非常重要;
update 某个oracle的表...;
update 某个oracle的表...;
end;
ORA-01591 锁被有问题的分布式事务处理
转载自http://hi.baidu.com/graceyan/item/da33101a33e033f99d778aa8
相关推荐
介绍分布式事务的定义、原则和实现原则,介绍使用Spring框架实现分布式事务的几种方式,包括使用JTA、Spring事务同步、链式事务等,并通过实战介绍其实现。除此以外还介绍了一些分布式事务相关的技术,如幂等性、...
DML事务锁定的机制 行级锁(TX锁) 表级锁(TM锁) 锁定相关视图 v$transaction v$lock 5 v$enqueue_lock ...--出错的分布式事务锁 --分布式事务 --Hold进程 --会话式事务锁 --强制回滚 --杀掉会话进程
TCC事务机制相对于传统事务机制(X/Open XA Two-Phase-Commit),其特征在于它不依赖资源管理器(RM)对XA的支持,而是通过对(由业务系统提供的)业务逻辑的调度来实现分布式事务。主要由三步操作,Try: 尝试执行业务...
数据同步:基于redis的分布式锁。 Web安全:实现XSS过滤和CSR过滤。 多系统交互:Dubbo,ActiveMQ多系统交互。 前后端分离:前端使用ajax访问后端的rest服务,后端返回json格式数据。页面用nginx反向代理访问。 支付...
项目简介 提供基于spring-cloud系列整合的依赖jar包,比如分布式锁,接口文档,多数据源,单点登录,第三方集成等等可spring-boot配置的,简单化的使用工具。...提供mybatis与jpa多数据源配置,分布式事务。 daijie-
为了保证最终一致性,在通过领域事件进行通讯的方式中,可以共享存储(领域模型和消息的持久化数据源),或者做全局XA事务(两阶段提交,数据源可分开),也可以借助消息中间件(消费者处理需要能幂等)。...
2.4. 长事务处理有哪些特性,如何解决? 12 2.5. 数据库系统体系结构有哪几类,每种类型的特点是什么,关键技术有哪些? 12 2.6. 决策支持类应用与OLTP应用对于数据库系统的要求有哪些不同,支持前者的关键技术有...
java版电商源码 ...正如其名,它指对数据被外界(可能是本机的其他事务,也可能是来自其它服务器的事务处理)的修改持保守态度。在整个数据处理过程中,将数据处于锁定状态。悲观锁大多数情况下依靠数据库的锁机
现在呢,我新开辟了一个新项目,仓库地址为:这个项目我跟着大牛老师做一做,并且我会根据自己的理解进行代码的重构(我觉得有很多值得优化的点,还有就是支付,我还是想用原生的接入方式而不是课程中说的接入它的...
这份PDF文档《MySQL事务(五).pdf》是关于MySQL数据库事务管理的深入指南,作为系列教程的第五部分,它详尽地介绍了事务处理的概念、原则以及在实际数据库操作中的应用。内容包括: 事务基础:解释事务的概念和...
解压有doc目录下,md文件,使用支持md文档的阅读器打开即可浏览,包括消息队列,搜索引擎,缓存,分库分表,读写分离,高并发,分布式,分布式锁,分布式事务,限流、熔断、降级,微服务架构,高可用架构等知识,
2.4. 长事务处理有哪些特性,如何解决? 12 2.5. 数据库系统体系结构有哪几类,每种类型的特点是什么,关键技术有哪些? 12 2.6. 决策支持类应用与OLTP应用对于数据库系统的要求有哪些不同,支持前者的关键技术有...
这样做的好处是,开发者有更大能力去深入控制并行计算的过程,去保持使用并行计算实现业务逻辑的完整性,而且对各种不同类型的并行计算场景也能灵活处理,不会因为某些特殊场景被map/reduce的框架限制住思维,并且...
因为构建合适的锁可以在高并发下能够保持数据的一致性,即客户端在执行连贯的命令时上锁的数据不会被别的客户端的更改而发生错误。同时还能够保证命令执行的成功率。 看到这里你不禁要问redis中不是有事务操作么?...
JWT+shiro+zk分布式锁+手动事务处理 三期: 添加基于消息的最终一致性分布式事务解决方法+springboot整合rocketmq 四期: 缓存和mysql数据一致性问题的解决方案+redis分布式锁解决缓存雪崩和缓存击穿的问题 # ...
Lealone是什么是一个兼具RDBMS,NoSQL优点的面向场景的异步化NewSQL单机与分布式关系数据库Lealone有某种特性高亮特性支持全面分布式事务,支持强一致性复制,支持多重快照隔离全串联异步化,使用少量线程即可处理...
有时是在一些特定的时间需要某个进程处理某些事务等等,人们通常会使用分布式锁、选举算法等技术来协调各个进程之间的行为。因为分布式系统本身的复杂特性,以及对于容错性的要求,这些技术通常是重量级的,比如 ...
我说这⾥涉及了分布式事务了,他说不⽤,把RPC接⼝调⽤放在最后⾯...然⽽实际逻辑并不 ㇐定都这样的...他应该是想问出现死锁、间隙锁问题应该如何来处理,说了下死锁的解决 思路,没有太get到点上。 3、缓存 & ⾼...
分布式分区视图 分布式分区视图允许用户将大型表中的数据分散到不同机器的数据库上,用户不需要知 道直接访问哪个基础表而是通过视图访问数据,在开发上有一定的透明性。但是并没有 简化分区数据集的管理、设计。...
Hutool是一个Java基础工具类,对文件、流、加密解密、转码、正则、线程、XML等JDK方法进行封装,组成各种Util工具类,同时提供以下组件: 布隆过滤 缓存 克隆接口 类型转换 日期处理