83 |
} |
} |
84 |
|
|
85 |
|
|
86 |
private Hashtable getConnectionProperties() |
|
|
{ |
|
|
Hashtable connProperties = new Hashtable(); |
|
|
connProperties.Add(MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES_CLIENT); |
|
|
connProperties.Add(MQC.HOST_NAME_PROPERTY, mqHost); |
|
|
connProperties.Add(MQC.CHANNEL_PROPERTY, mqChannel); |
|
|
return connProperties; |
|
|
} |
|
87 |
|
|
88 |
|
|
89 |
public void transportAllMessages() |
public void transportAllMessages() |
98 |
try |
try |
99 |
{ |
{ |
100 |
//MQ options |
//MQ options |
101 |
Hashtable connProps = getConnectionProperties(); |
Hashtable connProps = MQHelper.getConnectionProperties(mqHost, mqChannel); |
102 |
int openInputOptions = MQC.MQOO_INPUT_AS_Q_DEF + MQC.MQOO_FAIL_IF_QUIESCING; |
int openInputOptions = MQC.MQOO_INPUT_AS_Q_DEF + MQC.MQOO_FAIL_IF_QUIESCING; |
103 |
int openOutputOptions = MQC.MQOO_OUTPUT + MQC.MQOO_FAIL_IF_QUIESCING; |
int openOutputOptions = MQC.MQOO_OUTPUT + MQC.MQOO_FAIL_IF_QUIESCING; |
104 |
|
|
126 |
queueIndbakke.Get(mqMsg, mqGetMsgOpts); |
queueIndbakke.Get(mqMsg, mqGetMsgOpts); |
127 |
if (mqMsg.Format.CompareTo(MQC.MQFMT_STRING) == 0) |
if (mqMsg.Format.CompareTo(MQC.MQFMT_STRING) == 0) |
128 |
{ |
{ |
129 |
string saltiiString = mqMsg.ReadString(mqMsg.MessageLength); |
string salt2String = mqMsg.ReadString(mqMsg.MessageLength); |
130 |
//System.Console.WriteLine(msgString); |
//System.Console.WriteLine(msgString); |
131 |
|
|
132 |
|
|
133 |
// Hvis transaktionen starter med et ? er det ikke en gyldig transaktion |
// validér at headeren er gyldig |
134 |
// validér ligeledes at headeren er gyldig |
if ( Salt2Helper.validateSalt2Header(salt2String) == false) |
|
if (saltiiString.StartsWith("?") || Salt2Helper.validateSalt2Header(saltiiString) == false) |
|
135 |
{ |
{ |
136 |
string discarded_filename = Logfile.getLogFilename(LogfileType.LogTransactions, logDirectory, "filter"); |
string discarded_filename = Logfile.getLogFilename(LogfileType.LogTransactions, logDirectory, "filter"); |
137 |
using (StreamWriter discardedlog = new StreamWriter(discarded_filename, true)) |
using (StreamWriter discardedlog = new StreamWriter(discarded_filename, true)) |
138 |
{ |
{ |
139 |
discardedlog.WriteLine(Logfile.getNowString() + " " + saltiiString); |
discardedlog.WriteLine(Logfile.getNowString() + " " + salt2String); |
140 |
} |
} |
141 |
continue; //gå frem til at tage næste transaktion fra køen |
continue; //gå frem til at tage næste transaktion fra køen |
142 |
} |
} |
147 |
MQMessage msg = new MQMessage(); |
MQMessage msg = new MQMessage(); |
148 |
msg.Format = MQC.MQFMT_STRING; |
msg.Format = MQC.MQFMT_STRING; |
149 |
msg.CharacterSet = 1252; |
msg.CharacterSet = 1252; |
150 |
msg.WriteString(saltiiString); |
msg.WriteString(salt2String); |
151 |
|
|
152 |
Salt2Header header = Salt2Helper.parseHeader(saltiiString); |
Salt2Header header = Salt2Helper.parseHeader(salt2String); |
153 |
queueMysql.Put(msg, pmo); |
queueMysql.Put(msg, pmo); |
154 |
if (saveForLater(header)) |
if (saveForLater(header)) |
155 |
{ |
{ |
203 |
} |
} |
204 |
finally |
finally |
205 |
{ |
{ |
206 |
closeQueue(queueIndbakke); |
MQHelper.closeQueueSafe(queueIndbakke); |
207 |
closeQueue(queueMysql); |
MQHelper.closeQueueSafe(queueMysql); |
208 |
closeQueue(queueDimaps); |
MQHelper.closeQueueSafe(queueDimaps); |
209 |
closeQueue(queueStore); |
MQHelper.closeQueueSafe(queueStore); |
210 |
|
|
211 |
|
MQHelper.closeQueueManagerSafe(mqMgr); |
|
if (mqMgr != null && mqMgr.IsOpen) |
|
|
{ |
|
|
try |
|
|
{ |
|
|
mqMgr.Close(); |
|
|
} |
|
|
catch (Exception e) |
|
|
{ |
|
|
Console.WriteLine("Error cleaning up qmgr " + e.Message); |
|
|
} |
|
|
} |
|
212 |
} |
} |
213 |
} |
} |
214 |
|
|
248 |
return false; |
return false; |
249 |
} |
} |
250 |
|
|
|
private void closeQueue(MQQueue queue) |
|
|
{ |
|
|
if (queue != null && queue.IsOpen) |
|
|
{ |
|
|
try |
|
|
{ |
|
|
queue.Close(); |
|
|
} |
|
|
catch (Exception e) |
|
|
{ |
|
|
Console.WriteLine("Error cleaning up queue " + e.Message); |
|
|
} |
|
|
} |
|
|
|
|
|
} |
|
251 |
|
|
252 |
|
|
253 |
|
|