/[projects]/dao/DaoMqPump2/DaoMqPump2/Transport.cs
ViewVC logotype

Diff of /dao/DaoMqPump2/DaoMqPump2/Transport.cs

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

revision 2058 by torben, Wed Aug 28 06:45:20 2013 UTC revision 2088 by torben, Wed Nov 27 14:16:14 2013 UTC
# Line 278  namespace DaoMqPump2 Line 278  namespace DaoMqPump2
278                                  if (mqMsg.Format.CompareTo(MQC.MQFMT_STRING) == 0)                                  if (mqMsg.Format.CompareTo(MQC.MQFMT_STRING) == 0)
279                                  {                                  {
280                                      string msgString = mqMsg.ReadString(mqMsg.MessageLength);                                      string msgString = mqMsg.ReadString(mqMsg.MessageLength);
281                                      System.Console.WriteLine(msgString);                                      //System.Console.WriteLine(msgString);
282    
283                                      if ( msgString.StartsWith("?") ) //Hvis transaktionen starter med et ? er det ikke en gyldig transaktion  
284                                        // Hvis transaktionen starter med et ? er det ikke en gyldig transaktion
285                                        // validér ligeledes at headeren er gyldig
286                                        if ( msgString.StartsWith("?") || validateSalt2Header(msgString) == false )
287                                      {                                      {
288                                          string discarded_filename = getLogFilename(LogfileType.LogDiscarded);                                          string discarded_filename = getLogFilename(LogfileType.LogDiscarded);
289                                          using (StreamWriter discardedlog = new StreamWriter(discarded_filename, true))                                          using (StreamWriter discardedlog = new StreamWriter(discarded_filename, true))
290                                          {                                          {
291                                              discardedlog.WriteLine(msgString);                                              discardedlog.WriteLine(getNowString() + " " + msgString);
292                                          }                                          }
293                                          mqMgr.Commit();//fjern den afviste transaktion fra køen                                          mqMgr.Commit();//fjern den afviste transaktion fra køen
294                                          statusData.discardedCounter++;                                          statusData.discardedCounter++;
# Line 410  namespace DaoMqPump2 Line 413  namespace DaoMqPump2
413              Hashtable connProperties = new Hashtable();              Hashtable connProperties = new Hashtable();
414              connProperties.Add(MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES_CLIENT);              connProperties.Add(MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES_CLIENT);
415              connProperties.Add(MQC.HOST_NAME_PROPERTY, controller.mqHost);              connProperties.Add(MQC.HOST_NAME_PROPERTY, controller.mqHost);
416              connProperties.Add(MQC.CHANNEL_PROPERTY, controller.mqChannel); //WARNING: Hardcoded Channel Value !!!              connProperties.Add(MQC.CHANNEL_PROPERTY, controller.mqChannel);
417              return connProperties;              return connProperties;
418          }          }
419    
# Line 454  namespace DaoMqPump2 Line 457  namespace DaoMqPump2
457              return now.ToString("s");              return now.ToString("s");
458          }          }
459    
460            /* no used any where used added here for reference/ just in case */
461            private void sendErrorMail(string sub, string msg)
462            {
463                System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage();
464                message.To.Add("thn@daoas.dk");
465                message.Subject = "Error from DaoMqPump2: " + sub;
466                message.From = new System.Net.Mail.MailAddress("no-reply@daoas.dk");
467                message.Body = msg;
468    
469                System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient("mail.dao.int");
470                smtp.Send(message);
471            }
472    
473            private bool validateSalt2Header(string salt2String)
474            {
475                if (salt2String.Length < 66)
476                {
477                    addLogEntry("Transaction too short - discarding");
478                    return false;
479                }
480    
481    
482                int result;
483                long result_long;
484    
485                string afsender = salt2String.Substring(0, 5);
486                string modtager = salt2String.Substring(5, 5);
487                string afsenderTegnSaet = salt2String.Substring(10, 6);
488                string standardNavn = salt2String.Substring(16, 6);
489                string standardVersion = salt2String.Substring(22, 3);
490                string afsenderSekvensnr = salt2String.Substring(25, 6);
491                string afsenderTidsstempel = salt2String.Substring(31, 14);
492                string afsenderBakkeIdent = salt2String.Substring(45, 5);
493                string modtagerBakkeIdent = salt2String.Substring(50, 5);
494                string transaktionForkortelse = salt2String.Substring(55, 4);
495                string transaktionsLaengde = salt2String.Substring(59, 5);
496                string prioritet = salt2String.Substring(64, 1);
497    
498    
499                
500                if (int.TryParse(standardVersion.Trim(), out result) == false) // standardVersion _skal_ være en int
501                {
502                    addLogEntry("standardVersion not an integer, discarding");
503                    return false;
504                }
505    
506                if (int.TryParse(afsenderSekvensnr.Trim(), out result) == false) // afsenderSekvensnr _skal_ være en int
507                {
508                    addLogEntry("afsenderSekvensnr not an integer, discarding");
509                    return false;
510                }
511    
512                if (long.TryParse(afsenderTidsstempel.Trim(), out result_long) == false) // afsenderTidsstempel _skal_ være en long
513                {
514                    addLogEntry("afsenderTidsstempel not a long integer, discarding");
515                    return false;
516                }
517    
518                if (int.TryParse(transaktionsLaengde.Trim(), out result) == false) // transaktionsLaengde _skal_ være en int
519                {
520                    addLogEntry("transaktionsLaengde not an integer, discarding");
521                    return false;
522                }
523    
524                if ( int.TryParse(prioritet.Trim(), out result) == false ) // prioritet _skal_ være en int
525                {
526                    addLogEntry("prioritet not an integer, discarding");
527                    return false;
528                }
529    
530                return true;
531            }
532    
533          private void addLogEntry(string msg)          private void addLogEntry(string msg)
534          {          {
535              msg = getNowString() + " " + msg;              msg = getNowString() + " " + msg;

Legend:
Removed from v.2058  
changed lines
  Added in v.2088

  ViewVC Help
Powered by ViewVC 1.1.20