Пример #1
0
		private static ExchangeNetworkMap FetchInitializedMap()
		{
			ExchangeNetworkMap map = NetworkManager.GetMap();
			if (map == null)
			{
				NetworkManager.TraceError("NetworkMap has not yet been initialized. Sleeping for {0}ms", new object[]
				{
					NetworkManager.GetInitializationTimeoutInMsec()
				});
				Thread.Sleep(NetworkManager.GetInitializationTimeoutInMsec());
				map = NetworkManager.GetMap();
				if (map == null)
				{
					throw new DagNetworkManagementException(ReplayStrings.NetworkManagerInitError);
				}
			}
			return map;
		}
Пример #2
0
		private void ClusterNotificationThread()
		{
			if (this.RefreshClusterHandles())
			{
				this.TryDriveMapRefresh();
			}
			while (!this.m_shutdown)
			{
				Exception ex = null;
				try
				{
					AmConfig config = AmSystemManager.Instance.Config;
					if (!config.IsPAM && !config.IsSAM)
					{
						NetworkManager.TraceDebug("NetworkManager sleeping.  Not running in DAG role", new object[0]);
						Thread.Sleep(NetworkManager.GetInitializationTimeoutInMsec());
					}
					else if (this.RefreshClusterHandles())
					{
						this.MonitorEvents();
					}
					else
					{
						Thread.Sleep(NetworkManager.GetInitializationTimeoutInMsec());
					}
				}
				catch (ClusterException ex2)
				{
					ex = ex2;
				}
				catch (DataSourceTransientException ex3)
				{
					ex = ex3;
				}
				catch (DataSourceOperationException ex4)
				{
					ex = ex4;
				}
				catch (TransientException ex5)
				{
					ex = ex5;
				}
				catch (COMException ex6)
				{
					ex = ex6;
				}
				catch (Win32Exception ex7)
				{
					ex = ex7;
				}
				if (ex != null)
				{
					NetworkManager.TraceError("ClusterNotificationThread monitoring encountered an exception: {0}", new object[]
					{
						ex
					});
					ReplayEventLogConstants.Tuple_NetworkMonitoringError.LogEvent(ex.Message.GetHashCode().ToString(), new object[]
					{
						ex.ToString()
					});
				}
				if (!this.m_shutdown)
				{
					Thread.Sleep(1000);
				}
			}
			NetworkManager.TraceDebug("ClusterNotificationThread exiting", new object[0]);
		}