如何修复无法在分布式事务中登记Sybase数据库的错误?

时间:2008-10-02 15:04:57

标签: database ssis transactions sybase distributed

我对Sybase设置知之甚少(可能没什么),但我知道SSIS在分布式事务中使用Sybase时遇到了麻烦。有没有人能够做到这一点?

The SSIS Runtime has failed to enlist the OLE DB connection in a 
distributed transaction with error 0x80004005 "Unspecified error".

当我将包的TransactionOption更改为Required时会发生这种情况。当我恢复默认的“支持”时,程序包运行没有错误(尽管不是线程安全的)。

1 个答案:

答案 0 :(得分:2)

当我尝试围绕从Gupta SQLBase读取的事务创建事务时,我遇到了同样的问题。基本上,似乎SSIS(至少截至2005年)无法在交易中注册任何其他提供商作为一揽子计划的一部分。我已经尝试了几次没有运气,通常我最终只是将OLEDB中的数据读入临时表,然后围绕将数据导入到SQL Server中的静止位置创建一个事务。这是读取方面 - 如果您正在尝试使用事务来写入SYBASE,那么您需要在该方面做一些事情 - SSIS将无法使用事务将数据推送到另一个提供商。 / p>

除此之外,我甚至不希望我的事务扩展到Gupta - 我只想在事务中在SQL Server端注册我的INSERT / UPDATE,以阻止用户读取半更新的数据,但是SSIS拒绝允许我将流程包装在交易中,因为Gupta不支持它。似乎不支持某些提供商的交易,或仅支持流程的“写入”方面,而不支持“读取”方。