Home » activemq-parent-5.3.1-source-release » org.apache » activemq » store » [javadoc | source]
org.apache.activemq.store
public interface: TopicMessageStore [javadoc | source]

All Implemented Interfaces:
    MessageStore

All Known Implementing Classes:
    JDBCTopicMessageStore, KahaDBTopicMessageStore, KahaDBTopicMessageStore, TopicReferenceStore, KahaTopicMessageStore, JournalTopicMessageStore, JPATopicReferenceStore, KahaTopicReferenceStore, ProxyTopicMessageStore, AMQTopicMessageStore, JPATopicMessageStore, MemoryTopicMessageStore

A MessageStore for durable topic subscriptions
Method from org.apache.activemq.store.TopicMessageStore Summary:
acknowledge,   addSubsciption,   deleteSubscription,   getAllSubscriptions,   getMessageCount,   lookupSubscription,   recoverNextMessages,   recoverSubscription,   resetBatching
Method from org.apache.activemq.store.TopicMessageStore Detail:
 public  void acknowledge(ConnectionContext context,
    String clientId,
    String subscriptionName,
    MessageId messageId) throws IOException
    Stores the last acknowledged messgeID for the given subscription so that we can recover and commence dispatching messages from the last checkpoint
 public  void addSubsciption(SubscriptionInfo subscriptionInfo,
    boolean retroactive) throws IOException
    Inserts the subscriber info due to a subscription change

    If this is a new subscription and the retroactive is false, then the last message sent to the topic should be set as the last message acknowledged by they new subscription. Otherwise, if retroactive is true, then create the subscription without it having an acknowledged message so that on recovery, all message recorded for the topic get replayed.

 public  void deleteSubscription(String clientId,
    String subscriptionName) throws IOException
 public SubscriptionInfo[] getAllSubscriptions() throws IOException
    Lists all the durable subscriptions for a given destination.
 public int getMessageCount(String clientId,
    String subscriberName) throws IOException
    Get the number of messages ready to deliver from the store to a durable subscriber
 public SubscriptionInfo lookupSubscription(String clientId,
    String subscriptionName) throws IOException
    Finds the subscriber entry for the given consumer info
 public  void recoverNextMessages(String clientId,
    String subscriptionName,
    int maxReturned,
    MessageRecoveryListener listener) throws Exception
    For an active subscription - retrieve messages from the store for the subscriber after the lastMessageId messageId

 public  void recoverSubscription(String clientId,
    String subscriptionName,
    MessageRecoveryListener listener) throws Exception
    For the new subscription find the last acknowledged message ID and then find any new messages since then and dispatch them to the subscription.

    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.

 public  void resetBatching(String clientId,
    String subscriptionName)
    A hint to the Store to reset any batching state for a durable subsriber