locked
what is the default timeout processing option in SSRS Server RRS feed

  • Question

  • Hi,

    I am getting The operation has timed out error when trying to connect SSRS server sometime. So I would like to know what is the default timeout for report in seconds?

    Thanks
    Saikat

    Tuesday, May 22, 2012 1:28 PM

Answers

All replies

  • Hello Saikat,

    When you connect to SSRS report server, you encounter the timeout error. As I know, there are several possible conditions, which will cause the timeout.

    1. HTTP Timeout


    This is a general timeout. SSRS report server is a web site, and accept the HTTP request. HTTP timeout occurs if the response of the HTTP request is not delivered in time. The behavior of this timeout is that the browser shows the default error page of the browser instead of the report page with error message. The default setting is located in the web.config file in the reporting server folder. Here is the default value of SQL server 2012.

    <httpRuntime executionTimeout="9000" />

    It means the timeout is 9000 seconds, about 2.5 hours.

    2. Execution Timeout

    If you encounter timeout on executing the report, we may modify the following items in rsreportserver.config file to enlarge the execution time. Here are the default values in the rsreportserver.config file.

    <Add Key="CleanupCycleMinutes" Value="10"/>
    <Add Key="DatabaseQueryTimeout" Value="120"/>
    <Add Key="RunningRequestsScavengerCycle" Value="60"/>
    <Add Key="RunningRequestsDbCycle" Value="60"/>
    <Add Key="RunningRequestsAge" Value="30"/>

    For more information about the above items, please refer to RSReportServer Configuration File.

    In addition, if the dataset timeout is set, we can enlarge the timeout settings for the dataset. If the timeout value is 0, it means no timeout. Here are the steps of modifying the timeout.

    1. Open the report using the report designer (Business Intelligence)
    2. Select the Data tab
    3. Select the dataset properties
    4. Increase the value of the timeout box (or put the number in minutes for the query duration if empty)

    In addition, there is a useful blog on MSDN, which describes the issue on Reporting service 2005. Some of the settings are same to 2008 and later version.

    Troubleshooting Timeout errors in Reporting Services - http://blogs.msdn.com/b/mariae/archive/2009/09/24/troubleshooting-timeout-errors-in-reporting-services.aspx

    Regards,

    Edward


    Edward Zhu

    TechNet Community Support

    • Edited by Edward Zhu Wednesday, May 23, 2012 8:42 AM
    • Proposed as answer by Sriindu Wednesday, May 23, 2012 8:46 AM
    Wednesday, May 23, 2012 8:38 AM
  • Hi Edward,

    Thanks for the information. When I run the report from SSRS server then at that time I did not get any time out error. Basically, the report is calling through SSIS package script task using ssrs webservice. Now, when I call the report from SSIS sometimes I got the The operation has timed out error. This error comes suppose once per 10 reports. Please let me know what could be the possible reason and how to resolve this. I am using SQL Server 2008 R2 for the development.

    Thanks,

    Saikat

    Wednesday, May 23, 2012 9:07 AM
  • Hello Saikat,

    From your description, you are using the SSIS to invoke the reporting web service to access the report data.

    In this scenario, please try the following steps.

    1. Open the HTTP connection property dialog in the Connection Management.
    2. Check the Server tab, and find out the Time-out item. Enlarge the value to a big number, such as 300.
    3. Set Chuck size to a large value as well. Then, click OK to save the changes.

    After that, please re-run the SSIS package to see whether the symptom is alleviated.

    Regards,

    Edward


    Edward Zhu

    TechNet Community Support


    • Edited by Edward Zhu Thursday, May 24, 2012 1:50 AM
    Wednesday, May 23, 2012 9:30 AM
  • Hi Edward,

    I am not able to follow your steps as I did not get the HTTP connection property. Can you refer any article or snapshot on where I can find the property.

    Attached is the snapshot which I got info. related to timeout property in SSIS. I am using SQL Server 2008 R2.

    Thanks,

    Saikat

    Wednesday, May 23, 2012 9:48 AM
  • Hello Saikat,

    Thanks for your response. I am confused how you call the report in the SSIS package. I supposed that you are running it use a web service task to get the report data, like the following screenshot.

    Then, you will see it need an HTTP connection. If we edit the HTTP connection, you will find the two parameters I supposed in my last post.


    However, you said that you did not have this kind of connection. Can you show me the screenshot of the SSIS package to see how you fetch the report from the reporting service?

    Thanks,

    Edward


    Edward Zhu

    TechNet Community Support

    Thursday, May 24, 2012 2:17 AM
  • Hi Edward,

    Thanks for your reply. I am using script task to connect web service. Below is the code I am using for generating reports connecting SSRS web service.

     RS2005.ReportingService2005 rs;
                    RE2005.ReportExecutionService rsExec;
                    // Create a new proxy to the web service    
                    rs = new RS2005.ReportingService2005();
                    rsExec = new RE2005.ReportExecutionService();
                    // Authenticate to the Web service using Windows credentials   
                    rs.Credentials = System.Net.CredentialCache.DefaultCredentials;
                    rsExec.Credentials = System.Net.CredentialCache.DefaultCredentials;
    
    
    
                    rs.Url = "http://" + (Dts.Variables["ReportingServicesServerName"].Value).ToString() + "/reportserver/reportservice2005.asmx";
                    rsExec.Url = "http://" + (Dts.Variables["ReportingServicesServerName"].Value).ToString() + "/reportserver/reportexecution2005.asmx";
    
    
    
                    string historyID = null;
                    string deviceInfo = null;
                    string format = "PDF";
                    //string format = "WORD";
                    Byte[] results;
                    string encoding = String.Empty;
                    string mimeType = String.Empty;
                    string extension = String.Empty;
                    RE2005.Warning[] warnings = null;
                    string[] streamIDs = null;
                    // Path of the Report    
                   // string fileName = (Dts.Variables["DestinationPath"].Value).ToString() + "/" + (Dts.Variables["ControllerID"].Value).ToString() + "_" + DateTime.Now.ToString("MMddyyyy") + ".pdf";
                   
                    //In PDF format.
                    String oFilePath = (Dts.Variables["DestinationPath"].Value).ToString() + "/" + "enVision_7DayReport_" + (Dts.Variables["ControllerID"].Value).ToString() + "_" + DateTime.Now.ToString("MMddyyyy") + ".pdf";
                   
                    Dts.Variables["FileName"].Value = oFilePath;
                    
    
                    // Name of the report 
                    string _reportName = @"/Reports/Service Report";
                    string _historyID = null;
                    bool _forRendering = false;
                    RS2005.ParameterValue[] _values = null;
                    RS2005.DataSourceCredentials[] _credentials = null;
                    RS2005.ReportParameter[] _parameters = null;
    
                    {
                        _parameters = rs.GetReportParameters(_reportName, _historyID, _forRendering, _values, _credentials);
                        RE2005.ExecutionInfo ei = rsExec.LoadReport(_reportName, historyID);
                        RE2005.ParameterValue[] parameters = new RE2005.ParameterValue[1];
                        if (_parameters.Length > 0)
                        {
                            parameters[0] = new RE2005.ParameterValue();
                            parameters[0].Label = "ControllerID";
                            parameters[0].Name = "ControllerID";
                            parameters[0].Value =  Dts.Variables["ControllerID"].Value.ToString();
                        }
                        
                        rsExec.SetExecutionParameters(parameters, "en-us");
                      
                        results = rsExec.Render(format, deviceInfo,
                            out extension, out encoding,
                            out mimeType, out warnings, out streamIDs);
                        using (FileStream stream = File.OpenWrite(oFilePath))
                        {
                            stream.Write(results, 0, results.Length);
                        }
                    }

    Thursday, May 24, 2012 7:10 AM
  • Hello Saikat,

    Thanks for your code. It is very clear. After reviewing the code, I suggest that you can add the following line into the script.

    rsExec.SetExecutionParameters(parameters, "en-us");
    rsExec.Timeout = 200000; //Add this statement to set the timeout.

    As default, the timeout of execution is 100000. For more information, please refer to the following article. http://msdn.microsoft.com/en-us/library/system.web.services.protocols.webclientprotocol.timeout.aspx

    Regards,

    Edward


    Edward Zhu

    TechNet Community Support

    • Marked as answer by Saikat_1983 Thursday, May 24, 2012 8:32 AM
    Thursday, May 24, 2012 8:18 AM
  • Thanks Edward for the solution.

    Thanks,

    Saikat

    Thursday, May 24, 2012 8:32 AM
  • thanks for the answer, works great
    Wednesday, February 18, 2015 7:52 PM