Inactivity timeout with result streaming

Data Lake query results are streamed in chunks by the JDBC driver through a background thread.

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.