complus error when attempting to use linked server

  • Hi Guys,

    I have a scheduled task that uses openquery to copy some data from an IBM iSeries.

    I have created a linked server using the IBMDASQL driver and configured it to use the current security context (SQL Server agent runs under a domain service account whose Kerberos Token is mapped to the iSeries OK)

    This was working fine and ran on Sunday without error, it failed on Monday however immediately after a Windows update (KB articles 3039066and 3033889)

    We have reversed the update for KB3039066 last night as it was refering to some DLL execution prevention thing but the other item still remains.

    The openquery failed again this morning 🙁 we're going to reverse the other Windows update tonight too but in my experience, this probably won't fix the issue because nothing is ever simple.

    The issue that I'm getting is that the linked server is reporting a 'catastrophic failure'.

    Msg 7399, Level 16, State 1, Line 1

    The OLE DB provide "IBMDASQL" for linked server "ISERIES" reported an error. The provider reported an unexpected catastrophic failure.

    Digging into the Windows event veiwer tells me that complus has failed every time I attempt to make a connection. Error as follows:

    The system has called a custom component and that component has failed and generated an exception. This indicates a problem with the custom component. Notify the developer of this component that a failure has occurred and provide them with the information below.

    Component Prog ID: SC.Pool 1 1

    Method Name: IDispenserDriver::CreateResource

    Process Name: DllHost.exe

    Exception: C0000005

    Address: 0x645AD1AA

    If I attempt to make the connection In Process the same exception occurs only with sqlservr.exe being the errored process:

    The system has called a custom component and that component has failed and generated an exception. This indicates a problem with the custom component. Notify the developer of this component that a failure has occurred and provide them with the information below.

    Component Prog ID: SC.Pool 3 1

    Method Name: IDispenserDriver::CreateResource

    Process Name: sqlservr.exe

    Exception: C0000005

    Address: 0x68D0D1AA

    Exception C0000005 is an access violation triggered by a general protection fault. This is due to a program attempting to reference a restricted memory location - it is most likely a NULL pointer exception.

    Now I know the issue does not appear to be with the IBMDASQL driver itself as attempting to access this driver using vbscript's ADODB.Connection object works fine as does using the ODBC driver in the same package.

    Further to this, if I create an ODBC system dsn that connects to the iSeries and attempt to access it using the Microsoft OLE DB Provider for ODBC Drivers I get the same error, but a linked server using this Provider to access a different dsn with a stored password does not cause the error so I'm starting to think it is related to using the current security profile.

    My colleague in tech services is going to uninstall the Windows update tonight which may resolve the issue but I'm concerned that this will not fix it and the business will go another day without this important data extract....

    Has anyone else ever experienced an issue like this?

    Thanks for reading

    Ben

    ^ Thats me!

    ----------------------------------------
    01010111011010000110000101110100 01100001 0110001101101111011011010111000001101100011001010111010001100101 01110100011010010110110101100101 011101110110000101110011011101000110010101110010
    ----------------------------------------

Viewing 0 posts

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