Synchronization for multiple data sources

If you run a discovery that includes collector and SNMP data sources, or multiple collectors, you must synchronize the "Interrogating Devices" phase (phase 1) of the discovery across all of the data sources. Synchronization of phase 1 reduces the likelihood of excessive discovery cycling and ensures that the maximum amount of data is available during topology building. Synchronization capability is provided by the m_WaitForManagedProcs configuration setting. m_WaitForManagedProcs is set to 0 (off) by default, which is more suited to SNMP-only discoveries.

During phase 1 of an IP discovery, discovery waits by default up to 90 seconds between the discovery of one device and the next. If no further devices are found after 90 seconds, then the discovery moves into phase 2. This time delay is controlled by the m_NothngFndPeriod field in the disco.config discovery database table, and is ideal for SNMP discoveries in which entities do not all respond at the same time.

However, the behavior of collectors is different than SNMP. Collectors return all of their devices in one go, potentially after a comparatively long initial delay, during which the EMS is queried. Using only m_NothngFndPeriod when multiple collectors or collector and SNMP discoveries are run under the same domain can lead to undesired multiple discovery cycles. This effect happens because the interrogation phase delay between each collector can be far in excess of 90 seconds. This delay causes the discovery to continue to the next phase if the SNMP ping phase completed.

To ensure that data from all collectors in a multiple data source discovery is collected and stitched together in the same discovery cycle, you must configure the following fields in the disco.config discovery database table:
m_WaitForManagedProcs
Set this field to 1. This setting ensures that the discovery process remains in phase 1 until all the collectors finish processing data on their respective EMSs.
By default this field is set to 0. This setting means that when the first collector completes data processing and the number of seconds defined in the m_NothngFndPeriod field pass, then the discovery process moves to phase 2 without waiting for the other collectors to start processing.
m_ManagedWaitTimeOut
Applicable when m_WaitForManagedProcs is set to 1. This field defines the maximum time to wait for all collectors to complete retrieving data from their EMSs. This setting is effectively a fail-safe mechanism to cover the situation where one of the collectors never completes processing. Set this setting to the maximum value in seconds to wait for all collectors to complete data processing. When this timeout elapses, and the number of seconds defined in the m_NothngFndPeriod field pass, then the discovery process moves to phase 2.
By default, this value is set to 0, which means wait indefinitely.