From 925ab619ead90124abdab6202d91980d992b1e11 Mon Sep 17 00:00:00 2001
From: ulysseskao <ulysseskao@gmail.com>
Date: Tue, 03 May 2016 19:33:17 +0800
Subject: [PATCH] add thread setting
---
CCSTrace/CCS/Object/AlarmData.cs | 98 +++++++++++++++++++++++++-----------------------
1 files changed, 51 insertions(+), 47 deletions(-)
diff --git a/CCSTrace/CCS/Object/AlarmData.cs b/CCSTrace/CCS/Object/AlarmData.cs
index 6ea8f2c..e8cd1e9 100644
--- a/CCSTrace/CCS/Object/AlarmData.cs
+++ b/CCSTrace/CCS/Object/AlarmData.cs
@@ -1,9 +1,10 @@
using System;
-
using System.Collections;
+using System.Collections.Generic;
using System.Data.OracleClient;
using System.Net;
using System.Net.Sockets;
+using CCSTrace.TPower.DMMS.Model.CCS;
using NLog;
namespace CCSTrace.CCS.Object
@@ -11,30 +12,34 @@
public class AlarmData
{
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
- private Hashtable _mTotalData = new Hashtable();
- private OracleConnection _connectionTpc;
- private OracleTransaction _transaction;
- public AlarmData(OracleConnection conn, OracleTransaction trx)
+ public static AlarmData Instance { get; } = new AlarmData();
+
+ private readonly Dictionary<int, ALARMIP> _totalAddrData = new Dictionary<int, ALARMIP>();
+
+ private AlarmData()
{
- _connectionTpc = conn;
- _transaction = trx;
+ }
+ public void Initialize(OracleConnection conn)
+ {
var sqlStmt = "SELECT DEPTID,IP1,IP2,IP_PATROL FROM CCS.ALARM_IP";
- OracleCommand command = new OracleCommand(sqlStmt, _connectionTpc, _transaction);
+ OracleCommand command = new OracleCommand(sqlStmt, conn);
OracleDataReader reader = command.ExecuteReader();
try
{
while (reader.Read())
{
- ArrayList tmp = new ArrayList();
- tmp.Add(Convert.ToInt32(reader["DEPTID"].ToString()));
- tmp.Add(reader["IP1"].ToString());
- tmp.Add(reader["IP2"].ToString());
- tmp.Add(reader["IP_Patrol"].ToString());
+ ALARMIP tmp = new ALARMIP
+ {
+ DEPTID = Convert.ToInt32(reader["DEPTID"].ToString()),
+ IP1 = reader["IP1"].ToString(),
+ IP2 = reader["IP2"].ToString(),
+ IPPATROL = reader["IP_Patrol"].ToString()
+ };
- _mTotalData.Add(Convert.ToInt32(reader["DeptID"].ToString()), tmp);
+ _totalAddrData.Add(tmp.DEPTID, tmp);
}
}
catch (Exception e)
@@ -84,27 +89,27 @@
return ssccode;
}
- private ArrayList GetIpAddress(int deptCode)
+ private ALARMIP GetIpAddress(int deptCode)
{
- return (ArrayList)_mTotalData[Convert.ToInt32(deptCode)];
+ return _totalAddrData[deptCode];
}
- public bool Alarm(string acceptNum, int dept)
+ public bool Alarm(OracleConnection conn, OracleTransaction trx, string acceptNum, int dept)
{
Logger.Info("開始Alarm...");
- Socket mClient;
- ArrayList ipAddressSet = GetIpAddress(GetSscCode(dept, Convert.ToInt32(DateTime.Now.DayOfWeek)));
+ Socket clientSocket;
+ ALARMIP alarmip = GetIpAddress(GetSscCode(dept, Convert.ToInt32(DateTime.Now.DayOfWeek)));
string ip1;
string ip2;
string ipPatrol;
System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
- if (ipAddressSet != null)
+ if (alarmip != null)
{
Logger.Info("已取得該部門所需通知的IP Address.");
- ip1 = ipAddressSet[1].ToString();
- ip2 = ipAddressSet[2].ToString();
- ipPatrol = ipAddressSet[3].ToString();
+ ip1 = alarmip.IP1;
+ ip2 = alarmip.IP2;
+ ipPatrol = alarmip.IPPATROL;
}
else
{
@@ -115,18 +120,18 @@
try
{
IPAddress serverIp = IPAddress.Parse(ip1);
- int serverPort = Convert.ToInt32(GlobalVariable.AlermPort);
+ var serverPort = Convert.ToInt32(GlobalVariable.AlermPort);
IPEndPoint iep = new IPEndPoint(serverIp, serverPort);
- mClient = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
- mClient.Connect(iep);
+ clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
+ clientSocket.Connect(iep);
byte[] byteMessage = encoding.GetBytes(acceptNum);
- mClient.Send(byteMessage);
- mClient.Shutdown(SocketShutdown.Both);
- mClient.Close();
- RecordAlarmIp(acceptNum, ip1);
+ clientSocket.Send(byteMessage);
+ clientSocket.Shutdown(SocketShutdown.Both);
+ clientSocket.Close();
+ RecordAlarmIp(conn, trx, acceptNum, ip1);
Logger.Info("已成功通知" + ip1 + " !");
return true;
}
@@ -138,18 +143,18 @@
try
{
IPAddress serverIp = IPAddress.Parse(ip2);
- int serverPort = Convert.ToInt32(GlobalVariable.AlermPort);
+ var serverPort = Convert.ToInt32(GlobalVariable.AlermPort);
IPEndPoint iep = new IPEndPoint(serverIp, serverPort);
- mClient = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
- mClient.Connect(iep);
+ clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
+ clientSocket.Connect(iep);
byte[] byteMessage = encoding.GetBytes(acceptNum);
- mClient.Send(byteMessage);
- mClient.Shutdown(SocketShutdown.Both);
- mClient.Close();
- RecordAlarmIp(acceptNum, ip2);
+ clientSocket.Send(byteMessage);
+ clientSocket.Shutdown(SocketShutdown.Both);
+ clientSocket.Close();
+ RecordAlarmIp(conn, trx, acceptNum, ip2);
Logger.Info("已成功通知" + ip2 + " !");
return true;
}
@@ -164,15 +169,15 @@
int serverPort = Convert.ToInt32(GlobalVariable.AlermPort);
IPEndPoint iep = new IPEndPoint(serverIp, serverPort);
- mClient = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
- mClient.Connect(iep);
+ clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
+ clientSocket.Connect(iep);
byte[] byteMessage = encoding.GetBytes(acceptNum);
- mClient.Send(byteMessage);
- mClient.Shutdown(SocketShutdown.Both);
- mClient.Close();
- RecordAlarmIp(acceptNum, ipPatrol);
+ clientSocket.Send(byteMessage);
+ clientSocket.Shutdown(SocketShutdown.Both);
+ clientSocket.Close();
+ RecordAlarmIp(conn, trx, acceptNum, ipPatrol);
Logger.Info("已成功通知" + ipPatrol + " !");
return true;
}
@@ -184,11 +189,11 @@
}
}
- private void RecordAlarmIp(string accNum, string ip)
+ private void RecordAlarmIp(OracleConnection conn, OracleTransaction trx, string accNum, string ip)
{
- string sqlStmt = "insert into eos.case_dispatch (acceptnum,alarmip) values('" + accNum + "','" + ip + "')";
+ string sqlStmt = "INSERT INTO EOS.CASE_DISPATCH (ACCEPTNUM,ALARMIP) VALUES('" + accNum + "','" + ip + "')";
- OracleCommand command = new OracleCommand(sqlStmt, _connectionTpc, _transaction);
+ OracleCommand command = new OracleCommand(sqlStmt, conn, trx);
try
{
@@ -198,7 +203,6 @@
catch (Exception e)
{
Logger.Error("recordAlarmIP Error." + e.Message);
- return;
}
finally
{
--
Gitblit v0.0.0-SNAPSHOT