Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.codehaus.activemq.store.cache
Class CacheTopicMessageStore

    java.lang.Object
      org.codehaus.activemq.store.cache.CacheMessageStore
          org.codehaus.activemq.store.cache.CacheTopicMessageStore

All Implemented Interfaces:
  CacheMessageStoreAware, MessageStore, Service, TopicMessageStore

public class CacheTopicMessageStore
extends CacheMessageStore
implements TopicMessageStore

A MessageStore that uses an in memory cache to speed up getMessage() method calls.

Version:
  $Revision: 1.2 $

Constructor Summary
`CacheTopicMessageStore(CachePersistenceAdapter adapter, TopicMessageStore longTermStore, MessageCache cache)`

Method Summary
`void` | `decrementMessageCountAndMaybeDelete(MessageIdentity messageIdentity, MessageAck ack)` Decrement the reference count of this message ID and if there are no more references then delete the message from persistent store (or maybe archive it off somewhere)
`MessageIdentity` | `getLastestMessageIdentity()` Returns the last message identity that was delivered on this container which can then be used as a checkpoint so that when new durable consumers start, we know where to checkpoint their subscriptions.
`SubscriberEntry` | `getSubscriberEntry(ConsumerInfo info)` Finds the subscriber entry for the given consumer info
`void` | `incrementMessageCount(MessageIdentity messageId)` Increments the reference count of the message ID as its been dispatched to another subscriber.
`void` | `recoverSubscription(Subscription subscription, MessageIdentity lastDispatchedMessage)` For the new subcription find the last acknowledged message ID and then find any new messages since then and dispatch them to the subscription.
`void` | `setLastAcknowledgedMessageIdentity(Subscription subscription, MessageIdentity messageIdentity)` Stores the last acknowledged messgeID for the given subscription so that we can recover and commence dispatching messages from the last checkpoint
`void` | `setMessageContainer(MessageContainer container)` Called before the service is started so that the store can communicate with the container when recovering
`void` | `setSubscriberEntry(ConsumerInfo info, SubscriberEntry subscriberEntry)` Inserts or updates the subscriber info due to a subscription change

Methods inherited from class org.codehaus.activemq.store.cache.CacheMessageStore
`addMessage, getLongTermStore, getMessage, recover, removeMessage, setCacheMessageStore, start, stop`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface org.codehaus.activemq.store.MessageStore
`addMessage, getMessage, recover, removeMessage`

Methods inherited from interface org.codehaus.activemq.service.Service
`start, stop`

Constructor Detail

### CacheTopicMessageStore

    public CacheTopicMessageStore(CachePersistenceAdapter adapter,
                                  TopicMessageStore longTermStore,
                                  MessageCache cache)

Method Detail

### setLastAcknowledgedMessageIdentity

    public void setLastAcknowledgedMessageIdentity(Subscription subscription,
                                                   MessageIdentity messageIdentity)
                                            throws JMSException

  Description copied from interface: `TopicMessageStore`
  Stores the last acknowledged messgeID for the given subscription so that we can recover and commence dispatching messages from the last checkpoint

  Specified by:
    `setLastAcknowledgedMessageIdentity` in interface `TopicMessageStore`
  Parameters:
    `subscription` -
    `messageIdentity` -
  Throws:
    `JMSException`

### getLastestMessageIdentity

    public MessageIdentity getLastestMessageIdentity()
                                              throws JMSException

  Description copied from interface: `TopicMessageStore`
  Returns the last message identity that was delivered on this container which can then be used as a checkpoint so that when new durable consumers start, we know where to checkpoint their subscriptions.

  Note that this method does not need to return a valid messageID, purely the sequence number.

  Specified by:
    `getLastestMessageIdentity` in interface `TopicMessageStore`
  Returns:
    the last message identity which was persisted in the durable store or null if the store is empty.
  Throws:
    `JMSException`

### recoverSubscription

    public void recoverSubscription(Subscription subscription,
                                    MessageIdentity lastDispatchedMessage)
                             throws JMSException

  Description copied from interface: `TopicMessageStore`
  For the new subcription find the last acknowledged message ID and then find any new messages since then and dispatch them to the subscription.

  If this is a new subscription then the lastDispatchMessage should be written to the acknowledgement table to write a checkpoint so that when we recover we will start from the correct point.

  e.g. if we dispatched some messages to a new durable topic subscriber, then went down before acknowledging any messages, we need to know the correct point from which to recover from.

  Specified by:
    `recoverSubscription` in interface `TopicMessageStore`
  Parameters:
    `subscription` -
    `lastDispatchedMessage` -
  Throws:
    `JMSException`

### setSubscriberEntry

    public void setSubscriberEntry(ConsumerInfo info,
                                   SubscriberEntry subscriberEntry)
                            throws JMSException

  Description copied from interface: `TopicMessageStore`
  Inserts or updates the subscriber info due to a subscription change

  Specified by:
    `setSubscriberEntry` in interface `TopicMessageStore`
  Parameters:
    `info` -
    `subscriberEntry` -
  Throws:
    `JMSException`

### getSubscriberEntry

    public SubscriberEntry getSubscriberEntry(ConsumerInfo info)
                                       throws JMSException

  Description copied from interface: `TopicMessageStore`
  Finds the subscriber entry for the given consumer info

  Specified by:
    `getSubscriberEntry` in interface `TopicMessageStore`
  Parameters:
    `info` -
  Returns:
  Throws:
    `JMSException`

### setMessageContainer

    public void setMessageContainer(MessageContainer container)

  Description copied from interface: `TopicMessageStore`
  Called before the service is started so that the store can communicate with the container when recovering

  Specified by:
    `setMessageContainer` in interface `TopicMessageStore`
  Parameters:
    `container` -

### incrementMessageCount

    public void incrementMessageCount(MessageIdentity messageId)
                               throws JMSException

  Description copied from interface: `TopicMessageStore`
  Increments the reference count of the message ID as its been dispatched to another subscriber.

  Specified by:
    `incrementMessageCount` in interface `TopicMessageStore`
  Parameters:
    `messageId` -
  Throws:
    `JMSException`

### decrementMessageCountAndMaybeDelete

    public void decrementMessageCountAndMaybeDelete(MessageIdentity messageIdentity,
                                                    MessageAck ack)
                                             throws JMSException

  Description copied from interface: `TopicMessageStore`
  Decrement the reference count of this message ID and if there are no more references then delete the message from persistent store (or maybe archive it off somewhere)

  Specified by:
    `decrementMessageCountAndMaybeDelete` in interface `TopicMessageStore`
  Parameters:
    `messageIdentity` -
    `ack` -
  Throws:
    `JMSException`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2004 Protique, Ltd.. All Rights Reserved.