We have the flow which runs 15 times and we see that it runs fine for the 1st iteration but fails with the above error on the 2nd iteration
error code:
Error executing DATA_LOAD_1: ERROR [08001] [IBM] SQL30081N A communication error has been detected. Communication protocol being used: "TCP/IP". Communication API being used: "SOCKETS". Location where the error was detected: "hostname". Communication function detecting the error: "recv". Protocol specific error code(s): "10004", "*", "*". SQLSTATE=08001
changes we have done :
we have added the setting in ODBC interrupt = 0
also we have only one config file in the below location its attached as well.
DB2DSDRIVER.cfg file:
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<configuration>
<dsncollection>
<dsn alias="DBG2" host="hostname" name="dbg2" port="3774">
<parameter name="InterruptProcessingMode" value="0"/>
<parameter name="ConnectTimeout" value="0"/>
<parameter name="Interrupt" value="0"/>
<parameter name="UID" value="username"/>
<parameter name="PWD" value="password"/>
</dsn>
</dsncollection>
<databases>
<database host="hostname" name="DBG2" port="3774">
<!-- database-specific parameters -->
<wlb>
<!-- Enable Sysplex workload balancing to get automatic client reroute functionality -->
<parameter name="enableWLB" value="true"/>
</wlb>
</database>
</databases>
</configuration>
Release : 4.10 and newer
The Select query you are doing is a big query and for the first instance its fetching the data properly and returns it quick.. but the subsequent queries , we see that its taking over 30 ms and we are getting the error message
Issue was with the SQL query running greater than 30Secs. We have a timeout at 30 seconds.
The query timeout should be configurable by CommandTimeout property.
CommandTimeOut(IN) N int Time for which connection should wait for command to start returning results.
You can try to configure the timeout property here as per the screenshot for over 30 seconds.. and see if the original flow works.