public FiberTl1Wrapper(string ipaddress, int port, string username, string password, int interval, string connstr, int telnetTimeout, Encoding omcEncoding, EventWaitHandle handle, ManuCommandsBuilder commBuilder, WatchDog.IWatchDog dog) : base(ipaddress, port, username, password, interval, connstr, telnetTimeout, omcEncoding, handle, commBuilder, dog) { }
protected void Init() { SQLUtil.s_conn = m_Connstr; m_omc = SQLUtil.GetOMCInfo(m_Connstr, m_SvrID); m_condition = string.Format("where city='{0}' and manufacturer='{1}' and omcName='{2}'", m_omc.Omc.City, m_omc.Omc.Manufacturer, m_omc.Omc.OmcName); InitCommandBuilder();//对bell,实际调用的是HGU_Bell_Adapter.InitCommandBuilder m_tasks = new Queue <Task>(); m_oltOfflineTasks = new Queue <Task>(); WatchDog.WatchDogFactory.Instance().CreateWatchDogsFromFile("watchdog.xml"); m_dog = WatchDog.WatchDogFactory.Instance().GetWatchDog(Name, Name); m_loginStr = m_commBuilder.GetLoginStr(m_omc.User, m_omc.Pwd); m_logoutStr = m_commBuilder.GetLogoutStr(m_omc.User); m_idleHandles[0] = new AutoResetEvent(false); m_idleHandles[1] = new AutoResetEvent(false); m_idleHandles[2] = new AutoResetEvent(false); m_idleHandles[3] = new AutoResetEvent(false); InitTl1Client();//对bell而言,实际调用的是HGU_Bell_Adapter.InitTl1Client SubscribeTl1(m_tl1Clients[0]); SubscribeTl1(m_tl1Clients[1]); SubscribeTl1(m_tl1Clients[2]); SubscribeTl1(m_tl1Clients[3]); }
private void DoWork(WatchDog.IWatchDog dog) { GetReplyBossMsg("vTaskReplyBossMsg", ReplyType.NormalTask); GetReplyBossMsg("vRollbackTaskReplyBossMsg", ReplyType.RollbackTask); GetReplyBossMsg("vNetDelayReplyBossMsg", ReplyType.NetInterrupt); if (dog != null) { dog.Feed(); } }
virtual protected void _OMCDBRetriever(object para) { string omcName = para as string; string omcConn = ""; lock (m_OMCAddresses) { if (m_OMCAddresses.ContainsKey(omcName)) { omcConn = m_OMCAddresses[omcName]; } else { return; } } try { m_StopPrivilege.AcquireReaderLock(-1); WatchDog.IWatchDog dog = WatchDog.WatchDogFactory.Instance().GetWatchDog(Name, omcName); try { SendStateChange(omcName, "运行"); } catch { } SendLog("正在检查:" + Name + "的" + omcName + "的告警数据一致性..."); try { /// 检查活动告警的一致性 _checkActiveConsistency(omcName, omcConn); if (dog != null) { dog.Feed(); } /// 检查TK网管活动告警的一致性 _checkNMActiveConsistency(omcName, omcConn); /// 检查历史告警的一致性 _checkResumeConsistency(omcName, omcConn); if (dog != null) { dog.Feed(); } /// 清除所有网管告警 ClearNMAlarm(omcName, Constants.MO_PROCESS, Constants.TKALM_PROCESSALM, DateTime.Now); } catch (Exception ex) { RaiseNMAlarm(omcName, Constants.MO_PROCESS, Constants.TKALM_PROCESSALM, ex.Message, DateTime.Now); SendLog(ex.ToString()); } finally { SendLog("检查完毕:" + Name + "的" + omcName + "的告警数据一致性."); } while (PendingRunFlag == 1) { try { //AdapterStateReport(AdapterStatus.Working, null); SendLog("开始获取" + omcName + "的新增告警"); _getNewActiveAlarms(omcName, omcConn); if (dog != null) { dog.Feed(); } if (PendingRunFlag == 0) { ClearNMAlarm(omcName, Constants.MO_PROCESS, Constants.TKALM_PROCESSALM, DateTime.Now); break; } else { Thread.Sleep(0); } SendLog("开始检查" + omcName + "的活动告警状态"); _clearStalledActiveAlarms(omcName, omcConn); if (dog != null) { dog.Feed(); } if (PendingRunFlag == 0) { ClearNMAlarm(omcName, Constants.MO_PROCESS, Constants.TKALM_PROCESSALM, DateTime.Now); break; } else { Thread.Sleep(0); } SendLog("开始获取" + omcName + "的瞬断告警"); _fetchTransientAlarms(omcName, omcConn); if (dog != null) { dog.Feed(); } if (PendingRunFlag == 0) { ClearNMAlarm(omcName, Constants.MO_PROCESS, Constants.TKALM_PROCESSALM, DateTime.Now); break; } } catch (Exception ex) { RaiseNMAlarm(omcName, Constants.MO_PROCESS, Constants.TKALM_PROCESSALM, ex.Message, DateTime.Now); SendLog(ex.ToString()); } //AdapterStateReport(AdapterStatus.Running, null); int i = m_Interval % 1000; for (; i < m_Interval; i += 1000) { if (Interlocked.Read(ref m_PendingRun) == 0) { break; } Thread.Sleep(1000); try { if (i % 60 == 0) { if (dog != null) { dog.Feed(); } } } catch { } } } } finally { m_StopPrivilege.ReleaseReaderLock(); try { SendStateChange(omcName, "停止"); } catch { } } }
protected override void _OMCDBRetriever(object para) { omcName = para as string; string omcConn = ""; lock (m_OMCAddresses) { if (m_OMCAddresses.ContainsKey(omcName)) { omcConn = m_OMCAddresses[omcName]; } else { return; } } try { m_StopPrivilege.AcquireReaderLock(-1); WatchDog.IWatchDog dog = WatchDog.WatchDogFactory.Instance().GetWatchDog(Name, omcName); while (PendingRunFlag == 1) { try { DoWork(dog); if (dog != null) { dog.Feed(); } if (PendingRunFlag == 0) { ClearNMAlarm(omcName, Constants.MO_PROCESS, Constants.TKALM_PROCESSALM, DateTime.Now); break; } else { Thread.Sleep(0); } } catch (Exception ex) { RaiseNMAlarm(omcName, Constants.MO_PROCESS, Constants.TKALM_PROCESSALM, ex.Message, DateTime.Now); SendLog(ex.ToString()); } int i = m_Interval % 1000; for (; i < m_Interval; i += 1000) { if (Interlocked.Read(ref m_PendingRun) == 0) { break; } Thread.Sleep(1000); } } } finally { m_StopPrivilege.ReleaseReaderLock(); } }