Timeouts

Timeouts on databases

  • 20 December 2022
  • 0 replies
  • 648 views
Timeouts on databases
Userlevel 3
Badge +3

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.

ODX instance

Sign-in to TimeXtender Portal and navigate to ODX instance > Edit

Data warehouse instance

Sign-in to TimeXtender Portal and navigate to data warehouse instance > Edit

Semantic Model Instance (Qlik Sense Server)

Sign-in to the TimeXtender Portal and navigate to semantic model 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:

  1. 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.
  2. Is it during the transfer step of a table in the ODX database? Increase the data source command timeout. Place 1 in the above list.
  3. Is it happening on the DWH during data cleansing? Increase the command timeout on the DWH instance. Place 3 in the above list.
  4. Is it happening during the Qlik execution? Increase the timeout on the Qlik semantic model 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.

  1. 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.
  2. 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.
  3. 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.

0 replies

Be the first to reply!

Reply