Example #1
0
 public void RollbackDuplicate(IDispatcher dispatcher, Message message)
 {
     lock (this.mutex)
     {
         if (checkForDuplicates && message != null)
         {
             ActiveMQDestination destination = message.Destination;
             if (destination != null)
             {
                 if (destination.IsQueue)
                 {
                     ActiveMQMessageAudit audit = null;
                     if (destinations.TryGetValue(destination, out audit))
                     {
                         audit.Rollback(message.MessageId);
                     }
                 }
                 else
                 {
                     ActiveMQMessageAudit audit = null;
                     if (dispatchers.TryGetValue(dispatcher, out audit))
                     {
                         audit.Rollback(message.MessageId);
                     }
                 }
             }
         }
     }
 }
Example #2
0
        public bool IsDuplicate(IDispatcher dispatcher, Message message)
        {
            bool result = false;

            lock (this.mutex)
            {
                if (checkForDuplicates && message != null)
                {
                    ActiveMQDestination destination = message.Destination;
                    if (destination != null)
                    {
                        if (destination.IsQueue)
                        {
                            ActiveMQMessageAudit audit = null;
                            if (!destinations.TryGetValue(destination, out audit))
                            {
                                audit = new ActiveMQMessageAudit(auditDepth, auditMaximumProducerNumber);
                                destinations.Add(destination, audit);
                            }
                            result = audit.IsDuplicate(message.MessageId);
                        }
                        else
                        {
                            ActiveMQMessageAudit audit = null;
                            if (!dispatchers.TryGetValue(dispatcher, out audit))
                            {
                                audit = new ActiveMQMessageAudit(auditDepth, auditMaximumProducerNumber);
                                dispatchers.Add(dispatcher, audit);
                            }
                            result = audit.IsDuplicate(message.MessageId);
                        }
                    }
                }
            }
            return(result);
        }