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 }
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); }