ASEOLEDB客户端连接间歇性失败

时间:2013-09-05 22:49:35

标签: .net connection-string oledb sybase-ase

我有一个使用Sybase 15的C ++ .NET 2003客户端应用程序,它使用ASEOLEDB连接到Sybase 12.5数据库服务器。客户端代码通过调用the Microsoft library function CCommand::Open来构建连接字符串并执行存储过程。

大多数情况下,CCommand :: Open返回S_OK并继续执行代码。但是,看似随机,该调用将开始返回E_FAIL。数据库,存储过程和输入都是相同的。这将持续20-30分钟,然后似乎自行解决并重新开始工作。

当问题发生时,我可以使用Toad for Sybase以相同的输入执行存储过程而不会出现问题。我还可以使用使用Sybase 11的旧版本的客户端应用程序也没有问题。我还可以在PowerShell中使用也成功执行的相同Sybase 15连接字符串运行脚本。

我怀疑Sybase 11和Sybase 15客户端代码之间存在某种连接池差异,但我不知道如何证明它/反驳它/进一步隔离原因。

可能的相关问题:Intermittent Oledb connection error “Cannot open database ''.”

1 个答案:

答案 0 :(得分:0)

我发现问题出在我们使用的Sybase OLE DB驱动程序(sybdrvoledb.dll 15.0.0.356版)上。当我用Sybase 15.7版本的dll文件夹替换Sybase / DataAccess / OLEDB / dll文件夹时,不会发生此问题。我使用了Sybase 15.7.0.80和15.7.0.1000中的DLL文件,两者都可以解决问题。