When reconciling FNMS where partitioned VM's have been inventoried the reconcile fails with a Primary Key error.
The FNMS Reconcile is failing with a Primary Key violation, when attempting to reconcile partitioned VM's. The following error is found in the log for the import task:
2018-02-09 02:01:36,217 [INFO ] Released application lock Reader_03127814-ccfa-4ddb-a84f-b4d4530db456_Computer_ALL 2018-02-09 02:01:36,217 [ERROR] System.Data.SqlClient.SqlException (0x80131904): Violation of PRIMARY KEY constraint 'PK__#Partiti__2EBD97F6761070AE'. Cannot insert duplicate key in object 'dbo.#PartitionHosts'. The duplicate key value is (164445). The statement has been terminated. Found 0 Computers in the source database created from partition inventory Found 1341 Computers in the source database with hardware inventory history at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async, Int32 timeout, Boolean asyncWrite) at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry) at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() at ManageSoft.Compliance.Importer.Logic.XML.ExecuteOnSource.ProcessStep(IExecutionContext context) at ManageSoft.Compliance.Importer.Logic.XML.Reader.Execute(IExecutionContext context) at ManageSoft.Compliance.Importer.Logic.ActionExecuter.ReaderExecuter.ExecuteSingleReader(Reader reader, Int32 procedureOrder, Version sourceDatabaseVersion) at ManageSoft.Compliance.Importer.Logic.ActionExecuter.ReaderExecuter.Execute() at ManageSoft.Compliance.Importer.Logic.ComplianceImporter.ProcessExecution(ComplianceReader p_ComplianceReader, Tenant p_Tenant, IExecutionContext p_Context) ClientConnectionId:05129553-1817-4aa3-81cd-613f6f083d07 Error Number:2627,State:1,Class:14
The cause of this issue is that key information is missing from a partition of one or multiple VM's attempting to be imported. The information typically missing from the partition is the instances serial number. When this information is missing the instances data cannot be imported in the FNMS IM database.
Steps To Reproduce
1. Create a partition in a VM. 2. Remove or do not set the partition to have a serial number. 3. Inventory the VM with FNMS. 4. Reconcile FNMS, and it will fail with a Primary Key error.
This is a known Bug that was tracked under FNMS-50268 The issue can be found in FNMS 2017 R2 and below, however the issue is fixed in FNMS 2017 R2 SP1 and above. Additionally the FNMS 2017 R2 SP1 patch can be downloaded from the PLC 2.0, in the customer community.
You must apply FNMS 2017 R2 SP1 or higher to resolve this issue.