一台SqlServer服务器 winxp
一台oracle服务器    windows 2003想在oracle服务器利用透明网关连接到SqlServer。
配置透明网关的参数文件initXXXXX.ora的时候,1、设置 HS_FDS_TRANSACTION_MODEL = TWO_PHASE_COMMIT
   SQL>select * from tt@msql;
   执行select语句时报错:ora-28500 ora-02063
   (如果oracle和SqlServer同在一台机器上,一切正常!!!)2、将HS_FDS_TRANSACTION_MODEL = TWO_PHASE_COMMIT这句注释掉
   一切正常!!!看了很多文档,还是没能解决这个问题。望各位大侠帮忙!!

解决方案 »

  1.   

    HS_FDS_TRANSACTION_MODEL = TWO_PHASE_COMMIT 两阶段提交 是为分布式事务二设计的分布式事务,除了要数据库节点都有相应的事务支持,还需要有事务管理容器的支持。你这里之所以都在同台机器上,可能是那台机器上已经有事务管理器了。而分开不行,可能是Oracle的这台没有相应的这样的处理。 我用做java做应用的时候,分布式事务都是在程序里控制的,通过专门的事务管理器来控制分布式的事务。我想你这里也一样。你看看事务管理器方面的东西,microsoft好像有个MSDTC的事务管理器方案,你可以研究一下。
      

  2.   

    问题解决了,果然是事务管理器方面的问题。
    原来我的windows 2003上没有打SP2的补丁,
    打上补丁,配置一下MSDTC就可以了。
    打补丁之前无论怎么配置MSDTC也不行。谢谢 inthirties、crazylaa