Inventory import and license reconcile timeouts in FlexNet Manager Suite
An inventory import or license reconcile can fail with a timeout error similar to the following:
Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
This article explains the cause of the timeout and how to increase the timeout value.
Symptoms
The following error appears in the log file or compliance import window when an inventory import or reconcile fails because of a timeout:
FATAL: Import failed. Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)
at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
at ManageSoft.Database.DatabaseCommand.ExecuteNonQuery()
at ManageSoft.Database.Impl.DatabaseLayerBaseSql.Execute(CommandType p_CommandType, String p_CommandText, DatabaseParameter[] p_Parameters)
at ManageSoft.Database.Impl.DatabaseLayerBase.Execute(String p_StoredProcedure, DatabaseParameter[] p_Parameters)
at ManageSoft.Compliance.Database.Impl.Procedures.LicenseAssignmentResetToEasyLicenses()
at ManageSoft.Compliance.Importer.Procedures.ManageSoft.LicenseReconcile.RunSQLLicenseReconcile()
at ManageSoft.Compliance.Importer.Procedures.ManageSoft.LicenseReconcile.ReconcileLicenses()
Cause
By default, the compliance importer is set to run for approximately 10 minutes per procedure, and each import step can run for 2 hours.
If a particular procedure has a large amount of data to process, such as file evidence or usage data, it can time out and close the connection.
Resolution
You can set a manual timeout using the following process:
- Open the registry on the FNMP server.
- Navigate to the appropriate registry location:
- On 32-bit systems:
HKLM\Software\ManageSoft Corp\ManageSoft\Compliance\CurrentVersion - On 64-bit systems:
HKLM\Software\WOW6432Node\ManageSoft Corp\ManageSoft\Compliance\CurrentVersion - Create the following registry key:
- Type:
REG_DWORD - Name:
CommandTimeout - Value: Decimal value in seconds, for example, 28800 for 8 hours.
Change this value as required. For reference, 14,400 seconds is 4 hours and 28,800 seconds is 8 hours.
The next time you run the compliance import, it will use the new timeout value.