org.activemq.store
Interface TopicMessageStore

All Superinterfaces:
MessageStore, Service
All Known Implementing Classes:
CacheTopicMessageStore, JDBCTopicMessageStore, JournalTopicMessageStore, ProxyTopicMessageStore, VMTopicMessageStore

public interface TopicMessageStore
extends MessageStore

A MessageStore for durable topic subscriptions

Version:
$Revision: 1.1.1.1 $

Method Summary
 void decrementMessageCountAndMaybeDelete(MessageIdentity msgId)
          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)
 void deleteSubscription(String subscription)
           
 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(String subscriptionId, MessageIdentity lastDispatchedMessage, RecoveryListener listener)
          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(String 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 setSubscriberEntry(ConsumerInfo info, SubscriberEntry subscriberEntry)
          Inserts or updates the subscriber info due to a subscription change
 
Methods inherited from interface org.activemq.store.MessageStore
addMessage, getMessage, recover, removeAllMessages, removeMessage
 
Methods inherited from interface org.activemq.service.Service
start, stop
 

Method Detail

incrementMessageCount

void incrementMessageCount(MessageIdentity messageId)
                           throws JMSException
Increments the reference count of the message ID as its been dispatched to another subscriber.

Parameters:
messageId -
Throws:
JMSException

decrementMessageCountAndMaybeDelete

void decrementMessageCountAndMaybeDelete(MessageIdentity msgId)
                                         throws JMSException
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)

Parameters:
msgId -
Throws:
JMSException

setLastAcknowledgedMessageIdentity

void setLastAcknowledgedMessageIdentity(String subscription,
                                        MessageIdentity messageIdentity)
                                        throws JMSException
Stores the last acknowledged messgeID for the given subscription so that we can recover and commence dispatching messages from the last checkpoint

Parameters:
subscriptionPersistentId -
messageIdentity -
Throws:
JMSException

deleteSubscription

void deleteSubscription(String subscription)
                        throws JMSException
Parameters:
sub -
Throws:
JMSException

recoverSubscription

void recoverSubscription(String subscriptionId,
                         MessageIdentity lastDispatchedMessage,
                         RecoveryListener listener)
                         throws JMSException
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.

Parameters:
subscription -
lastDispatchedMessage -
Throws:
JMSException

getLastestMessageIdentity

MessageIdentity getLastestMessageIdentity()
                                          throws JMSException
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.

Returns:
the last message identity which was persisted in the durable store or null if the store is empty.
Throws:
JMSException

getSubscriberEntry

SubscriberEntry getSubscriberEntry(ConsumerInfo info)
                                   throws JMSException
Finds the subscriber entry for the given consumer info

Parameters:
info -
Returns:
Throws:
JMSException

setSubscriberEntry

void setSubscriberEntry(ConsumerInfo info,
                        SubscriberEntry subscriberEntry)
                        throws JMSException
Inserts or updates the subscriber info due to a subscription change

Parameters:
info -
subscriberEntry -
Throws:
JMSException


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