Submit a ticketCall us

AnnouncementsSystem Monitoring for Dummies

Tired of monitoring failures disrupting the system, application, and service? Learn the key monitoring concepts needed to help you create sophisticated monitoring and alerting strategies that can help you save time and money. Read the eBook.

Get your free eBook.

Home > Success Center > Network Performance Monitor (NPM) > NPM - Knowledgebase Articles > Multicast routing calculations cause database deadlocks

Multicast routing calculations cause database deadlocks

Table of contents


In order to determine multicast routing, NPM must determine the status of all multicast devices in a defined group. These devices may be spread across multiple pollers, and group members may change regularly as device use and stop using multicast channels. The database Insert, Update, and Delete operations that are required to update the database may cause database deadlocks. Due to their lower assigned priority, when deadlocks occur, operations required for multicast status calculations are dropped as the corresponding processes are canceled.


This issue can express itself via MSMQ backups and MSMQ freezing as its .mq files cannot add more info.


There are three possible solutions to address this issue:

  1. If you do not need to monitor multicast status, you can disable multicast status calculations, as follows:
    1. Run the following query against your SolarWinds database to delete all multicast pollers:

      DELETE FROM Pollers WHERE PollerType LIKE '%Multicast%'

    2. Run the following query against your SolarWinds database to update the NPM_Multicast_CountingGroupStatus procedure:

      ALTER PROCEDURE [dbo].[NPM_Multicast_CountingGroupStatus]

    3. If you want to enable multicast pollers, again, execute either of the following actions:
      • Enable pollers manually.
      • Initiate a 'lazy inventory' by running the following query against your SolarWinds database:
        Note: Restart the business service after running the following script.

        INSERT INTO dbo.[NodeSettings] (NodeID, SettingName, SettingValue)
        SELECT n.NodeID, 'NeedsInventory', 'MulticastRouting'
        FROM Nodes n
        WHERE n.ObjectSubType = 'SNMP' AND n.NodeID NOT IN (SELECT NodeID FROM dbo.[NodeSettings] WHERE SettingName = 'NeedsInventory' AND SettingValue = 'MulticastRouting')

  2. If you need to monitor multicast status, but you only need to use one (1) polling engine, upgrade to SolarWinds NPM version 10.6. In NPM 10.6, only one poller may write to the database at a time. This feature prevents database deadlocks due to multicast routing status calculations.
  3. If you need to monitor multicast status, and you need to use multiple polling engines, the deadlock issue will remain, even after a recommended upgrade to NPM 10.6. Using the non-locking stored procedures that are attached to this article may help some users.
Last modified