Inactivity timeout with result streaming
Stalled or interrupted result streaming is detected by a built-in supervisor. By default, warnings are logged without terminating stalled queries. This is because queries that eventually recover are preferred by most batch workloads. If you prefer queries to fail after a defined inactivity period and enable automatic retries, you can configure the supervisor to terminate queries after a specified period with no progress.
This table shows optional connection parameters that you can use in the supervisor configuration:
| Property | Scenario | Default duration | Result when set |
|---|---|---|---|
query.client.supervisorInactivityCheckInterval |
The connection is stalled and no data arrives. You use this setting to control how frequently the driver checks for progress during the inactivity period. |
90 seconds | The progress of chunk streaming is verified during inactivity periods. For example, a value of 120 means that a progress check is performed every 120 seconds. |
query.client.supervisorAllowedConsecutiveInactivityCheckFailures |
The connection is stalled. You use this setting to terminate the query after a defined inactivity period instead of waiting indefinitely. |
0 attempts | After the specified number of consecutive failed attempts, the query is terminated and an exception is raised. For example, with a value of 10 and a 120-second interval, the query is terminated after 20 minutes of no progress:
jdbc:infordataplatform:datalake://TENANT?query.client.supervisorInactivityCheckInterval=120&query.client.supervisorAllowedConsecutiveInactivityCheckFailures=10 |
Handling of a chunk pull error
Except for the network inactivity, errors can occur when a specific result chunk is being retrieved. For example, transient service errors. These errors differ from inactivity scenarios in which no response is received.
This table shows a connection parameter that you can use to handle chunk pull errors:
| Property | Scenario | Default duration | Result when set |
|---|---|---|---|
query.client.chunkPullerConsecutiveRetries |
An error occurs during active result streaming. Use this setting to control the number of retries before the query is terminated. |
2 retries | The query is terminated after the specified number of consecutive errors when retrieving a result chunk. For example, a value of 5 allows for maximum five retry attempts per chunk before the query fails. |