/// <summary> /// Initializes a MessageQueue with binary formatter, with the input path and input OnReceive handler. /// </summary> /// <param name="path"> </param> /// <param name="handler">Method to call when the MQueue Receives a Message</param> /// <returns></returns> public static MessageQueue CreateMQ(string path, ReceiveCompletedEventHandler handler) { MessageQueue qMsg = null; try { if (!MessageQueue.Exists(path)) { MessageQueue.Create(path, true); } qMsg = new MessageQueue(path, QueueAccessMode.SendAndReceive); qMsg.Path = path; qMsg.Formatter = new System.Messaging.BinaryMessageFormatter(System.Runtime.Serialization.Formatters.FormatterAssemblyStyle.Simple, System.Runtime.Serialization.Formatters.FormatterTypeStyle.TypesAlways); qMsg.MessageReadPropertyFilter.DestinationQueue = true; qMsg.MessageReadPropertyFilter.Extension = true; qMsg.MessageReadPropertyFilter.IsFirstInTransaction = true; qMsg.MessageReadPropertyFilter.IsLastInTransaction = true; qMsg.MessageReadPropertyFilter.LookupId = true; qMsg.MessageReadPropertyFilter.Priority = true; qMsg.MessageReadPropertyFilter.SentTime = true; qMsg.MessageReadPropertyFilter.SourceMachine = true; qMsg.MessageReadPropertyFilter.TimeToBeReceived = true; qMsg.MessageReadPropertyFilter.TimeToReachQueue = true; if (handler != null) { qMsg.ReceiveCompleted += new ReceiveCompletedEventHandler(handler); } } catch (SystemException eX) { } return(qMsg); }
public IMessage Receive() { IMessage nmsMessage = null; if (messageQueue != null) { Message message; try { message = messageQueue.Receive(zeroTimeout); } catch { message = null; } if (null == message) { ReceiveCompletedEventHandler receiveMsg = delegate(Object source, ReceiveCompletedEventArgs asyncResult) { message = messageQueue.EndReceive(asyncResult.AsyncResult); pause.Set(); }; messageQueue.ReceiveCompleted += receiveMsg; messageQueue.BeginReceive(); pause.WaitOne(); messageQueue.ReceiveCompleted -= receiveMsg; } nmsMessage = ToNmsMessage(message); } return(nmsMessage); }
public void StartReceiving(ReceiveCompletedEventHandler receiveCompletedEventHandler) { _messageQueue.ReceiveCompleted += receiveCompletedEventHandler; _messageQueue.BeginReceive(); }
public MessageListener StartListener(string nombreCola, ReceiveCompletedEventHandler MQueueReceiveEventHandler) { MessageListener MsgListener; MessageQueue.EnableConnectionCache = false; MessageQueue cola = new MessageQueue(PRIVATE_QUEQUE + nombreCola); EstablecerFormateador(cola); cola.ReceiveCompleted += MQueueReceiveEventHandler; IAsyncResult MQResult = cola.BeginReceive(TimeSpan, cola); MsgListener.MQueue = cola; MsgListener.AsyncResult = MQResult; return MsgListener; }