Configuring timeout for dummy SQL query in advanced mode
[adapter] [arp timeout] [best] [configuring] [Dummy] [dummySQLQueryTimeout] [effort] [JDBC] [Query] [request timeout] [synchronous] [timeout]
Related:
- Configuring Maximum Message Size Limits for OOM ErrorSymptom You notice that the J2EE Engine restarts frequently, due...
- Several open connections noticed in DB2Symptom During the processing of JDBC receiver communication channels, too...
- Axis adapter’s connection timeout value settingSymptom The timeout value used by the standard trasnport handler...
Symptom
You are using JDBC adapter in your scenarios with QoS(Quality of Service) as Synchronous(Best Effort/BE). However, messages report a “MessageExpiredException”.
Other terms
JDBC, JDBC Adapter, Dummy Query, timeout, dummySQLQueryTimeout, timeout, synchronous, best effort
Reason and Prerequisites
Any delay in the response to a blocking synchronous request, results in the above exception. In this case, the delay is in checking resource integrity from the JDBC Receiver Adapter. The adapter basically issues a dummy query to check the validity of the database connection, before executing the actual SQL Query. If there is a delay in the execution of this dummy query, then the original synchronous request times out and hence the exception is noticed.
Solution
The solution in this case, involves a preventive handling mechanism with a timeout parameter for dummy SQL query as well.An advanced parameter, called ‘dummySQLQueryTimeout’, has been introduced in Receiver JDBC Adapter functionality. This ensures that any delay in the resource integrity check from the dummy query (if there is any issue with the underlying network or database drivers) to the database, is communicated back on time. In case the dummy query times out, a fresh connection is initiated to ensure that, further message processing is not affected.
Description of the parameter is as mentioned below:
dummySQLQueryTimeout : This parameter specifies the timeout value for execution of the dummy SQL query. This parameter in set in the advanced mode table of the Receiver JDBC Adapter. This is case-sensitive and should be configured as positive integer value in seconds(greater than 0). Default value is zero seconds.
The issue has been handled by changes in the code. The archives and the support package stack guide can be found on the SAP Service Marketplace as described in SAP Note 952402.