/[projects]/dao/DaoMqPump2/MQFilter/FilterController.cs
ViewVC logotype

Diff of /dao/DaoMqPump2/MQFilter/FilterController.cs

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2171 by torben, Fri May 16 21:50:17 2014 UTC revision 2172 by torben, Sat May 17 10:53:58 2014 UTC
# Line 83  namespace MQFilter Line 83  namespace MQFilter
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()
# Line 105  namespace MQFilter Line 98  namespace MQFilter
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    
# Line 133  namespace MQFilter Line 126  namespace MQFilter
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                              }                              }
# Line 155  namespace MQFilter Line 147  namespace MQFilter
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                              {                              {
# Line 211  namespace MQFilter Line 203  namespace MQFilter
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    
# Line 267  namespace MQFilter Line 248  namespace MQFilter
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    

Legend:
Removed from v.2171  
changed lines
  Added in v.2172

  ViewVC Help
Powered by ViewVC 1.1.20