There are several places where you can configure timeouts. Those will work differently based on where you set it. This article describes how to configure different types of timeouts.
Note: setting timeout to 0 means waiting an infinite amount of time.
Types of timeout
Connection
The time in seconds, to wait for a connection to open. The default value is 15 seconds. It should be increased for slower connection. For example, an external data source may be physically located very remotely, where increasing timeout may help.
Command
The time in seconds, to wait for the command to execute. Various default values are set in different dialog boxes in TX. This is the amount of time to wait from one command to the next. It could be a part of a data cleansing procedure. Increase its value if you have high data loads that needs to run through multiple changes. A longer timeout is not necessary for one to one copy activity, but applicable when using lookup fields that uses a Top, or similar expressions.
Where to change the timeouts
You may set the timeout value in several configuration pages in TimeXtender Portal.
Data source
Sign-in to TimeXtender Portal and navigate to Data estate > Data sources. Below is an example for SQL Server.
Ingest instance
Sign-in to TimeXtender Portal and navigate to the Ingest instance > Edit
Prepare instance
Sign-in to TimeXtender Portal and navigate to the Prepare instance > Edit
Deliver Instance (Qlik Sense Server endpoint)
Sign-in to the TimeXtender Portal and navigate to the Deliver instance > Edit
Note: The timeout values is specified in minutes. Also, setting it to 0 does not cause an infinite wait.
Timeout errors and where to increase the timeouts
The default settings are appropriate for most scenarios. However, when a timeout error occurs, locate which step causes it:
- Is it the first thing that happened when executing a table from a data source? Then it is the connection to the data source where timeout needs to be increased. Place 1 in the above list.
- Is it during the transfer step of a table in the Ingest instance storage database? Increase the data source command timeout. Place 1 in the above list.
- Is it happening in the Prepare instance during data cleansing? Increase the command timeout on the Prepare instance. Place 3 in the above list.
- Is it happening during the Qlik execution? Increase the timeout on the Qlik endpoint in the Deliver instance. Place 4 in the above list.
How to analyze a scenario to set timeouts
Increasing the timeout value may help resolve some issues. However, additional analysis is often needed to implement faster execution. Find the root cause why these timeouts happen.
- Does it happen during the nightly execution with a timeout on the data source? Then it might be a loss of connection to the data source server. Was there a restart of service at night, or something similar?
- Specify the ‘next action’ when it fails.
- Decrease the batch size option, if the data source adapter supports it. This may split out the execution in several parts. Some providers set ‘batch size’ to 0 by default. Setting it to a number will reset the timeouts after each batch has been transferred.
- Does it happen during the transfer step and on which table? How is that table set up and how much data does it contain?
- Set up incremental load on this table.
- If automatic index generation turned off, then turn it on.
- Does it happen during the data cleansing step of any table? Analyze data cleansing to see how many lookup fields are there and how many tables it relates to.
- If automatic index generation is turned off, then turn it on.
- Set up incremental load on that table.
- Is the lookup type Partition by, or Top? Where applicable, change it to Group by.
- Do you have a join that is not equal ? (for example, larger than, or smaller than). Where applicable, apply views.
- Change the lookup fields, so as many lookups as possible are coming from the same table. It will make an overall group, containing all those fields.