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.
-
Build your understanding of the following concepts;
-
The SelectForRecvTimeout function depends on QueryTimeoutInterval and ConnectTimeout commands passed by DB2 CLI driver.
-
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.
-
-
Locate and open the DB2CLI.ini file.
-
For a DSN, below are the default values in the DB2CLI.ini file.
[DSN-Name]
SchemaList='******'
DBALIAS=*****
PWD=******
UID=****** -
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.
-
-
When finished, your .ini file should look like this:
[DSN-Name]
SchemaList='******'
DBALIAS=*****
PWD=******
UID=******
QueryTimeoutInterval=30
ConnectTimeout=30
-
Save the changes, relaunch indexing application and test.