Network Management
Orphaned Topology Connections Persist Despite Disabled Topology Pollers – SolarWinds Platform
This article provides information about an issue in the SolarWinds Platform where orphaned topology connections remain visible in Maps, Network Atlas and NPM Network Topology even after topology pollers (Layer 2 and Layer 3) are disabled. It outlines the cause and provides a workaround to resolve the issue.
First published date
Last published date
Overview
In certain scenarios, users may observe that topology connections continue to appear in SolarWinds Platform Maps, Network Atlas and NPM Network Topology widget despite having disabled the associated topology pollers (e.g., L2, L3, CDP, LLDP) for specific nodes.
This behavior results in outdated or unintended connections being displayed, which can lead to confusion and misrepresentation of the current network topology.
Attempts to remove these connections manually or through standard database maintenance procedures may prove ineffective, as the connections reappear after a short period.
Product section
Cause
The issue arises because disabling topology pollers for nodes does not automatically remove the previously collected topology data from the database. Consequently, the Topology Calculator continues to process this stale data, leading to the reappearance of outdated connections in Maps, Network Atlas and NPM Network Topology widget.
Resolution
This behavior is the result of a known bug in the product, where orphaned topology data is not automatically removed when topology pollers are disabled. A product improvement is planned in a future release to address this issue by automatically cleaning orphaned topology data during standard database maintenance. However, there is no specific release date available at this time.
Workaround: Use SQL Script for Topology Data Cleanup
To remove orphaned topology data for nodes that no longer have active topology pollers, run the SQL script below. This script identifies nodes with disabled topology pollers and deletes the associated stale topology records from the database.
⚠️ Important Note: Back up the SolarWinds Platform database before executing any direct database scripts.
- Connect to the SolarWinds Platform server.
- Open Database Manager from the SolarWinds Platform folder of the start menu.
- Select Add Orion Server and expand the SQL server in bold.
- Right-click the SolarWinds Platform database and select New query.
- Paste the below query and select Execute Query.
-- Scripts are not supported under any SolarWinds support program or service.
-- Scripts are provided AS IS without warranty of any kind. SolarWinds further
-- disclaims all warranties including, without limitation, any implied warranties
-- of merchantability or of fitness for a particular purpose. The risk arising
-- out of the use or performance of the scripts and documentation stays with you.
-- In no event shall SolarWinds or anyone else involved in the creation,
-- production, or delivery of the scripts be liable for any damages whatsoever
-- (including, without limitation, damages for loss of business profits, business
-- interruption, loss of business information, or other pecuniary loss) arising
-- out of the use of or inability to use the scripts or documentation.
/*
This script cleans the topology data for nodes that have the corresponding topology pollers disabled.
*/
-- L2 CDP data
DELETE dlt FROM NodeCiscoCdpEntries dlt
LEFT JOIN Pollers p ON
p.NetObjectID = dlt.NodeID
AND p.NetObjectType = 'N'
AND p.PollerType LIKE 'N.Topology_CDP.%'
WHERE p.NetObjectID IS NULL or p.Enabled = 0
-- L2 LLDP data
DELETE dlt FROM NodeLldpEntries dlt
LEFT JOIN Pollers p ON
p.NetObjectID = dlt.NodeID
AND p.NetObjectType = 'N'
AND p.PollerType LIKE 'N.Topology_LLDP.%'
WHERE p.NetObjectID IS NULL or p.Enabled = 0
-- L2 Bridge/CAM data
DELETE dlt FROM NodeL2Connections dlt
LEFT JOIN Pollers p ON
p.NetObjectID = dlt.NodeID
AND p.NetObjectType = 'N'
AND p.PollerType LIKE 'N.Topology_Layer2.%'
WHERE p.NetObjectID IS NULL or p.Enabled = 0
-- L3 ARP data
DELETE dlt FROM NodeL3Entries dlt
LEFT JOIN Pollers p ON
p.NetObjectID = dlt.NodeID
AND p.NetObjectType = 'N'
AND p.PollerType LIKE 'N.Topology_Layer3.%'
WHERE p.NetObjectID IS NULL or p.Enabled = 0
-- L3 Routing data
DELETE dlt FROM NodeL3RoutingData dlt
LEFT JOIN Pollers p ON
p.NetObjectID = dlt.NodeID
AND p.NetObjectType = 'N'
AND p.PollerType LIKE 'N.Topology_Layer3_IpRouting.%'
WHERE p.NetObjectID IS NULL or p.Enabled = 0
-- VLANs data
DELETE dlt FROM NodeVlans dlt
LEFT JOIN Pollers p ON
p.NetObjectID = dlt.NodeID
AND p.NetObjectType = 'N'
AND p.PollerType LIKE 'N.Topology_Vlans.%'
WHERE p.NetObjectID IS NULL or p.Enabled = 0
-- VLANs' Ports map
DELETE dlt FROM NodePortInterfaceMap dlt
LEFT JOIN Pollers p ON
p.NetObjectID = dlt.NodeID
AND p.NetObjectType = 'N'
AND p.PollerType LIKE 'N.Topology_PortsMap.%'
WHERE p.NetObjectID IS NULL or p.Enabled = 0
-- STP data
DELETE dlt FROM PortItems dlt
INNER JOIN STPRecords s ON dlt.STPRecordID = s.ID
LEFT JOIN Pollers p ON
p.NetObjectID = s.NodeID
AND p.NetObjectType = 'N'
AND p.PollerType LIKE 'N.Topology_STP.%'
WHERE p.NetObjectID IS NULL or p.Enabled = 0
DELETE dlt FROM STPRecords dlt
LEFT JOIN Pollers p ON
p.NetObjectID = dlt.NodeID
AND p.NetObjectType = 'N'
AND p.PollerType LIKE 'N.Topology_STP.%'
WHERE p.NetObjectID IS NULL or p.Enabled = 0