none
Adding clustered Hyper-V sources to secondary DPM 2012R2 server fails with SQL foreign key error RRS feed

  • Question

  • Have added Exchange, File server and SQL sources from primary DPM to secondary DPM without issue.

    I have reloaded the secondary DPM server from scratch but the problem was not resolved.
    DPM Version: 2012 R2 RU2 (4.2.1235.0)
    Hosts: 2012 R2 Update 1
    Hyper-V hosts: 2012 R2 Update 1
    Hyper-V VMs: 2003 SP2, 2008 R2 SP1, 2012 R2 Update 1
    DPM SQL: 2012 SP2

    Issue:

    When adding a clustered Hyper-V VM the console faults and the DPM Service crashes during the partition creation/initialization process. The following error is logged:

    The description for Event ID 945 from source MSDPM cannot be found. Either the component that raises this event is not installed on your local computer or the installation is corrupted. You can install or repair the component on the local computer.

    If the event originated on another computer, the display information had to be saved with the event.

    The following information was included with the event: 

    Unable to connect to the DPM database because of a general database failure.  Make sure that SQL Server is running and that it is configured correctly.

    Problem Details:
    <FatalServiceError><__System><ID>19</ID><Seq>2596</Seq><TimeCreated>7/23/2014 9:04:16 PM</TimeCreated><Source>DpmThreadPool.cs</Source><Line>163</Line><HasError>True</HasError></__System><ExceptionType>SqlException</ExceptionType><ExceptionMessage>The UPDATE statement conflicted with the FOREIGN KEY constraint "FK_tbl_IM_ProtectedObject_tbl_AM_Server". The conflict occurred in database "DPMDB_DPM2", table "dbo.tbl_AM_Server", column 'ServerId'.
    The statement has been terminated.</ExceptionMessage><ExceptionDetails>System.Data.SqlClient.SqlException (0x80131904): The UPDATE statement conflicted with the FOREIGN KEY constraint "FK_tbl_IM_ProtectedObject_tbl_AM_Server". The conflict occurred in database "DPMDB_DPM2", table "dbo.tbl_AM_Server", column 'ServerId'.
    The statement has been terminated.
       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&amp; dataReady)
       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, Int32 timeout, Task&amp; task, Boolean asyncWrite, SqlDataReader ds)
       at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task&amp; task, Boolean asyncWrite)
       at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite)
       at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
       at Microsoft.Internal.EnterpriseStorage.Dls.DB.SqlRetryCommand.ExecuteNonQuery()
       at Microsoft.Internal.EnterpriseStorage.Dls.Intent.IMCatalogDB.ExecuteNonQuery(SqlRetryCommand cmd, String sourceFunction)
       at Microsoft.Internal.EnterpriseStorage.Dls.Intent.ProtectedObjectDB.Update(DbContext dbContext)
       at Microsoft.Internal.EnterpriseStorage.Dls.Intent.IntentManager.PersistProtectedObject(IMCatalogType IMCatalogPersist, IMCatalogDB catalogDB)
       at Microsoft.Internal.EnterpriseStorage.Dls.Intent.IntentManager.PersistProtectedGroup(IMCatalogType IMCatalogPersist, IMCatalogDB catalogDB, String intentCatalogXml)
       at Microsoft.Internal.EnterpriseStorage.Dls.Intent.ProtectedGroupTranslator.TranslateGroup(IMCatalogType IMCatalogXmlPassed, String intentCatalogXml)
       at Microsoft.Internal.EnterpriseStorage.Dls.Intent.IntentTranslator.ConfigureProtectedGroup(String intentCatalogXml)
       at Microsoft.Internal.EnterpriseStorage.Dls.Engine.CIntentServices.ConfigureProtectedGroup(UInt16* bstrIMCatalogXml)
       at Microsoft.Internal.EnterpriseStorage.Dls.Engine.CCoreServices.ConfigureProtectedGroup(CCoreServices* , UInt16* bstrIMCatalogXml, tagSAFEARRAY** exceptionResult)
    ClientConnectionId:49847f8d-602e-4e87-bbe3-c593e99065aa</ExceptionDetails></FatalServiceError>


    the message resource is present but the message is not found in the string/message table.

    The following error is also logged:

    The description for Event ID 955 from source MSDPM cannot be found. Either the component that raises this event is not installed on your local computer or the installation is corrupted. You can install or repair the component on the local computer.

    If the event originated on another computer, the display information had to be saved with the event.

    The following information was included with the event: 

    The consistency check resulted in the following changes to SQL Server Agent schedules: Schedules added: 0 Schedules removed: 22 Schedules updated: 0.  

    Problem Details:
    <ConsistencyCheck><__System><ID>26</ID><Seq>2254</Seq><TimeCreated>7/23/2014 9:02:11 PM</TimeCreated><Source>SchedulerImpl.cs</Source><Line>719</Line><HasError>True</HasError></__System><Tags><JobSchedule /></Tags></ConsistencyCheck>


    the message resource is present but the message is not found in the string/message table.

    Thursday, July 24, 2014 3:36 PM

Answers

  • Hi,

    I found some internal documentation that we had another customer hit that same error doing the same procedure you are doing.  The solution that worked for them was to remove and re-add the servers from the protection group on our primary server then try to add it to the protection group on the secondary server.

    If that does not work, please open a support ticket so we can diagnose the problem and try to get a code fix.


    Please remember to click “Mark as Answer” on the post that helps you, and to click “Unmark as Answer” if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread. Regards, Mike J. [MSFT] This posting is provided "AS IS" with no warranties, and confers no rights.

    Thursday, July 24, 2014 6:42 PM
    Moderator

All replies

  • Hi,

    I found some internal documentation that we had another customer hit that same error doing the same procedure you are doing.  The solution that worked for them was to remove and re-add the servers from the protection group on our primary server then try to add it to the protection group on the secondary server.

    If that does not work, please open a support ticket so we can diagnose the problem and try to get a code fix.


    Please remember to click “Mark as Answer” on the post that helps you, and to click “Unmark as Answer” if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread. Regards, Mike J. [MSFT] This posting is provided "AS IS" with no warranties, and confers no rights.

    Thursday, July 24, 2014 6:42 PM
    Moderator
  • That worked!

    Thanks

    Tuesday, July 29, 2014 12:24 PM