Purpose
Customers with a large number of previous scan results and/or a slow or a heavily loaded SQL server may experience a failure when upgrading their Patch for Windows database from one version to another. This document is will provide a resolution for database upgrade issues where the root cause for the failure is a database connection timeout.
Symptoms
You receive a message such as the following within the GUI or a pop up window of the upgrade:
- Database conversion error
- Database connection timeout
- Failed to commit the database installation or upgrade
AND
The ST.DatabaseConfiguration.log may contain one of the following errors:
System.Data.SqlClient.SqlException: Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
DBInstallWizard.WizardFinishClick|Failed to commit or save the database installation.: A SQL Server query operation timed out. Consider increasing the command timeout in the configuration file.
SqlError message: 'Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.'
Cause
The database upgrade process may be taking longer than the default allotted timeout period, or the connection to the SQL server may be slow/unstable.
Resolution
There are two suggested steps to work around this issue:
1) The SQL transaction log may be significantly larger than necessary. Using SQL Server Management Studio, verify that the transaction log for your database is set to grow or has a max size setting that is large enough (we have seen 4GB databases require 12GB for logs). Do a FULL back up of the transaction log to force its truncation. This is a good practice to verify that enough free disk space is available to perform the upgrade process.
2) The database upgrade function may be timing out on a single command. The default command timeout is 30 minutes. This timeout is implemented to provide feedback in case the command is not responsive or hangs. However, in some environments altering tables with large amounts of data may require more than 30 minutes to complete.
If the upgrade failure was related to a timeout, this timeout value can be by running the installer with an extra parameter from command line as follows:
For instance: Patch for Windows 9.3.4510: "IvantiPatchForServers_9.3.4510.exe" /wi:"DBCOMMANDTIMEOUT=10800"
The value is in seconds (10800 equals 3 hours)
Affected Products
Patch for Windows 9.3+