Linked Server connection failed

  • We have a link to intersystems Cache db using Intersystems ODBC driver that has worked well until this past weekend. This morning I have a message from the scheduled SQL processes "[Microsoft][ODBC Driver Manager] Driver's SQLSetConnectAttr failed".

    I have tested the data retrievel using MS Access with the same driver from a workstation and all appears normal (do not believe the problem is with the driver or the cache db).

    I am not aware of anything changed on the SQL Server side, but feel I must be overlooking something. The ID/Password is set to the service account, which I am told has not changed.

    Any suggestions would be greatly appreciated.

    Thank you,

    HCB

  • Note this may be a wild goose, the error you are tracking down.

    I see this all the time in ODBC traces, it is normal. Typically most

    drivers don't support every connection attribute that the client application

    throws at it.

    However I did find this in the KB, it might be related ->

    http://support.microsoft.com/kb/822841

    I suspect you are getting other ODBC errors, post these as well.

  • Kevin,

    Thanks for the advice. Although we did not actually find the problem we have "fixed" it for now. The SQL service was running and all looked good. Just as a pre-emptive measure we stopped and restarted the service and all came back as normal.

    Not sure what caused this to happen as whaever it was was at an obscure point in time (around 8:00 PM Saturday night.

    Anyway, thanks again.

  • I've worked for an ODBC driver vendor before, so I've got some experience here.

    You are right that you'll see SetAttr fails in most traces, but it most likely wouldn't be an issue unless there was an attribute setting that was considered necessary for the connection to work. The KB article may be answer, but you really should keep up with MDAC, and if you are on Win 2k3, you should already have the patch.

    My guess is that one of 2 things happened:

    Memory leak or error that killed the connection, most likely in the driver. I don't have any experience with the driver in question, so I can't speak to it's stability. If this is a critical system, explore alternative drivers, possibly 3rd party. Many "included" drivers for db's are targeted for client desktop apps, so they may not have been QA'd for long term use.

    Cache went down, network timeout, etc. Depending on the Attribute set, it may require a round trip to the DB, and it failed.

    Remember also that you have multiple layers, with an OleDB wrapper around ODBC, and possibly ADO.NET or ADO. Sometimes the mapping between the layers fails in unusual circumstances.

    Also, Cache is NOT an sql database natively. It's a different breed of DBMS (called a multivalue database http://en.wikipedia.org/wiki/MultiValue), and certain operations that an app might try may not be applicable.

  • Just a suggestion: if you are running something with legacy systems or have recently upgraded .. try looking at your MDAC versions.

Viewing 5 posts - 1 through 4 (of 4 total)

You must be logged in to reply to this topic. Login to reply