ORACLE分布式事务提交问题

xujp 2002-01-18 11:22:52

本人在PRO*C程序的同一个事务中分别操作远程及本地的数据库,最后执行同一个提交命令(COMMIT),以上两个操作任一个出错则执行回滚(ROLLBACK),是否可能出现操作本地数据库成功而操作远程数据库失败的现象?(按理说只可能出现同时成功或同时失败)。若可能,如何避免这种现象,但必须保证此两个操作同时成功或同时失败。

该问题急待解决,望哪位知情者告知,不慎感激,谢谢!
...全文
141 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
mycode 2002-01-18
  • 打赏
  • 举报
回复
远程数据库的访问是怎么样的.
如果是通过Oracle数据库的db link去访问,则Oracle数据库会自已来处理两阶段提交问题.
如果是通过两个不同的连接,则会存在这样的问题.
如果通过事务中间件来访问,则事务中间件会解决这个问题.
offsider 2002-01-18
  • 打赏
  • 举报
回复
不可能出现一个失败一个成功的现象,只有都成功后才能提交成功,否则一起回滚。
boby_v 2002-01-18
  • 打赏
  • 举报
回复
ORACLE自己能够管理
xujp 2002-01-18
  • 打赏
  • 举报
回复
谢谢刚才那位同仁的答复,本人想把问题再描述清楚:

本人先在本地建同义词,该同义词通过数据库链指向远程数据库的某张表(设此同义词名为R)
PRO*C程序执行步骤如下:连接本地数据库=>执行本地数据库表的相关操作=>INSERT远程表R=>INSERT本地的日志表L=>COMMIT,以上操作均在同一个事务内,是否可能出现本地表L插入成功而远程表R插入失败的现象?若可能,如何避免?

2,596

社区成员

发帖
与我相关
我的任务
社区描述
Sybase相关技术讨论区
社区管理员
  • Sybase社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧