none
Error creating and modifying protection groups

    Question

  • When modifying or creating a new protection group I periodically get a DPM 945 event with this text:

    <FatalServiceError><__System><ID>19</ID><Seq>27</Seq><TimeCreated>1/6/2012 4:54:22 AM</TimeCreated><Source>DpmThreadPool.cs</Source><Line>163</Line><HasError>True</HasError></__System><ExceptionType>SqlException</ExceptionType><ExceptionMessage>Cannot insert the value NULL into column 'owner_sid', table 'msdb.dbo.sysjobs'; column does not allow nulls. INSERT fails.

    The statement has been terminated.</ExceptionMessage><ExceptionDetails>System.Data.SqlClient.SqlException: Cannot insert the value NULL into column 'owner_sid', table 'msdb.dbo.sysjobs'; column does not allow nulls. INSERT fails.

    The error seems to have the following pattern:
    1. I log on and launch the MMC.  Modification of the protection group works.
    2. Try to do a second modification and the error occurs.
    3. Log out and log back in, relaunch the MMC and I can modify the protection group. 
    Seems like a bug?


    Rob
    • Moved by Larry Yin Wednesday, March 28, 2012 10:24 PM (From:DPM 2012 Beta - Locked)
    Friday, January 06, 2012 5:20 AM

Answers

  • This issue seems to only occur when the SQL Server instance is not the one that DPM installs.  I gave up and just used the one provided as part of the install and all my issues went away.


    Rob

    • Marked as answer by ip-rob Thursday, March 01, 2012 4:18 AM
    Thursday, March 01, 2012 4:18 AM

All replies

  • I cannot confirm this path right now but basically the accounts used for SQL Server in the registry currently have Username@domain syntax, but the syntax must be Domain\Username.

    Open registry editor and navigate to the HKLM\Software\Microsoft\Microsoft DPM\setup.  There will two entries that hold the SQL Account name, change the syntax to Domain\Username, then reboot the server.

    PS: You can add the exact path and registry entry names so other users can benefit once you resolve the issue.

     


    Regards, Mike J. [MSFT] This posting is provided "AS IS" with no warranties, and confers no rights.
    Friday, January 06, 2012 1:50 PM
    Moderator
  • That was also suggested in this posting ( http://social.technet.microsoft.com/Forums/en-US/dataprotectionmanager/thread/728dff40-1292-41f7-b4c0-7faef326844a/).  It does not work.  

    The other thing is that logging out and logging back in seems to resolve the issue consistently.


    Rob
    Friday, January 06, 2012 1:59 PM
  • The problem is that we cannot get the security ID for that sql account, something is blocking the enumeration of the SID, so it's blank and we fail trying to update schedules for jobs.  Not sure how to trace inquiring about that account outside of DPM.  There is a utility called getsid.exe - maybe you can created the following batch file to enumerate that user over and over and see if it ever fails.

    cls
    echo on
    :again
    getsid Microsoft$DPM$Acct 
    IF %errorlevel% NEQ 0 goto Error
    goto again
    :Error
    Time /T

     

    You can also run Sysinternals process monitor and see if we ever have trouble reading the registry settings for that user account under  HKLM\software\microsoft\microsoft dpm\setup 

    Monitor SchedulerJobOwnerName and SqlAgentAccountName values.


    Regards, Mike J. [MSFT] This posting is provided "AS IS" with no warranties, and confers no rights.
    Friday, January 06, 2012 3:30 PM
    Moderator
  • There is no problem getting the sid.  I used the powershell method documented here ( http://www.christiano.ch/wordpress/2009/08/26/powershell-get-sid-from-ad-active-directory-user-group-using-powershell/) and was able to get the SID of the SQL user account even when DPM could not modify a protection group.

    If it was a problem getting the SID then why would it only happen when I modify a protection group within DPM a second time?  Further, I log out and log back in and the problem goes away?  I believe this happens primarily when an Exchange database is in the protection group although I have not fully tested that hypothesis.

    Outside DPM, getting the SID works fine.  Within DPM, getting the SID fails the SECOND time the protection group is modified (always works on the first time).  Sounds more like a DPM issue than anything else.

    Also, SQL Server Management Studio never has an issue logging in as the SQL account even when DPM cannot modify the protection group.


    Rob
    Friday, January 06, 2012 4:12 PM
  • OK - please try this:

    You can also run Sysinternals process monitor and see if we ever have trouble reading the registry settings for that user account under  HKLM\software\microsoft\microsoft data ptotection manager\setup 

    Monitor SchedulerJobOwnerName and SqlAgentAccountName values and see if there is any difference between working and non-working senario.


    Regards, Mike J. [MSFT] This posting is provided "AS IS" with no warranties, and confers no rights.
    Friday, January 06, 2012 4:22 PM
    Moderator
  • I can confirm that this occurs in the release candidate.  It only occurs in the following scenarios that I've tested.

     

    1. It is the second time a protection group has been modified.  It always works the first time.

    2. The protection group must have an Exchange component that it is protecting.  The modification may not be related to Exchange but the protection group must have a protected Exchange database.  The error does not occur if the protection group is only volumes or shares.

     

    It does not appear to have anything to do with the registry key.  


    Rob
    Wednesday, January 18, 2012 5:52 PM
  • In further testing with the Release Candidate...here is what is happening:

     

    1. Any change  to a protection group or creating a new one causes the error.

    2. It does not happen the first time when modifying a protection group.  Only subsequent modifications.

    3. It happens with protection groups with and without Exchange, a change from my earlier statement.

     

    Here are the event logs that are generated:

    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: 5 Schedules removed: 0 Schedules updated: 0.  

     

    Problem Details:

    <ConsistencyCheck><__System><ID>26</ID><Seq>15</Seq><TimeCreated>1/20/2012 6:56:13 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

    ----------------------
    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: 10 Schedules updated: 0.  
    Problem Details:
    <ConsistencyCheck><__System><ID>26</ID><Seq>1228</Seq><TimeCreated>1/20/2012 7:40:18 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
    ----------------------
    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>1236</Seq><TimeCreated>1/20/2012 7:40:29 PM</TimeCreated><Source>DpmThreadPool.cs</Source><Line>163</Line><HasError>True</HasError></__System><ExceptionType>SqlException</ExceptionType><ExceptionMessage>Cannot insert the value NULL into column 'owner_sid', table 'msdb.dbo.sysjobs'; column does not allow nulls. INSERT fails.
    The statement has been terminated.</ExceptionMessage><ExceptionDetails>System.Data.SqlClient.SqlException: Cannot insert the value NULL into column 'owner_sid', table 'msdb.dbo.sysjobs'; column does not allow nulls. INSERT fails.
    The statement has been terminated.
       at System.Data.SqlClient.SqlConnection.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 Microsoft.Internal.EnterpriseStorage.Dls.DB.SqlRetryCommand.ExecuteNonQuery()
       at Microsoft.Internal.EnterpriseStorage.Dls.Scheduler.SqlAgentHelper.AddJob(String jobName, String jobOwner, String CategoryName)
       at Microsoft.Internal.EnterpriseStorage.Dls.Scheduler.SqlAgentHelper.RegisterSchedule(Schedule schedule)
       at Microsoft.Internal.EnterpriseStorage.Dls.Scheduler.RegisterScheduleHelper.PerformDBOperation()
       at Microsoft.Internal.EnterpriseStorage.Dls.Scheduler.RegisterScheduleHelper.Execute(SqlContext sqlContext)
       at Microsoft.Internal.EnterpriseStorage.Dls.Scheduler.SchedulerImpl.Register(SqlContext sqlContext, String scheduleXml)
       at Microsoft.Internal.EnterpriseStorage.Dls.Intent.ScheduleTranslator.CreateScheduleDefinition(String jobDefinitionId, RecurrenceType[] scheduleRecurrances)
       at Microsoft.Internal.EnterpriseStorage.Dls.Intent.ScheduleTranslator.ScheduleJobDefinition(JobTranslator jobTranslator)
       at Microsoft.Internal.EnterpriseStorage.Dls.Intent.ScheduleTranslator.ScheduleReplicationJob(JobTranslator jobTranslator, BackupTypeType backupType, Boolean scheduleOnlyForApplications)
       at Microsoft.Internal.EnterpriseStorage.Dls.Intent.ScheduleTranslator.ScheduleFullDeltaReplicationJobForApp()
       at Microsoft.Internal.EnterpriseStorage.Dls.Intent.ProtectedGroupTranslator.UpdateJobDefinitions()
       at Microsoft.Internal.EnterpriseStorage.Dls.Intent.ProtectedGroupTranslator.TranslateGroup(IMCatalogType IMCatalogXmlPassed, 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)</ExceptionDetails></FatalServiceError>
    the message resource is present but the message is not found in the string/message table


    Rob
    Friday, January 20, 2012 7:44 PM
  • This issue seems to only occur when the SQL Server instance is not the one that DPM installs.  I gave up and just used the one provided as part of the install and all my issues went away.


    Rob

    • Marked as answer by ip-rob Thursday, March 01, 2012 4:18 AM
    Thursday, March 01, 2012 4:18 AM
  • Hi Rob,

    We seem to bee experiencing the same issue after upgrading an existing DPM 2010 server to 2012.  Any extra info you can provide on the steps you performed to fix this? 

    Friday, April 20, 2012 8:31 AM
  • I didn't fix it.  I was able to avoid the problem by letting the DPM installation set up the SQL instance.  I'm not sure how you would address it in an upgrade scenario.  Sorry I can't be more help. 


    Rob

    Friday, April 20, 2012 12:35 PM
  • Hello all,

    I have the same issue with DPM 2012 SP1 RU1. Accounts already set to domain\username. Database in my case is hosted locally and setup by the DMP setup. So I don't know what I can do to fix this. The error occurs for instance when installing agents. These installs fail (due to?) during this crash.

    Regards,

    Stephan van der Plas


    You know you're an engineer when you have no life and can prove it mathematically

    Friday, March 15, 2013 4:02 PM
  • Hello all,

    I have the same issue with DPM 2012 SP1 RU1. Accounts already set to domain\username. Database in my case is hosted locally and setup by the DMP setup. So I don't know what I can do to fix this. The error occurs for instance when installing agents. These installs fail (due to?) during this crash.

    Regards,

    Stephan van der Plas


    You know you're an engineer when you have no life and can prove it mathematically

    Hello Stephan,

    Could you please confirm whether or not you were able  to fix this issue?, I´m experiencing the very same crash if I try to install agents from the DPM Adminstration Console so in case you found a workaround I´d really appreciate if you could share it.

    Thank you!



    Marcelo Estrada Molina MCP, MCTS, MCITP

    Friday, April 05, 2013 12:07 PM
  • No, not yet. I'm in the progress of building a new DPM 2012 environment and hope that works...

    You know you're an engineer when you have no life and can prove it mathematically

    Friday, April 05, 2013 1:11 PM
  • Hi

    I found this didn't get actually permanent fix, so below must be the solution.

    ERROR says : "Cannot insert the value NULL into column 'owner_sid', table 'msdb.dbo.sysjobs'; column does not allow nulls. INSERT fails."

    The issue is SQL server collation, which is creating case sensitivity (It might be Collation is Latin1_General_BIN )

    Please refer : http://saurabhsinhainblogs.blogspot.in/2012/06/hi-all-today-we-faced-below-error-while.html

    http://blogs.technet.com/b/dpm/archive/2012/01/30/fix-the-dpm-console-crashes-and-logs-event-id-945-when-making-any-changes.aspx


    Thanks

    Saurabh Sinha

    http://saurabhsinhainblogs.blogspot.in/

    Please click the Mark as answer button and vote as helpful if this reply solves your problem




    Thursday, January 30, 2014 9:40 AM