static void MsmqBridgeOnReceiveCompleted(object sender, ReceiveCompletedEventArgs receiveCompletedEventArgs) { string sqlConnectionStr = @"Data Source =.\SQLEXPRESS; Initial Catalog = PersistenceForSqlTransport; Integrated Security = True"; string sqlRelayEndpointName = "SqlRelay"; using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required)) { // Connect to the queue. MessageQueue mq = (MessageQueue)sender; // End the asynchronous receive operation. Message msg = mq.EndReceive(receiveCompletedEventArgs.AsyncResult); //Validate the message if (msg != null) { Console.WriteLine("Received a message in MSMQ -- Processing ..."); #region read-message-and-push-to-sql byte[] messageBody = ConvertStreamToByteArray(msg.BodyStream); // Serialize to dictionary Dictionary<string, string> headers = ExtractHeaders(Encoding.UTF8.GetString(msg.Extension).TrimEnd('\0')); // If this queue is going to be receiving messages from endpoints older than v4.0, then // set the header["NServiceBus.MessageId"] to be a deterministic guid based on the Id // as Sql transport expects a Guid for the MessageId and not an Id in the MSMQ format. // Have the necessary raw information from queue - Therefore write it to Sql. Console.WriteLine("Forwarding message to SQLRelay endpoint"); SendMessageToSql(sqlConnectionStr, sqlRelayEndpointName, messageBody, headers); #endregion } // Restart the asynchronous receive operation. mq.BeginReceive(); //Commit transaction scope.Complete(); } }
/// <summary> /// 完成一个接收 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public void ReceiveCompleted <T>(object sender, ReceiveCompletedEventArgs e) { var mq = (MessageQueue)sender; var state = (ReceiveState <T>)e.AsyncResult.AsyncState; Message message = null; try { message = mq.EndReceive(e.AsyncResult); } catch (MessageQueueException exception) { //已dispose if (this.disposed) { return; } this.logger.Exception(exception); //只要出现 队列错误,均视为队列失效,重建队列 mq = this.ReconnectQueue <T>(mq, state.ArrayIndex, out message); } catch (Exception exception) { this.logger.Exception(exception); message = null; } // if (message != null) { lock (state) { state.Count++; Interlocked.Decrement(ref this.availableThread); //run new Thread(() => { Interlocked.Increment(ref this.receiveRuningCount); try { if (message != null) { message.Formatter = new XmlMessageFormatter(new[] { typeof(T) }); state.Action((T)message.Body); } } catch (Exception exception) { this.logger.Exception(exception); } finally { lock (state) { state.Count--; Interlocked.Increment(ref this.availableThread); Monitor.Pulse(state); } Interlocked.Decrement(ref this.receiveRuningCount); } }).Start(); if (state.Count == state.MaxCount) { Monitor.Wait(state); } } } //new receive while (this.Receiving) { try { mq.BeginReceive(MessageQueue.InfiniteTimeout, state); break; } catch (Exception exception) { this.logger.Exception(exception); Thread.Sleep(errorReceiveSleep); } } }
void con_OnReceiveCompleted(object sender, ReceiveCompletedEventArgs args) { string text = Encoding.Unicode.GetString(args.data); this.BeginInvoke(new FunctionCall(ReceieveMessage), text); }
private static void UserInputRecieved(object sender, ReceiveCompletedEventArgs e) { MessageQueue mQ = (MessageQueue)sender; Message m = mQ.EndReceive(e.AsyncResult); try { switch (Enum.Parse(typeof(TokenRequestType), m.Label)) { case TokenRequestType.CreateToken: { //UserModel originModel = MSMQHelper.GetMessageBody<UserModel>(m); UserModel userModel = MSMQHelper.GetMessageBody <UserModel>(m); Console.WriteLine("UserModel received!"); MSMQHelper.SendMessage(beaconInputMQ, "ServersData", "ServersData", beaconResponseMQ); ServersData data = MSMQHelper.GetMessageBody <ServersData>(MSMQHelper.ReceiveMessage(beaconResponseMQ, new TimeSpan(0, 0, 5))); JWTPayload payload = new JWTPayload() { UserID = userModel.UserID, ServersInfo = data }; userModel.Token = JWTManager.CreateJWT(JWTManager.CreateClaims <JWTPayload>(payload), 5).RawData; userModel.TokenResponse = TokenResponse.Created; Message userResponse = new Message() { Formatter = new JsonMessageFormatter(), Body = JsonConvert.SerializeObject(userModel), Label = userModel.UserID }; MSMQHelper.SendMessage(m.ResponseQueue, userResponse); Console.WriteLine("Token send to {0}", m.ResponseQueue.Path); break; } case TokenRequestType.VerifyToken: { UserModel userModel = MSMQHelper.GetMessageBody <UserModel>(m); if (JWTManager.VerifyToken(userModel.Token)) { userModel.TokenResponse = TokenResponse.Valid; userModel.Message = "Token Valid, Connecting to Server!"; Console.WriteLine("\n=======TOKEN======"); Console.WriteLine(userModel.Token); Console.WriteLine("=======TOKEN======\n"); Message userResponse = new Message() { Formatter = new JsonMessageFormatter(), Body = JsonConvert.SerializeObject(userModel), Label = userModel.UserID }; MSMQHelper.SendMessage(m.ResponseQueue, userResponse); Console.WriteLine("Token was valid!"); Console.WriteLine("Response send to {0}", m.ResponseQueue.Path); } else { userModel.TokenResponse = TokenResponse.Invalid; userModel.Message = "Session Token no longer valid!\n Please login, using credentials."; Message userResponse = new Message() { Formatter = new JsonMessageFormatter(), Body = JsonConvert.SerializeObject(userModel), Label = userModel.UserID }; MSMQHelper.SendMessage(m.ResponseQueue, userResponse); Console.WriteLine("Token was invalid!"); Console.WriteLine("Response send to {0}", m.ResponseQueue.Path); } break; } } } catch (Exception error) { Console.WriteLine("Couldn't read message!"); Console.WriteLine(error); Console.WriteLine(error.Message); UserModel userModel = new UserModel() { UserID = JsonConvert.DeserializeObject <UserModel>(m.Body.ToString()).UserID, RequestType = RequestTypes.Error, TokenResponse = TokenResponse.Invalid, Message = "Token Request Failed: " + error.Message }; Message userResponse = new Message() { Formatter = new JsonMessageFormatter(), Body = JsonConvert.SerializeObject(userModel), Label = userModel.UserID }; MSMQHelper.SendMessage(m.ResponseQueue, userResponse); } mQ.BeginReceive(); }
private void Recibiendo(object sender, ReceiveCompletedEventArgs args) { try { System.Messaging.Message unMensaje = JuegosEnCola.EndReceive(args.AsyncResult); unJuego = (Juegos)unMensaje.Body; listaJuegos.Add(unJuego); JuegosEnCola.BeginReceive(new TimeSpan(1, 0, 0, 0)); } catch (Exception ex) { Response.Write("<div id=\"error\" class=\"alert alert-danger\">" + ex.Message + "</div>" + "<script type=\"text/javascript\">window.onload=function(){alertBootstrap();};</script>"); } }
private void ReadMQ_ReceiveCompleted(object sender, ReceiveCompletedEventArgs e) { Log.Information("Read Message Queue Event Triggered"); //Read recieved message var msgRead = new Message(); msgRead = readMQ.EndReceive(e.AsyncResult); Log.Information(msgRead.Label + " Recieved MsgID: " + msgRead.Id); if (msgRead.Label == "Plc_Config_Request") { msgRead.Formatter = new XmlMessageFormatter(new Type[] { typeof(PlcConfigReqMsg) }); var msgData = ((PlcConfigReqMsg)msgRead.Body); if (msgData.getPlcConfig == true) { using (var _context = new FactoryDataDbContext()) { try { var plcConfig = _context.Plcs.SingleOrDefault(p => p.Id == 1); if (plcConfig == null) { Log.Error("Plc config query executed with null result"); } else { Log.Debug("Plc config query executed successfully"); } var config = new PlcConfigMsg() { Name = plcConfig.Name, IPAddress = plcConfig.IPAddress, DisableSubscriptions = plcConfig.DisableSubscriptions, PollRateOverride = plcConfig.PollRateOverride, ProcessorSlot = plcConfig.ProcessorSlot, Port = plcConfig.Port, EventPollRate = plcConfig.EventPollRate, SubscriptionPollRate = plcConfig.SubscriptionPollRate, TransactionPollRate = plcConfig.TransactionPollRate }; var type = new Type[] { typeof(PlcConfigMsg) }; using (var msg = new SendMessage()) { msg.Send(config, "Plc_Config", type); } } catch (Exception ex) { Log.Error("Plc config query exception" + ex.Message); } finally { _context.Dispose(); } } Log.Information("Plc Config Request Message Processed" + " MsgID: " + msgRead.Id); } } if (msgRead.Label == "TagList_Request") { msgRead.Formatter = new XmlMessageFormatter(new Type[] { typeof(TagListReqMsg) }); var msgData = ((TagListReqMsg)msgRead.Body); if (msgData.getTagList == true) { using (var _context = new FactoryDataDbContext()) { try { var tagList = _context.Tags.ToList().Where(t => t.IsActive == true); if (tagList == null) { Log.Error("Tag list query executed with null result"); } else { Log.Debug("Tag list query executed successfully"); } msgTagList = new TagListMsg() { List = new List <ListTag>() }; foreach (Tag elem in tagList) { var tag = new ListTag { Id = elem.Id, Name = elem.Name, TagTypeId = elem.TagTypeId, PlcId = elem.PlcId, IsActive = elem.IsActive }; msgTagList.List.Add(tag); Log.Debug("Tag added to message list: " + tag.Name); } ; var type = new Type[] { typeof(TagListMsg) }; using (var msg = new SendMessage()) { Log.Debug("Tag list message passed to send"); msg.Send(msgTagList, "TagList_Config", type); } } catch (Exception ex) { Log.Error("Tag List query exception: " + ex.Message); } finally { _context.Dispose(); } } Log.Information("Tag List Request Message Processed" + " MsgID: " + msgRead.Id); } } if (msgRead.Label == "SubscriptionTag_Results") { msgRead.Formatter = new XmlMessageFormatter(new Type[] { typeof(TagReadResultsMsg) }); var msgData = ((TagReadResultsMsg)msgRead.Body); using (var _context = new FactoryDataDbContext()) { try { foreach (RecordTag elem in msgData.List) { var subscriptionRecord = new SubscriptionTagRecord { TagId = elem.TagId, Data = elem.Data, PlcTS = elem.PlcTS, RecordTS = DateTime.Now }; _context.SubscriptionTagRecords.Add(subscriptionRecord); _context.SaveChanges(); Log.Debug("Subscription Tag Record Added to database"); } ; } catch (Exception ex) { Log.Error("Subscription Tag Record add to database exception: " + ex.Message + "Inner Exception: " + ex.InnerException.ToString()); } } Log.Information("Subscription Tag Results Message Processed" + " MsgID: " + msgRead.Id); } if (msgRead.Label == "EventTag_Results") { msgRead.Formatter = new XmlMessageFormatter(new Type[] { typeof(TagReadResultsMsg) }); var msgData = ((TagReadResultsMsg)msgRead.Body); using (var _context = new FactoryDataDbContext()) { try { foreach (RecordTag elem in msgData.List) { var eventRecord = new EventTagRecord { TagId = elem.TagId, Data = elem.Data, PlcTS = elem.PlcTS, RecordTS = DateTime.Now }; _context.EventTagRecords.Add(eventRecord); _context.SaveChanges(); Log.Debug("Event Tag Record Added to database"); } ; } catch (Exception ex) { Log.Error("Event Tag Record add to database exception: " + ex.Message + "Inner Exception: " + ex.InnerException.ToString()); } } Log.Information("Event Tag Results Message Processed" + " MsgID: " + msgRead.Id); } if (msgRead.Label == "TransactionTag_Results") { msgRead.Formatter = new XmlMessageFormatter(new Type[] { typeof(TransactionResultsMsg) }); var msgData = ((TransactionResultsMsg)msgRead.Body); foreach (TransactionRecord record in msgData.Records) { if (record.Udt.TransactionType == TransactionTypeConstants.Insert) { try { var rowCount = DBUtils.SqlInsert(record.Udt, record.TagName); Log.Information("Transaction udt Sql Insert complete"); } catch (Exception ex) { Log.Error("Transaction udt Sql Insert Exception: " + ex.Message); } } if (record.Udt.TransactionType == TransactionTypeConstants.Update) { try { var rowCount = DBUtils.SqlUpdate(record.Udt, record.TagName); Log.Information("Transaction udt Sql Update complete"); } catch (Exception ex) { Log.Error("Transaction udt Sql Update Exception: " + ex.Message); } } } } // Resume listening for messages try { readMQ.BeginReceive(); Log.Information("ReadMQ Resume Listening For Messages"); } catch (Exception ex) { Log.Error("ReadMQ Resume Listening For Messages Exception: " + ex.Message); } }
void gotMessage(object sender, ReceiveCompletedEventArgs e) { TL2 mt = TL2.INFO; string from = ""; LinkMessage gotmess = null; object m = null; gotmess = (LinkMessage)e.Message.Body; mt = gotmess.Type; m = gotmess.Body; from = gotmess.From; int cid = -1; Tick t = new Tick(); try { switch (mt) { // CLIENT MESSAGES case TL2.TICKNOTIFY: t = (Tick)m; gotTick(t); break; case TL2.EXECUTENOTIFY: Trade trade; trade = (Trade)m; gotFill(trade); break; // SERVER MESSAGES case TL2.REGISTERCLIENT: if (client.IndexOf(from) != -1) { break; // we already had your client, ignore } client.Add(from); stocks.Add(""); heart.Add(new DateTime()); break; case TL2.REGISTERSTOCK: cid = client.IndexOf(from); if (cid == -1) { break; // client not found } MarketBasket mb = (MarketBasket)m; stocks[cid] = mb.ToString(); BeatHeart(from); break; case TL2.HEARTBEAT: BeatHeart(from); break; case TL2.CLEARSTOCKS: cid = client.IndexOf(from); if (cid == -1) { break; } stocks[cid] = null; BeatHeart(from); break; case TL2.CLEARCLIENT: cid = client.IndexOf(from); if (cid == -1) { break; // we don't have the client, nothing to do } client[cid] = null; stocks[cid] = null; heart[cid] = new DateTime(); break; } } catch (Exception ex) { string s = ex.Message; } if (this.GotMessage != null) { GotMessage(mt, from); // send GotMessage event to any subscribers } rec.BeginReceive(); // prepare to receive new messages }
private void MyReceiveCompleted(Object source, ReceiveCompletedEventArgs asyncResult) { // Connect to the queue. mq = (MessageQueue)source; try { Message msg = mq.EndReceive(asyncResult.AsyncResult); PendingBooking pb = null; UpdatedBooking ub = null; BlockBooking bb = null; ChangedAppointment ca = null; CancelledAppointment cancelledAppointment = null; string label = (string)msg.Label; logger.Info("label created fine"); //temp changes should be removed if (label == "pending") { msg.Formatter = new XmlMessageFormatter(new Type[] { typeof(PendingBooking) }); logger.Info("pending formatter created fine");//temp changes should be removed pb = (PendingBooking)msg.Body; logger.Info("#STPendingSAR# " + pb.MeetingKey + " " + DateTime.UtcNow.Ticks); logger.Info("pendingbookin conversion created fine"); //temp changes should be removed // Display the message information on the screen. logger.Info("pendingbooking meeting key" + pb.MeetingKey); //temp changes should be removed logger.Info("PendingBookingList Status " + PendingBookingList); //temp changes should be removed logger.Info("#STPendingSAEN# " + pb.MeetingKey + " " + DateTime.UtcNow.Ticks); EnqueuePendingBooking(pb); } else if (label == "update") { msg.Formatter = new XmlMessageFormatter(new Type[] { typeof(UpdatedBooking) }); logger.Info("update formatter created fine"); //temp changes should be removed ub = (UpdatedBooking)msg.Body; logger.Info("update conversion created fine"); //temp changes should be removed // Display the message information on the screen. EnqueueUpdatedMSSBooking(ub); } else if (label == "Create Appointment" || label == "Update Appointment") { msg.Formatter = new XmlMessageFormatter(new Type[] { typeof(ChangedAppointment) }); logger.Info("Appointment formatter created fine"); //temp changes should be removed ca = (ChangedAppointment)msg.Body; logger.Info("Appointment conversion created fine"); //temp changes should be removed EnqueueChangedAppointment(ca); } else if (label == "Delete Appointment") { logger.Info("start reading deleted appointment"); msg.Formatter = new XmlMessageFormatter(new Type[] { typeof(CancelledAppointment) }); logger.Info("Appointment formatter created fine"); cancelledAppointment = (CancelledAppointment)msg.Body; logger.Info("Appointment conversion created fine"); EnqueueCancelledAppointment(cancelledAppointment); } else if (label == "blockbooking") { msg.Formatter = new XmlMessageFormatter(new Type[] { typeof(BlockBooking) }); logger.Info("Block booking formatter created successfully"); bb = (BlockBooking)msg.Body; logger.Info("Block booking conversion was successful"); //temp log EnqueueBlockBooking(bb); } } catch (Exception ex) { logger.Error("Error in ReceiveComplete Event : Block Booking - Exception = " + ex.StackTrace + " " + ex.Message); } mq.BeginReceive(); }
// Recieve message event private void ReadMQ_ReceiveCompleted(object sender, ReceiveCompletedEventArgs e) { Log.Debug("Read Message Queue Event Triggered"); //Read recieved message var msgRead = new Message(); msgRead = readMQ.EndReceive(e.AsyncResult); Log.Debug(msgRead.Label + " Recieved MsgID: " + msgRead.Id); if (msgRead.Label == "Plc_Config") { msgRead.Formatter = new XmlMessageFormatter(new Type[] { typeof(PlcConfigMsg) }); var msgData = ((PlcConfigMsg)msgRead.Body); // Instantiate Logix drivers logixEventDrv = new EthernetIPforCLXCom() { IPAddress = msgData.IPAddress, DisableSubscriptions = msgData.DisableSubscriptions, PollRateOverride = msgData.PollRateOverride, ProcessorSlot = msgData.ProcessorSlot, Port = msgData.Port }; Log.Information("Logix Event driver created"); logixSubscriptionDrv = new EthernetIPforCLXCom() { IPAddress = msgData.IPAddress, DisableSubscriptions = msgData.DisableSubscriptions, PollRateOverride = msgData.PollRateOverride, ProcessorSlot = msgData.ProcessorSlot, Port = msgData.Port }; Log.Information("Logix Subscription driver created"); logixTransactionDrv = new EthernetIPforCLXCom() { IPAddress = msgData.IPAddress, DisableSubscriptions = msgData.DisableSubscriptions, PollRateOverride = msgData.PollRateOverride, ProcessorSlot = msgData.ProcessorSlot, Port = msgData.Port }; Log.Information("Logix Transaction driver created"); // Set up read timers eventTimer = new Timer { Interval = msgData.EventPollRate }; eventTimer.Elapsed += new ElapsedEventHandler(OnEventTimer); subscriptionTimer = new Timer { Interval = msgData.SubscriptionPollRate }; subscriptionTimer.Elapsed += new ElapsedEventHandler(OnSubscriptionTimer); transactionTimer = new Timer { Interval = msgData.TransactionPollRate }; transactionTimer.Elapsed += new ElapsedEventHandler(OnTransactionTimer); // Get tag list from database var msgObject = new TagListReqMsg { getTagList = true }; var type = new Type[] { typeof(TagListReqMsg) }; using (var msg = new SendMessage()) { msg.Send(msgObject, "TagList_Request", type); } Log.Debug("Plc Config Message Processed" + " MsgID: " + msgRead.Id); } if (msgRead.Label == "TagList_Config") { msgRead.Formatter = new XmlMessageFormatter(new Type[] { typeof(TagListMsg) }); var msgData = ((TagListMsg)msgRead.Body); eventList = new List <ListTag>(); transactionList = new List <ListTag>(); subscriptionList = new List <ListTag>(); foreach (ListTag elem in msgData.List) { if (elem.TagTypeId == TagTypeConstants.eventType) { var tag = elem; eventList.Add(tag); Log.Debug("Tag added to event tag list: " + tag.Name); } if (elem.TagTypeId == TagTypeConstants.subscriptionType) { var tag = elem; subscriptionList.Add(tag); Log.Debug("Tag added to subscription tag list: " + tag.Name); } if (elem.TagTypeId == TagTypeConstants.transactionType) { var tag = elem; transactionList.Add(tag); Log.Debug("Tag added to transaction tag list: " + tag.Name); } } ; // Start read timers eventTimer.Start(); transactionTimer.Start(); subscriptionTimer.Start(); Log.Debug("Read timers started "); } // Resume listening for messages try { readMQ.BeginReceive(); Log.Information("ReadMQ Listening For Messages"); } catch (Exception ex) { Log.Error("ReadMQ Begin Recieve Exception: " + ex.Message); } }
private void OnReceivedMessage(object sender, ReceiveCompletedEventArgs e) { OnReceivedMessage(sender, e.Message); }
public void OnReceiveCompleted(Object source, ReceiveCompletedEventArgs asyncResult) { MessageQueue requestQueue = (MessageQueue)source; Message requestMessage = requestQueue.EndReceive(asyncResult.AsyncResult); try { Console.WriteLine("Received request"); Console.WriteLine("\tTime: {0}", DateTime.Now.ToString("HH:mm:ss.ffffff")); Console.WriteLine("\tMessage ID: {0}", requestMessage.Id); Console.WriteLine("\tCorrel. ID: {0}", "<n/a>"); Console.WriteLine("\tReply to: {0}", requestMessage.ResponseQueue.Path); Console.WriteLine("\tContents: {0}", requestMessage.Body.ToString()); string contents = requestMessage.Body.ToString(); //ROLEPLAY STUFF Console.WriteLine("Will you accept " + contents + " in your school?"); var input = Console.ReadLine(); if (input == "y") { contents = "Dear " + contents + " you have been accepted."; } else { contents = "Dear " + contents + " you have been rejected."; } //ROLEPLAY STUFF MessageQueue replyQueue = requestMessage.ResponseQueue; Message replyMessage = new Message(); replyMessage.Body = contents; replyMessage.CorrelationId = requestMessage.Id; replyQueue.Send(replyMessage); Console.WriteLine("Sent reply"); Console.WriteLine("\tTime: {0}", DateTime.Now.ToString("HH:mm:ss.ffffff")); Console.WriteLine("\tMessage ID: {0}", replyMessage.Id); Console.WriteLine("\tCorrel. ID: {0}", replyMessage.CorrelationId); Console.WriteLine("\tReply to: {0}", "<n/a>"); Console.WriteLine("\tContents: {0}", replyMessage.Body.ToString()); } catch (Exception) { Console.WriteLine("Invalid message detected"); Console.WriteLine("\tType: {0}", requestMessage.BodyType); Console.WriteLine("\tTime: {0}", DateTime.Now.ToString("HH:mm:ss.ffffff")); Console.WriteLine("\tMessage ID: {0}", requestMessage.Id); Console.WriteLine("\tCorrel. ID: {0}", "<n/a>"); Console.WriteLine("\tReply to: {0}", "<n/a>"); requestMessage.CorrelationId = requestMessage.Id; invalidQueue.Send(requestMessage); Console.WriteLine("Sent to invalid message queue"); Console.WriteLine("\tType: {0}", requestMessage.BodyType); Console.WriteLine("\tTime: {0}", DateTime.Now.ToString("HH:mm:ss.ffffff")); Console.WriteLine("\tMessage ID: {0}", requestMessage.Id); Console.WriteLine("\tCorrel. ID: {0}", requestMessage.CorrelationId); Console.WriteLine("\tReply to: {0}", requestMessage.ResponseQueue.Path); } requestQueue.BeginReceive(); }
void msmq_ReceiveCompleted(object sender, ReceiveCompletedEventArgs e) { try { //lstQueueData.Items.Insert(0,e.Message.Body.ToString()); msmq.EndReceive(e.AsyncResult); if (chkCount.Checked) { txtRemaining.Text = GetMessageCount(msmq).ToString(); string theItem = e.Message.Body.ToString(); string[] arrayOfStrings = theItem.Split(','); string workStation = arrayOfStrings[0]; string yoYoID = arrayOfStrings[1]; string lineNumber = arrayOfStrings[2]; string inspectionType = arrayOfStrings[3]; string issue = arrayOfStrings[4]; DateTime timeProcessed = Convert.ToDateTime(arrayOfStrings[5]); string connectionString = @"Data Source=.\SQLEXPRESS;Initial Catalog=yoyo;Persist Security Info=True;User ID=sa;Password=Conestoga1"; SqlConnection conn; conn = new SqlConnection(connectionString); SqlCommand sqlCmd = new SqlCommand( "INSERT INTO yoyoLog " + "(WorkArea, YoYoID, LineNumber, ProdState, InspectionDecision, DateTimeOfCompletion) " + "VALUES(" + "'" + workStation + "', " + "'" + yoYoID + "', " + "'" + lineNumber + "', " + "'" + inspectionType + "', " + "'" + issue + "', " + "'" + timeProcessed + "')" , conn); try { conn.Open(); sqlCmd.ExecuteNonQuery(); conn.Close(); } catch (Exception exception) { MessageBox.Show(exception.Message); } Application.DoEvents(); } System.Threading.Thread.Sleep(1); if (bRead) { msmq.BeginReceive(); } } catch { MessageBox.Show("Unhandled Exception"); } }