I have a C++ .NET 2003 client application using Sybase 15 drivers that is connecting to a Sybase 12.5 database server using ASEOLEDB. The driver the client application is using is Adaptive Server Enterprise 15.00.00.356. The client code builds the connection string and executes a stored procedure by eventually calling the Microsoft library function ICommand:Execute.
Most of the time, ICommand:Execute returns S_OK and the code can process the results from the stored procedure call. However, seemingly randomly, that call will begin to return E_FAIL. The database, stored procedure, and input are all the same. This will last for 20-30 minutes, then seemingly resolve itself and start working again.
When the issue occurs, I can use Toad for Sybase to execute the stored procedure with the same input without issue. I can also use an older build of the client application that uses the Sybase 11 drivers that also has no issue. I can also run a script in PowerShell with the same ASEOLEDB connection string that also executes successfully.
I suspect some sort of connection pooling difference between the Sybase 11 and Sybase 15 client code to be the issue, but I don't know how to prove it/disprove it/isolate the cause further. Is there any known bugs/issues/compatibility issues between ASE 15, OLE DB, and Sybase 12.5 that would cause issues like this? Are there any workarounds I could try?