Exemple #1
0
        protected IBytesMessage CreateNativeMessage(ISession session, IMessageProducer producer)
        {
            var mqMessage = session.CreateBytesMessage();

            mqMessage.JMSMessageID = messageToSend.Id;

            if (messageToSend.Body != null)
            {
                mqMessage.WriteBytes(messageToSend.Body);
            }

            if (!string.IsNullOrEmpty(messageToSend.CorrelationId))
            {
                mqMessage.JMSCorrelationID = messageToSend.CorrelationId;
            }

            producer.DeliveryMode = messageToSend.Recoverable
                                        ? DeliveryMode.Persistent
                                        : DeliveryMode.NonPersistent;

            if (messageToSend.TimeToBeReceived < TimeSpan.MaxValue)
            {
                producer.TimeToLive = (long)messageToSend.TimeToBeReceived.TotalMilliseconds;
            }

            mqMessage.SetStringProperty(Constants.NSB_HEADERS, Serializer.SerializeObject(messageToSend.Headers));

            if (messageToSend.Headers.ContainsKey(Headers.EnclosedMessageTypes))
            {
                mqMessage.JMSType =
                    messageToSend.Headers[Headers.EnclosedMessageTypes]
                    .Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries)
                    .FirstOrDefault();
            }

            if (messageToSend.Headers.ContainsKey(Headers.ContentType))
            {
                mqMessage.SetStringProperty(XMSC.JMS_IBM_FORMAT, messageToSend.Headers[Headers.ContentType]);
            }


            if (messageToSend.ReplyToAddress != null && messageToSend.ReplyToAddress != Address.Undefined)
            {
                var replyToAddress = new WebSphereMqAddress(messageToSend.ReplyToAddress);

                mqMessage.JMSReplyTo = replyToAddress.CreateDestination(session);
            }
            return(mqMessage);
        }
Exemple #2
0
 public void Send(TransportMessage message, Address address)
 {
     messageToSend      = message;
     destinationAddress = new WebSphereMqAddress(address);
     InternalSend();
 }