When there is an increase in the number of requests made to the server, some connections get a timeout error and are not processed. The following error is shown in logs:
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.
- Access to the DNN file structure
The maximum number of connections configured in the server is reached, causing a rejection to all new connections. This limit is usually reached due to a high number of intensive queries with long completion time.
Note: The default number of connections configured on the server is 100.
Confirm that you are having a connection pool timeout issue by searching for the error described in the Overview section in the following log file:
- If the error was found, open the web.config file located in the website root folder.
- Add the parameter Max Pool Size=XXX in the connection string, replacing XXX for your desired value.
Your connection string should look like this if XXX= 200.
<add name="SiteSqlServer" connectionString="Data Source=localhost;Initial Catalog=dbname;User ID=dbuser;Password=dbpassword;Max Pool Size=200" providerName="System.Data.SqlClient" />
To test that this change has alleviated the issue:
- Monitor the system logs located in the SiteRoot/Portals/_default/logs folder mentioned in to confirm that the error is no longer appearing after the change.
If the site uses Liquid Content and/or Forms, then it will lose the connection to the DNN Cloud Services because tenant ID is determined as a derivative of database connection string. In such case it is needed to ask Support to move the cloud data to a new tenant.
Please sign in to leave a comment.