Exemplo n.º 1
0
 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);
     }
 }
Exemplo n.º 2
0
 protected virtual MessageAck CreateMessageAck(Message message)
 {
     MessageAck ack = new MessageAck();
     ack.AckType = (int) AckType.ConsumedAck;
     ack.ConsumerId = info.ConsumerId;
     ack.Destination = message.Destination;
     ack.FirstMessageId = message.MessageId;
     ack.LastMessageId = message.MessageId;
     ack.MessageCount = 1;
     
     if (session.Transacted)
     {
         session.DoStartTransaction();
         ack.TransactionId = session.TransactionContext.TransactionId;
         session.TransactionContext.AddSynchronization(new MessageConsumerSynchronization(this, message));
     }
     return ack;
 }