protected override void ExecuteProcedure(Imi.Framework.Job.JobArgumentCollection args) { if (args.ContainsKey("Log")) { logEnabled = args["Log"].ToString().ToLower().Equals("true"); } if (args.ContainsKey("LogFile")) { logFileName = args["LogFile"]; } if (args.ContainsKey("LogLevel")) { logLevel = Convert.ToInt16(args["LogLevel"]); } Tracing.TraceEvent(TraceEventType.Verbose, 0, "Start"); long start = DateTime.Now.Ticks; // Process any available EDIOUT messages int cc; do { cc = WriteMessageFile(); } while (cc == 0); long stop = DateTime.Now.Ticks; TimeSpan ts = new TimeSpan(stop - start); Tracing.TraceEvent(TraceEventType.Verbose, 0, String.Format("Stop (used {0}s)", ts.TotalSeconds.ToString("0.00"))); }
/// <summary> /// ExecuteProcedure is the main activity method, this is the code that is run /// when the Job is activated/signalled. /// </summary> protected override void ExecuteProcedure(Imi.Framework.Job.JobArgumentCollection args) { //Check if and reset print queue //================================================== if (_totalNumOfConcurrentJobs <= 0) { Tracing.TraceEvent(TraceEventType.Verbose, 0, String.Format("Resetting print queue...")); _printQueue.Reset(); _totalNumOfConcurrentJobs = 0; } //================================================== IList <Document> documents = null; bool hasJobs = true; _outputManagers = GetConfig(); int i = 0; while (hasJobs) { i++; StartTransaction(); try { Tracing.TraceEvent(TraceEventType.Verbose, 0, String.Format("Fetching print jobs...")); documents = GetPrintJobs(); System.Diagnostics.Debug.WriteLine(DateTime.Now + " Fetched " + documents.Count + " documents. Iteration: " + i); hasJobs = documents.Count > 0; Commit(); } catch { Rollback(); throw; } if (hasJobs) { SendPrintJobs(CreateJobs(documents)); } } }
protected override void ExecuteProcedure(Imi.Framework.Job.JobArgumentCollection args) { // // Execute stored procedure // Array eventArr = null; StartTransaction(); dbJob.Execute(args, ref eventArr); Commit(); // // Handle Eventlist // SignalEvents(eventArr); }
/// <summary> /// ExecuteProcedure is the main activity method, this is the code that is run /// when the Job is activated/signalled. /// </summary> protected override void ExecuteProcedure(Imi.Framework.Job.JobArgumentCollection args) { CheckParameters(); // ignore result LoadWebsProfiles(); Tracing.TraceEvent(TraceEventType.Verbose, 0, "Start"); long start = DateTime.Now.Ticks; // Find msg List <HAPITRANS> transList = FindMessagesToSend(); foreach (HAPITRANS t in transList) { Tracing.TraceEvent(TraceEventType.Verbose, 0, String.Format(" found TYPE {0} HAPITRANS_ID {1} for profile {2}", t.HAPIOBJECTNAME, t.HAPITRANS_ID, t.WEBS_PROFILE_ID)); string error = HandleMessageType(t); // ------------------------------------------- // --- Update HAPITRANS record // ------------------------------------------- // This will never be null, see assignment in cursor above Nullable <DateTime> first = t.FIRSTSNDDTM; string ALMID_W = ""; StartTransaction(); if (error == "") { dbWebServiceSend.ModifySend(t.HAPITRANS_ID, first, ref ALMID_W); } else { dbWebServiceSend.ModifyError(t.HAPITRANS_ID, first, "WS", error, ref ALMID_W); } Commit(); #region TracingOfResult if (error == "") { Tracing.TraceEvent(TraceEventType.Verbose, 0, String.Format("HAPITRANS_ID {0} was sent successfully.", t.HAPITRANS_ID)); } else { Tracing.TraceEvent(TraceEventType.Error, 0, String.Format("HAPITRANS_ID {0} error while sending.\n{1}.", t.HAPITRANS_ID, error)); } if (ALMID_W != "") { Tracing.TraceEvent(TraceEventType.Error, 0, String.Format("Error {0} when updating HAPITRANS record status.", ALMID_W)); } #endregion } // foreach ( HAPITRANS t in transList ) long stop = DateTime.Now.Ticks; TimeSpan ts = new TimeSpan(stop - start); Tracing.TraceEvent(TraceEventType.Verbose, 0, String.Format("Stop (used {0}s)", ts.TotalSeconds.ToString("0.00"))); }
/// <summary> /// ExecuteProcedure is the main activity method, this is the code that is run /// when the Job is activated/signalled. /// </summary> protected override void ExecuteProcedure(Imi.Framework.Job.JobArgumentCollection args) { if (args.ContainsKey("recycleThresholdWP")) { _recycleThresholdWP = Convert.ToInt32(args["recycleThresholdWP"]); } if (args.ContainsKey("processingTimeoutInMinutesWP")) { _processingTimeoutInMinutesWP = Convert.ToInt32(args["processingTimeoutInMinutesWP"]); } string PBROWGRP_ID_O = ""; string PZID_O = ""; string WHID_O = ""; string ALLOW_PBROWSPLIT_O = "0"; string CARTYPID_O = ""; string SHIPWSID_O = ""; double?SHIPXCORD_O = 0; double?SHIPYCORD_O = 0; double?MAXLDVOL_O = 0; double?MAXLDWGT_O = 0; double?OFR_DISTANCE_FACTOR_O = 0; int? MAXPBROWCAR_O = 0; int? OFR_MAX_ITER_FILL_O = 0; int? OFR_MAX_TME_FILL_O = 0; int? OFR_MAX_ITER_STORE_O = 0; int? OFR_MAX_TME_STORE_O = 0; int? OFR_MAX_ITER_DIST_O = 0; int? OFR_MAX_TME_DIST_O = 0; IList <PBROW> rows = null; IList <AISLE_WAYPOINT> waypoints = null; try { StartTransaction(); IDataReader rowReader; IDataReader waypointReader; _pickOrderCarrierBuild.GetGroup(10, ref PBROWGRP_ID_O, ref OFR_DISTANCE_FACTOR_O, ref OFR_MAX_ITER_FILL_O, ref OFR_MAX_TME_FILL_O, ref OFR_MAX_ITER_STORE_O, ref OFR_MAX_TME_STORE_O, ref OFR_MAX_ITER_DIST_O, ref OFR_MAX_TME_DIST_O, ref PZID_O, ref WHID_O, ref ALLOW_PBROWSPLIT_O, ref MAXPBROWCAR_O, ref CARTYPID_O, ref MAXLDVOL_O, ref MAXLDWGT_O, ref SHIPWSID_O, ref SHIPXCORD_O, ref SHIPYCORD_O, out waypointReader, out rowReader); if (string.IsNullOrEmpty(PBROWGRP_ID_O)) { Commit(); return; } Tracing.TraceEvent(TraceEventType.Information, 0, string.Format("Found group {0}", PBROWGRP_ID_O)); rows = ReadPickOrderLines(rowReader); waypoints = ReadWaypoints(waypointReader); Commit(); if (rows.Count < 1) { Tracing.TraceEvent(TraceEventType.Warning, 0, "No rows to process, aborting."); return; } LCASettings lcaSettings = new LCASettings(); lcaSettings.DistanceFactor = OFR_DISTANCE_FACTOR_O.Value; lcaSettings.DoBeautyPhase = OFR_MAX_ITER_STORE_O > 0 && OFR_MAX_TME_STORE_O > 0; lcaSettings.DoDistPhase = OFR_MAX_ITER_DIST_O > 0 && OFR_MAX_TME_DIST_O > 0; lcaSettings.DoLCPhase = OFR_MAX_ITER_FILL_O > 0 && OFR_MAX_TME_FILL_O > 0; lcaSettings.GroupId = PBROWGRP_ID_O; lcaSettings.MaxmSecBeauty = OFR_MAX_TME_STORE_O.Value * 1000; lcaSettings.MaxmSecDistance = OFR_MAX_TME_DIST_O.Value * 1000; lcaSettings.MaxmSecLC = OFR_MAX_TME_FILL_O.Value * 1000; lcaSettings.NumberOfIterationsBeauty = OFR_MAX_ITER_STORE_O.Value; lcaSettings.NumberOfIterationsDistance = OFR_MAX_ITER_DIST_O.Value; lcaSettings.NumberOfIterationsLC = OFR_MAX_ITER_FILL_O.Value; lcaSettings.PZId = PZID_O; lcaSettings.WHId = WHID_O; lcaSettings.StrekArea = SHIPWSID_O; lcaSettings.StrekXCoord = SHIPXCORD_O.GetValueOrDefault(); lcaSettings.StrekYCoord = SHIPYCORD_O.GetValueOrDefault(); lcaSettings.AllowPBRowSplit = ALLOW_PBROWSPLIT_O == "1"; lcaSettings.MaxLDWgt = MAXLDWGT_O.GetValueOrDefault(double.MaxValue); lcaSettings.MaxLDVol = MAXLDVOL_O.GetValueOrDefault(double.MaxValue); lcaSettings.MaxPBRowCar = MAXPBROWCAR_O.GetValueOrDefault(int.MaxValue); lcaSettings.OnlyAptean = false; Tracing.TraceEvent(TraceEventType.Information, 0, string.Format("Parameters:{0}{1}", Environment.NewLine, lcaSettings.ToString())); Tracing.TraceEvent(TraceEventType.Information, 0, string.Format("Processing group {0} ({1} lines, {2} waypoints)...", PBROWGRP_ID_O, rows.Count, waypoints.Count)); LCAWrapperResult result = null; int retry = 1; while (retry < 3) { // Process Group in Worker Process. try { result = SendGroupToWorkerProcess(rows, waypoints, lcaSettings); //ProcessGroup(rows, waypoints, lcaSettings); retry = 3; } catch (TimeoutException) { throw; } catch (Exception) { //Make three tries at processing data in the algorithm if any anknown exception occurs. lock (_syncLock) { AbortClients(); retry++; } Thread.Sleep(3000); } } StringBuilder sb = new StringBuilder(); foreach (var entry in MapErrors(PBROWGRP_ID_O, result.Errors)) //These are actually warnings { foreach (string errorMessage in entry.Value) { string formattedMessage = string.Format("{0} [{1}]", errorMessage, entry.Key); Tracing.TraceEvent(TraceEventType.Warning, 0, formattedMessage); sb.AppendLine(string.Format("{0} Warning: {1}", this.Name, formattedMessage)); } } if (sb.Length > 0) { LogGroupError(PBROWGRP_ID_O, sb.ToString()); } Tracing.TraceEvent(TraceEventType.Information, 0, string.Format("Connecting {0} result lines...", result.Lines.Count)); StartTransaction(); ConnectPickOrderLines(PBROWGRP_ID_O, CARTYPID_O, result.Lines); _pickOrderCarrierBuild.FinishGroup(PBROWGRP_ID_O); Tracing.TraceEvent(TraceEventType.Information, 0, string.Format("Done processing.", PBROWGRP_ID_O)); Commit(); } catch (Exception ex) { try { Rollback(); } finally { try { LogGroupError(PBROWGRP_ID_O, string.Format("Error - {0}", ex.ToString())); } finally { _pickOrderCarrierBuild.CancelGroup(PBROWGRP_ID_O); } } throw; } }
protected override void ExecuteProcedure(Imi.Framework.Job.JobArgumentCollection args) { if (!CheckParameters()) { return; } // Find msg ArrayList transList = FindMessagesToSend(); foreach (MailBoxMessage m in transList) { Tracing.TraceEvent(TraceEventType.Verbose, 0, String.Format(" found MailId {0}", m.MailId)); string error = ""; try { AppMailMessage aMsg = new AppMailMessage(args["ReturnAddress"] as string, m.XmlMessageBody); try { using (MailMessage eMail = new MailMessage()) { if (args["FromAddress"] == null) { eMail.From = new MailAddress(args["Job"] as string); } else { eMail.From = new MailAddress(args["FromAddress"] as string, args["Job"] as string); } foreach (string address in aMsg.ToList) { eMail.To.Add(new MailAddress(address)); } eMail.Subject = aMsg.Subject; eMail.Body = aMsg.MessageBody; SmtpClient sc = new SmtpClient(args["MailServer"] as string); if (args.ContainsKey("MailServerPort")) { if ((args["MailServerPort"] != null) && (!args["MailServerPort"].Equals(""))) { sc.Port = Convert.ToInt32(args["MailServerPort"] as string); } } if ((args.ContainsKey("MailServerUser")) && (args.ContainsKey("MailServerPassword"))) { if (((args["MailServerUser"] != null) && (!args["MailServerUser"].Equals(""))) && ((args["MailServerPassword"] != null) && (!args["MailServerPassword"].Equals("")))) { sc.UseDefaultCredentials = false; sc.Credentials = new System.Net.NetworkCredential(args["MailServerUser"] as string, args["MailServerPassword"] as string); } else { sc.UseDefaultCredentials = true; } } else { sc.UseDefaultCredentials = true; } sc.Send(eMail); } } catch (FormatException fe) { error = String.Format("Problems sending the email due to faulty email address list {0}. {1} {2}\n{3}", aMsg.ToList, fe.GetType().Name, fe.Message, fe.StackTrace); Tracing.TraceEvent(TraceEventType.Error, 0, error); } catch (SmtpException e) { error = String.Format("Problems sending the email. {0} {1}\n{2}", e.GetType().Name, e.Message, e.StackTrace); Tracing.TraceEvent(TraceEventType.Error, 0, error); } } catch (ConfigurationErrorsException e) { error = String.Format("Problems decoding email. {0} {1}\n{2}", e.GetType().Name, e.Message, e.StackTrace); Tracing.TraceEvent(TraceEventType.Error, 0, error); } // ------------------------------------------- // --- Update MAILBOX record // ------------------------------------------- string ALMID_W = ""; StartTransaction(); if (error == "") { dbMailAgent.ModifySend(m.MailId, ref ALMID_W); } else { dbMailAgent.ModifyError(m.MailId, error, ref ALMID_W); } Commit(); #region TracingOfResult if (error != "") { Tracing.TraceEvent(TraceEventType.Error, 0, String.Format("MAILID {0} error while sending.\n{1}.", m.MailId, error)); } else { Tracing.TraceEvent(TraceEventType.Verbose, 0, String.Format("MAILID {0} was sent successfully.", m.MailId)); } if (ALMID_W != "") { Tracing.TraceEvent(TraceEventType.Error, 0, String.Format("Error {0} when updating MAILBOX record status.", ALMID_W)); } #endregion } // foreach ( MailMessage t in transList ) }
internal void UpdateArgs(JobArgumentCollection args) { this.args = args; }
/// <summary> /// ExecuteProcedure is the main activity method, this is the code that is run /// when the Job is activated/signalled. /// </summary> protected override void ExecuteProcedure(Imi.Framework.Job.JobArgumentCollection args) { CheckParameters(); // ignore result Tracing.TraceEvent(TraceEventType.Verbose, 0, "Start"); long start = DateTime.Now.Ticks; // Find messages of type WebServices (W) List <MSG_SEND> Message_List = FindMessagesToSend("W"); foreach (MSG_SEND t in Message_List) { Tracing.TraceEvent(TraceEventType.Verbose, 0, String.Format(" found MSG_ID {0} MSG_SEND_ID {1} for CHANNEL_ID {2}", t.MSG_ID, t.MSG_SEND_ID, t.CHANNEL_ID)); string error = HandleMessageType(t); // ------------------------------------------- // --- Update MSGSEND record // ------------------------------------------- // This will never be null, see assignment in cursor above Nullable <DateTime> first = t.FIRSTSNDDTM; string ALMID_W = ""; StartTransaction(); if (error == "") { dbWebServiceSendRMS.ModifySend(t.MSG_SEND_ID, first, ref ALMID_W); } else { dbWebServiceSendRMS.ModifyError(t.MSG_SEND_ID, first, "WS", error, ref ALMID_W); } Commit(); #region TracingOfResult if (error == "") { Tracing.TraceEvent(TraceEventType.Verbose, 0, String.Format("MSG_ID {0} was sent successfully.", t.MSG_ID)); } else { Tracing.TraceEvent(TraceEventType.Error, 0, String.Format("MSG_ID {0} error while sending.\n{1}.", t.MSG_ID, error)); } if (!String.IsNullOrEmpty(ALMID_W)) { Tracing.TraceEvent(TraceEventType.Error, 0, String.Format("Error when updating MSG_SEND record status. ALMID: {0}", ALMID_W)); } #endregion } // foreach ( MSG_SEND t in Message_List ) long stop = DateTime.Now.Ticks; TimeSpan ts = new TimeSpan(stop - start); Tracing.TraceEvent(TraceEventType.Verbose, 0, String.Format("Stop (used {0}s)", ts.TotalSeconds.ToString("0.00"))); }
internal void SetArguments(JobArgumentCollection args) { this.args = args; }