How to Configure Timeout Setting for Data Connector

To configure the timeout setting for a data connector in a Bold Reports® embedding application, add the IReportHelperSettings interface to the ReportingAPIController class and set TimeOutInMinutes in the InitializeSettings method.

The timeout setting specifies how long the HTTP client should wait for a response after sending an HTTP request. Increasing the timeout value can help avoid request failures when the HTTP request takes longer to respond.

Defaults and limits:

  • Minimum default: 4 minutes
  • Maximum allowed: 30 minutes

How do I configure the timeout setting in the controller?

To configure the Bold Reports® data connector timeout in the controller, add the IReportHelperSettings interface to the ReportingAPIController class and set TimeOutInMinutes in the InitializeSettings method.

  • Add the IReportHelperSettings interface to the ReportingAPIController class as follows:

    public class ReportingAPIController : Controller, IReportDesignerController, IReportHelperSettings
    
  • To configure the timeout setting in the Bold Reports® Embedding application, add the following method to the ReportingAPIController.cs file:

    // To Configure the timeout setting for designer and viewer
    [NonAction]
    public void InitializeSettings(ReportHelperSettings helperSettings)
    {
        helperSettings.DataOptions = new DataOptions { TimeOutInMinutes = "7" }; // Specify the needed timeout value in minutes
    }

What timeout should a reverse proxy server use?

When you deploy a Bold Reports® embedding application with a reverse proxy server, set the proxy server’s timeout values equal to or greater than the configured TimeOutInMinutes value. Otherwise, the server terminates the connection before the HTTP request times out.

How do I configure timeouts in Nginx?

To configure timeouts in Nginx for a Bold Reports® embedding application, set the Nginx proxy timeout properties in the configuration file for your environment. Nginx has default request timeout values (commonly around 60 to 300 seconds, depending on the directive). Adjust these timeouts based on application requirements to prevent unexpected client or upstream disconnections. See the following table for the Nginx timeout configuration files across different environments.

Environment File
Linux and Docker single-container /etc/nginx/sites-enabled/default
Docker multiple-container default.conf
Kubernetes (K8S) Ingress.yaml

Timeout Properties in Linux and Docker environments

    proxy_connect_timeout {Desired time limit in seconds};
    proxy_send_timeout {Desired time limit in seconds};
    proxy_read_timeout {Desired time limit in seconds};
    send_timeout {Desired time limit in seconds};

Timeout setting Linux

Timeout properties in Kubernetes (K8S) environment

    proxy_connect_timeout {Desired time limit in seconds};
    proxy_send_timeout {Desired time limit in seconds};
    proxy_read_timeout {Desired time limit in seconds};

Timeout setting Kubernetes

How do I configure timeouts in other reverse proxy servers?

When you deploy a Bold Reports® embedding application with a reverse proxy server other than Nginx, configure the equivalent timeout properties (connection, send, and read) for that proxy server.

Which data connectors support the timeout setting?

The following Bold Reports® data connectors support the timeout setting:

  • ODATA [Configure Timeout setting]
  • Web API [Configure Timeout setting]