Resolve ChildIndexing SQL Communication Error When Performing Lookups on DB2 Database

Use this article to resolve the following error that you might get while performing parent or child lookups against a DB2 hosted database (these errors can occur when the connection between the DB2 server and the DB2 client times out or the query interval times out):

SQL30081N A communication error has been detected. Communication protocol being used: "TCP/IP". Communication API being used: "SOCKETS". Location where the error was detected: "<ip address>". Communication function detecting the error: "<failing function>". Protocol specific error code(s): "<error code>", "*", "*". SQLSTATE=08001

Tip: This fix helps to resolve the issue only on client side. If there are any issues on server side, this fix will not help to resolve issues on server side.

  1. Build your understanding of the following concepts;

    1. The SelectForRecvTimeout function depends on QueryTimeoutInterval and ConnectTimeout commands passed by DB2 CLI driver.

    2. For lookups most of the Synergize applications depends on System DSN. For each DSN, an initialization file called DB2CLI.ini stored in C:\ProgramData\IBM\DB2\DB2COPY1\cfg holds all connection details.

  2. Locate and open the DB2CLI.ini file.

  3. For a DSN, below are the default values in the DB2CLI.ini file.

    [DSN-Name]
    SchemaList='******'
    DBALIAS=*****
    PWD=******
    UID=******

  4. Add both QueryTimeoutInterval and ConnectTimeout to resolve this error.

    • Your value for ConnectTimeout should be a number between 0 - 32767.

    • Your value for QueryIntervalTimeout can be any positive integer.

  5. When finished, your .ini file should look like this:

    [DSN-Name]

    SchemaList='******'

    DBALIAS=*****

    PWD=******

    UID=******

    QueryTimeoutInterval=30

    ConnectTimeout=30

  6. Save the changes, relaunch indexing application and test.