MSDTC,OLE DB 出错

博客讲述在特定环境下,通过JDBC调用存储过程时出现错误,提示服务器上的MSDTC不可用,且因OLE DB提供程序无法启动分布式事务导致操作未能执行,原因是存储过程中调用了特定SQL方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 环境如下,通过jdbc调用存储过程(procedure),出现如下错误:
 [SQLServer 2000 Driver for JDBC][SQLServer]服务器 'FILES-SERVER' 上的 MSDTC 不可用
 [SQLServer 2000 Driver for JDBC][SQLServer]该操作未能执行,因为 OLE DB 提供程序'SQLOLEDB' 无法启动分布式事务。
因为在存储过程中调用了如下的sql方法

None.gif   opendatasource ( ' SQLOLEDB ' , ' Data Source = 192.168.1.1;User ID = sa;Password =psstone ' )
所以就出现了上面的错误。因为存储过程调用的数据库其实是同一台服务器,把我把opendatasource方法去了,调试通过。可我还是不明白(在ms sql的查询分析器中,执行此存储过程没有问题,可为什么通过JDBC调用就会出现如上的错误? 02.gif)。 noidea.gif假如真的是调用另一个服务器上的数据,那怎么办呢?opendatasource方法是通过链接服务来调用分布式事务(调用另一台数据库服务获取数据),可能是因为OLE DB 提供程序'SQLOLEDB' 无法启动分布式事务,那么用什么样子的程序(驱动程序)能启动分布式事务呢?

 等把这个东东做完了,在来好好研究一下吧,时间有限。 red_smile.gif 请赐教,:)

下面是我找到的一些资料, http://community.youkuaiyun.com/Expert/topic/2889/2889213.xml
http://community.youkuaiyun.com/Expert/topic/2835/2835706.xml
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值