DPM 2016 – Modern Backup Storage (MBS) Volumes

An excellent feature of 2016 and not to be missed. Gone is the LDM limitation and the volume mess of 2012. This is by far the best improvement on the table for DPM.

I followed some guides to test – mounting 64tb of backup storage as drive letters to windows makes it a target for temporary storage – VERY IRRITATING INDEED

You will quickly find your DPM volume has attracted itself as a temporary dumping ground for hotfixes and patches. This is not acceptable.

To avoid this – simply create yourself a folder on C: – in this case ‘MountPoints’, create yourself two empty folders – then mount your backup storage in there – rather than assigning a drive letter.


Open DPM, refresh disks and click add – you will see the two volumes available for use.

Windows wont see them in it’s drive letter searches and thusly – they will remain clutter free and available for DPM use only!

As long as you make sure they have a volume label – SCOM will happily monitor the health of drives mounted in this manner.

Update – Aug 2017

Currently under UR2, we experience errors pertaining to DPM being unable to mount certain files under the mount points. It’s a known issue and current workaround is to also add a drive letter to the disks (can be added along side the mount point, no need to change anything else).

This should be resolved in further updates.


DPM 2016 – Installation – SQL 2016 SP1


Just a quick snippet from Technet as it’s easily overlooked. When installing DPM 2016 RTM, you need to make sure that SQL 2016 does NOT have SP1 installed.

Once DPM is installed and you have applied UR2, you can patch SQL to SP1.

Don’t forget to enable browser service, named pipes (for Library sharing) and clear all pending reboots…


DPM 2016 – UR2 – MMC console crashes – event ID 999

Once you are running DPM 2016 UR2 – you may experience console crashes (services unaffected) with event ID’s 999:

The description for Event ID 999 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:

An unexpected error caused a failure for process 'mmc'.  Restart the DPM process 'mmc'.
Problem Details:

19009/05/2017 13:29:28DpmThreadPool.cs163TrueNullReferenceExceptionObject reference not set to an instance of an object.System.NullReferenceException: Object reference not set to an instance of an object.

   at Microsoft.Internal.EnterpriseStorage.Dls.UI.ObjectModel.Inquiry.MultiDatasourceSizeInquiry.ResultUniquePath(InquiryPath junctionlessPath, InquiryPath startNodeRelativePath, String serverName)

   at Microsoft.Internal.EnterpriseStorage.Dls.UI.ObjectModel.Inquiry.MultiDatasourceSizeInquiry.ProcessResults(InquiryTaskInformation taskInfo)

   at Microsoft.Internal.EnterpriseStorage.Dls.UI.ObjectModel.Inquiry.MultiDatasourceSizeInquiry.OnInquiryResultsArrival(InquiryResult result)

   at Microsoft.Internal.EnterpriseStorage.Dls.UI.ObjectModel.Inquiry.MultiDatasourceSizeInquiry.rornTaskDef_TaskProgress(Object sender, EventMatchedEventArgs eventEntry)

   at Microsoft.Internal.EnterpriseStorage.Dls.EngineUICommon.RORN.RornTaskDef.Task_TaskProgress(Object sender, EventMatchedEventArgs e)

   at Microsoft.Internal.EnterpriseStorage.Dls.EventManagement.BaseEventFilter.Send(EventMatchedEventArgs args)

   at Microsoft.Internal.EnterpriseStorage.Dls.EventManagement.EventManager.PollingThreadProc(Object data)

   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)

   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)

   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)

   at System.Threading.ThreadHelper.ThreadStart(Object obj)

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

These occur when adding secondary protection (DPM to DPM) to an existing Protection Group, as soon as you reach the storage calculation screen – bang, MMC crashes.

The issue resides with objectmodel.dll (in the BIN directory) – a replacement from MS was supplied and immediately resolved the issue.

If this is the case, currently the fix exists as a private hotfix only and must be obtained by logging a call with MS support.

I have asked if it will be made public and will update the blog when I hear back.

Update 10 May 2017

Premier Support have advised that the fixed DLL will be part of a future UR pack, but could not confirm if it would be UR3 or 4. So my advice is you test your environment with a few machines and see if you encounter the error – if you do, contact support and request the fixed DLL before you proceed into full production use.