Problem: SCCM Database Replication Service is not working
Solution: Service Broker had been disabled on MSDB, causing SCCM DRM to fail
I was recently called in to assist with a large System Center Configuration Manager (SCCM) environment where the Database Replication Service (DRS) was not processing messages. As a SQL Server engineer, I’ve supported customer environments running SCCM for several years now and have helped to troubleshoot DRS issues in the past, but it is certainly not something I do on a regular basis. We were able to resolve it pretty quickly, but this was a new issue (to me) and one that wasn’t easily discoverable through internet searching by the customer.
Step 1 – Run RLA (Replication Link Analyzer) to find any errors
Interestingly, RLA reported “Issues Detected”, but all of the steps succeeded and reported success.
Step 2 - Run “spDiagDRS” to get a thorough description of DRS activity/components
When we ran spDiagDRS, I noticed that no messages had been processed in the past hour and that there were outgoing messages in the queue.
Step 3 - Given these results, I decided to run Profiler on two of the endpoints to capture the Service Broker events.
Profiler immediately highlighted the issue that "The broker is disabled in msdb"
Step 4 – Check if Service Broker is enabled in MSDB
Sure enough, Service Broker had been disabled in MSDB. In this case, it had been disabled when the customer restored MSDB from a backup the previous evening. Since Service Broker is disabled upon restore by default, this was the root cause of the DRS issue.
Step 5 – Run spDiagDRS again to verify success
After enabling Service Broker in MSDB, we ran spDiagDRS again and saw that the outgoing messages had been processed and everything was functioning as expected again.
This one turned out to be a pretty easy investigation, but one that I hadn't experienced before. If you end up stuck on DRS issues, the combo of spDiagDRS and Profiler capturing Service Broker events is a great start.
Sam Lester (MSFT)