Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

org.activemq.service.impl
Class DurableQueueMessageContainer  view DurableQueueMessageContainer download DurableQueueMessageContainer.java

java.lang.Object
  extended byorg.activemq.service.impl.DurableQueueMessageContainer
All Implemented Interfaces:
org.activemq.service.MessageContainer, org.activemq.service.MessageContainerAdmin, org.activemq.service.QueueMessageContainer, org.activemq.service.Service

public class DurableQueueMessageContainer
extends java.lang.Object
implements org.activemq.service.QueueMessageContainer, org.activemq.service.MessageContainerAdmin

A default implementation of a Durable Queue based org.activemq.service.MessageContainer which acts as an adapter between the org.activemq.service.MessageContainerManager requirements and those of the persistent org.activemq.store.MessageStore implementations.

Version:
$Revision: 1.1.1.1 $

Field Summary
private  boolean deadLetterQueue
           
private  org.activemq.service.QueueList deliveredMessages
          messages that have been delivered but not acknowledged
private  java.lang.String destinationName
           
private static org.apache.commons.logging.Log log
           
private  org.activemq.service.QueueList messagesToBeDelivered
          messages to be delivered
private  org.activemq.store.MessageStore messageStore
           
 
Constructor Summary
DurableQueueMessageContainer(org.activemq.store.PersistenceAdapter persistenceAdapter, org.activemq.store.MessageStore messageStore, java.lang.String destinationName)
           
DurableQueueMessageContainer(org.activemq.store.PersistenceAdapter persistenceAdapter, org.activemq.store.MessageStore messageStore, java.lang.String destinationName, org.activemq.service.QueueList messagesToBeDelivered, org.activemq.service.QueueList deliveredMessages)
           
 
Method Summary
 void addMessage(org.activemq.message.ActiveMQMessage message)
          Add an ActiveMQMessage to the message container
 boolean containsMessage(org.activemq.service.MessageIdentity messageIdentity)
          Returns whether or not this container contains the given message identity which provides an optimisation over getMessage() where the message does not need to be loaded.
 void delete(org.activemq.service.MessageIdentity messageID, org.activemq.message.MessageAck ack)
          Delete a message - if no
private  void doDelete(org.activemq.service.MessageIdentity messageID)
           
 void empty()
          Deletes all the messages that a container holds.
 java.lang.String getDestinationName()
           
 org.activemq.message.ActiveMQMessage getMessage(org.activemq.service.MessageIdentity messageID)
          Return the ActiveMQMessage that matches the Id
 org.activemq.service.MessageContainerAdmin getMessageContainerAdmin()
           
 boolean isDeadLetterQueue()
          returns true if this container is a dead letter queue
 org.activemq.message.ActiveMQMessage peekNext(org.activemq.service.MessageIdentity messageID)
          Used for browsing a MessageContainer this returns the next message in the container after the messageId
 org.activemq.message.ActiveMQMessage poll()
          Some implementations may need to poll to fill subscriptions this returns the next message in the container
 void recoverMessageToBeDelivered(org.activemq.service.MessageIdentity messageIdentity)
          Invoked during the recovery to add the given message to the end of the messages to be delivered.
 void registerMessageInterest(org.activemq.service.MessageIdentity messageIdentity)
          Does nothing since when we receive an acknowledgement on a queue we can delete the message
 void reset()
          called to reset dispatch pointers if a new Message Consumer joins
 void returnMessage(org.activemq.service.MessageIdentity messageIdentity)
          After a poll() on the Container, if a message can't be dispatched, it is returned
 void setDeadLetterQueue(boolean value)
          set this MessageContainer to be a dead letter queue
 void start()
          This container has just been loaded from disk and so it needs to be recovered, that is iterate through all the message IDs in the persistent store and add them to the in memory list of message IDs to be dispatched by consumers
 void stop()
          Called to shutdown the service
 void unregisterMessageInterest(org.activemq.service.MessageIdentity ack)
          Does nothing since when we receive an acknowledgement on a queue we can delete the message
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

log

private static final org.apache.commons.logging.Log log

messageStore

private org.activemq.store.MessageStore messageStore

destinationName

private java.lang.String destinationName

deadLetterQueue

private boolean deadLetterQueue

messagesToBeDelivered

private org.activemq.service.QueueList messagesToBeDelivered
messages to be delivered


deliveredMessages

private org.activemq.service.QueueList deliveredMessages
messages that have been delivered but not acknowledged

Constructor Detail

DurableQueueMessageContainer

public DurableQueueMessageContainer(org.activemq.store.PersistenceAdapter persistenceAdapter,
                                    org.activemq.store.MessageStore messageStore,
                                    java.lang.String destinationName)

DurableQueueMessageContainer

public DurableQueueMessageContainer(org.activemq.store.PersistenceAdapter persistenceAdapter,
                                    org.activemq.store.MessageStore messageStore,
                                    java.lang.String destinationName,
                                    org.activemq.service.QueueList messagesToBeDelivered,
                                    org.activemq.service.QueueList deliveredMessages)
Method Detail

getDestinationName

public java.lang.String getDestinationName()
Specified by:
getDestinationName in interface org.activemq.service.MessageContainer

addMessage

public void addMessage(org.activemq.message.ActiveMQMessage message)
                throws javax.jms.JMSException
Description copied from interface: org.activemq.service.MessageContainer
Add an ActiveMQMessage to the message container

Specified by:
addMessage in interface org.activemq.service.MessageContainer

delete

public void delete(org.activemq.service.MessageIdentity messageID,
                   org.activemq.message.MessageAck ack)
            throws javax.jms.JMSException
Description copied from interface: org.activemq.service.MessageContainer
Delete a message - if no

Specified by:
delete in interface org.activemq.service.MessageContainer

doDelete

private void doDelete(org.activemq.service.MessageIdentity messageID)
               throws javax.jms.JMSException

getMessage

public org.activemq.message.ActiveMQMessage getMessage(org.activemq.service.MessageIdentity messageID)
                                                throws javax.jms.JMSException
Description copied from interface: org.activemq.service.MessageContainer
Return the ActiveMQMessage that matches the Id

Specified by:
getMessage in interface org.activemq.service.MessageContainer

containsMessage

public boolean containsMessage(org.activemq.service.MessageIdentity messageIdentity)
                        throws javax.jms.JMSException
Description copied from interface: org.activemq.service.MessageContainer
Returns whether or not this container contains the given message identity which provides an optimisation over getMessage() where the message does not need to be loaded.

Specified by:
containsMessage in interface org.activemq.service.MessageContainer

registerMessageInterest

public void registerMessageInterest(org.activemq.service.MessageIdentity messageIdentity)
Does nothing since when we receive an acknowledgement on a queue we can delete the message

Specified by:
registerMessageInterest in interface org.activemq.service.MessageContainer

unregisterMessageInterest

public void unregisterMessageInterest(org.activemq.service.MessageIdentity ack)
Does nothing since when we receive an acknowledgement on a queue we can delete the message

Specified by:
unregisterMessageInterest in interface org.activemq.service.MessageContainer

poll

public org.activemq.message.ActiveMQMessage poll()
                                          throws javax.jms.JMSException
Description copied from interface: org.activemq.service.QueueMessageContainer
Some implementations may need to poll to fill subscriptions this returns the next message in the container

Specified by:
poll in interface org.activemq.service.QueueMessageContainer

peekNext

public org.activemq.message.ActiveMQMessage peekNext(org.activemq.service.MessageIdentity messageID)
                                              throws javax.jms.JMSException
Description copied from interface: org.activemq.service.QueueMessageContainer
Used for browsing a MessageContainer this returns the next message in the container after the messageId

Specified by:
peekNext in interface org.activemq.service.QueueMessageContainer

returnMessage

public void returnMessage(org.activemq.service.MessageIdentity messageIdentity)
                   throws javax.jms.JMSException
Description copied from interface: org.activemq.service.QueueMessageContainer
After a poll() on the Container, if a message can't be dispatched, it is returned

Specified by:
returnMessage in interface org.activemq.service.QueueMessageContainer

reset

public void reset()
           throws javax.jms.JMSException
called to reset dispatch pointers if a new Message Consumer joins

Specified by:
reset in interface org.activemq.service.QueueMessageContainer

start

public void start()
           throws javax.jms.JMSException
Description copied from interface: org.activemq.service.QueueMessageContainer
This container has just been loaded from disk and so it needs to be recovered, that is iterate through all the message IDs in the persistent store and add them to the in memory list of message IDs to be dispatched by consumers

Specified by:
start in interface org.activemq.service.QueueMessageContainer

recoverMessageToBeDelivered

public void recoverMessageToBeDelivered(org.activemq.service.MessageIdentity messageIdentity)
                                 throws javax.jms.JMSException
Description copied from interface: org.activemq.service.QueueMessageContainer
Invoked during the recovery to add the given message to the end of the messages to be delivered.

Specified by:
recoverMessageToBeDelivered in interface org.activemq.service.QueueMessageContainer

stop

public void stop()
          throws javax.jms.JMSException
Description copied from interface: org.activemq.service.Service
Called to shutdown the service

Specified by:
stop in interface org.activemq.service.Service

getMessageContainerAdmin

public org.activemq.service.MessageContainerAdmin getMessageContainerAdmin()
Specified by:
getMessageContainerAdmin in interface org.activemq.service.MessageContainer

empty

public void empty()
           throws javax.jms.JMSException
Description copied from interface: org.activemq.service.MessageContainerAdmin
Deletes all the messages that a container holds. This is usally used when the container is being destroyed.

Specified by:
empty in interface org.activemq.service.MessageContainerAdmin

isDeadLetterQueue

public boolean isDeadLetterQueue()
Description copied from interface: org.activemq.service.MessageContainer
returns true if this container is a dead letter queue

Specified by:
isDeadLetterQueue in interface org.activemq.service.MessageContainer

setDeadLetterQueue

public void setDeadLetterQueue(boolean value)
Description copied from interface: org.activemq.service.QueueMessageContainer
set this MessageContainer to be a dead letter queue

Specified by:
setDeadLetterQueue in interface org.activemq.service.QueueMessageContainer