/// <summary> /// Redeliver the given message, putting it at the head of the queue /// </summary> public void Redeliver(ActiveMQMessage message) { lock (semaphore) { messagesToRedeliver.Add(message); } }
public void SetObjectProperty(ActiveMQMessage message, string name, object value) { PropertySetter setter = (PropertySetter) setters[name]; if (setter != null) { setter(message, value); } else { message.Properties[name] = value; } }
public object GetObjectProperty(ActiveMQMessage message, string name) { object getter = getters[name]; if (getter != null) { } return message.Properties[name]; }
/// <summary> /// Configures the message command /// </summary> protected void Configure(ActiveMQMessage message) { }
// Implementation methods public void DoSend(ActiveMQMessage message) { if (AsyncSend) { connection.OneWay(message); } else { connection.SyncRequest(message); } }
public IMessage CreateMessage() { ActiveMQMessage answer = new ActiveMQMessage(); Configure(answer); return answer; }
/// <summary> /// Method Enqueue /// </summary> public void Enqueue(ActiveMQMessage message) { lock (semaphore) { queue.Enqueue(message); messageReceivedEventHandle.Set(); } }
public bool matches(ActiveMQMessage message) { return matches(message.Destination); }
/// <summary> /// Method Dispatch /// </summary> /// <param name="message">An ActiveMQMessage</param> public void Dispatch(ActiveMQMessage message) { dispatcher.Enqueue(message); }
public void AfterRollback(ActiveMQMessage message) { // lets redeliver the message again message.RedeliveryCounter += 1; if (message.RedeliveryCounter > MaximumRedeliveryCount) { // lets send back a poisoned pill MessageAck ack = new MessageAck(); ack.AckType = (int) AckType.PoisonAck; ack.ConsumerId = info.ConsumerId; ack.Destination = message.Destination; ack.FirstMessageId = message.MessageId; ack.LastMessageId = message.MessageId; ack.MessageCount = 1; session.Connection.OneWay(ack); } else { dispatcher.Redeliver(message); } }
protected void DoClientAcknowledge(ActiveMQMessage message) { if (acknowledgementMode == AcknowledgementMode.ClientAcknowledge) { DoAcknowledge(message); } }
/// <summary> /// Method Enqueue /// </summary> public void Enqueue(ActiveMQMessage message) { lock (semaphore) { queue.Enqueue(message); PulseSemaphore(); } }