コード例 #1
0
        private void send(Destination destination, BinaryMessage message, int ttl, Action <Message> tuneMessage = null)
        {
            Message sonicMessage;

            switch (m_MessageFormat)
            {
            case MessageFormat.Text:
                var textMessage = m_Session.createTextMessage();
                textMessage.setText(Encoding.UTF8.GetString(message.Bytes ?? new byte[0]));
                sonicMessage = textMessage;
                break;

            case MessageFormat.Binary:
            default:
                var bytesMessage = m_Session.createBytesMessage();
                bytesMessage.writeBytes(message.Bytes ?? new byte[0]);
                sonicMessage = bytesMessage;
                break;
            }

            sonicMessage.setStringProperty(SonicTransportConstants.JAILED_PROPERTY_NAME, m_JailedTag);
            sonicMessage.setJMSType(message.Type);

            if (tuneMessage != null)
            {
                tuneMessage(sonicMessage);
            }
            MessageProducer producer = m_Session.createProducer(destination);

            using (Disposable.Create(producer.close))
            {
                producer.send(sonicMessage, DeliveryMode.PERSISTENT, DefaultMessageProperties.DEFAULT_PRIORITY, ttl);
            }
            //TODO: destroy session
        }
コード例 #2
0
        public void Put(string message)
        {
            var msg = _session.createTextMessage();

            msg.setStringProperty("JMSXGroupID", Guid.NewGuid().ToString());
            msg.setIntProperty("JMSXGroupSeq", 1);
            msg.setBooleanProperty("JMS_IBM_Last_Msg_In_Group", true);
            msg.setText(message);

            _producer.send(msg);
        }