SSRS connection pooling between SSRS app and ReportServer database instance

Mike Clark 5 Reputation points
2025-07-24T14:50:19.04+00:00

We have an interesting issue. To keep things simple, we have a dedicated database server for the SSRS ReportServer database (SQL Server 2017) and two servers running the SSRS app. No other databases reside on this instance. A while back there were reports that reports would run slowly and eventually error out. Kibana logging showed that we were getting "max pool size was reached" errors.

We initially thought these were referring to the Max Pool Size set in the connection string of the datasource, but the error suggests its actually between the SSRS app code and the SSRS database instance housing the ReportServer database.

Throwing Microsoft.ReportingServices.Library.ReportServerDatabaseUnavailableException: , Microsoft.ReportingServices.Library.ReportServerDatabaseUnavailableException: The report server cannot open a connection to the report server database. A connection to the database is required for all requests and processing. ---> System.InvalidOperationException: Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached.

We built an agent job on the SSRS database server to capture the number of user connections and this error correlates with high user connections on the SSRS database.

We attempted to reproduce the issue in a development environment by running more than 500 reports at the same time, but we did not note the connections increasing on the SSRS database server. The development setup is different than our production setup however.

Our assumption is that the SSRS application is using the default value for the Max Pool Size between the application and the SSRS database. But we haven't found a way to change this in RSReportServer.config. We assumed that the Max Pool Size setting could be set within the encrypted connection string in the DSN, but we haven't found any documentation that supports that.

Question: Is it possible to change the Max Pool Size between SSRS app and SSRS database? What are some possible solutions? Do we need to scale horizontally?

SQL Server Reporting Services
SQL Server Reporting Services
A SQL Server technology that supports the creation, management, and delivery of both traditional, paper-oriented reports and interactive, web-based reports.
{count} vote

1 answer

Sort by: Most helpful
  1. Singam shetty Sri ganesh 80 Reputation points Microsoft External Staff Moderator
    2025-11-19T12:16:03.2366667+00:00

    Hello @Mike Clark,
    Thank you for posting your query.

    The connection pool size between the SSRS service and the ReportServer database is fixed at 768 connections per SSRS instance in native mode and cannot be changed (it’s a read-only property). Official documentation: https://learn.microsoft.com/en-us/sql/reporting-services/wmi-provider-library-reference/configurationsetting-property-connectionpoolsize?view=sql-server-ver16

    With your two SSRS servers you therefore have a hard limit of ~1,536 pooled connections in total. Once that’s reached, you get the “max pool size was reached” timeout you’re seeing.

    The practical fixes are:

    • Reduce demand first: enable report caching/snapshots, stagger or thin out subscription schedules, and optimize slow-running reports.
    • If you still hit the ceiling after those changes, add more SSRS front-end servers to the scale-out deployment each additional server gives you another 768 connections.
    0 comments No comments

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.