Package org.apache.activemq.store
Interface TopicMessageStore
-
- All Superinterfaces:
MessageStore
,Service
- All Known Subinterfaces:
TopicReferenceStore
- All Known Implementing Classes:
JDBCTopicMessageStore
,JournalTopicMessageStore
,MemoryTopicMessageStore
,ProxyTopicMessageStore
public interface TopicMessageStore extends MessageStore
A MessageStore for durable topic subscriptions
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
acknowledge(ConnectionContext context, String clientId, String subscriptionName, MessageId messageId, MessageAck ack)
Stores the last acknowledged messgeID for the given subscription so that we can recover and commence dispatching messages from the last checkpointvoid
addSubscription(SubscriptionInfo subscriptionInfo, boolean retroactive)
Inserts the subscriber info due to a subscription changevoid
deleteSubscription(String clientId, String subscriptionName)
SubscriptionInfo[]
getAllSubscriptions()
Lists all the durable subscriptions for a given destination.int
getMessageCount(String clientId, String subscriberName)
Get the number of messages ready to deliver from the store to a durable subscriberlong
getMessageSize(String clientId, String subscriberName)
Get the total size of the messages ready to deliver from the store to the durable subscriberMessageStoreSubscriptionStatistics
getMessageStoreSubStatistics()
The subscription metrics contained in this storeSubscriptionInfo
lookupSubscription(String clientId, String subscriptionName)
Finds the subscriber entry for the given consumer infovoid
recoverNextMessages(String clientId, String subscriptionName, int maxReturned, MessageRecoveryListener listener)
For an active subscription - retrieve messages from the store for the subscriber after the lastMessageId messageIdvoid
recoverSubscription(String clientId, String subscriptionName, MessageRecoveryListener listener)
For the new subscription find the last acknowledged message ID and then find any new messages since then and dispatch them to the subscription.void
resetBatching(String clientId, String subscriptionName)
A hint to the Store to reset any batching state for a durable subscriber-
Methods inherited from interface org.apache.activemq.store.MessageStore
addMessage, addMessage, asyncAddQueueMessage, asyncAddQueueMessage, asyncAddTopicMessage, asyncAddTopicMessage, dispose, getDestination, getMessage, getMessageCount, getMessageSize, getMessageStoreStatistics, isEmpty, isPrioritizedMessages, recover, recoverNextMessages, registerIndexListener, removeAllMessages, removeAsyncMessage, removeMessage, resetBatching, setBatch, setMemoryUsage, setPrioritizedMessages, updateMessage
-
-
-
-
Method Detail
-
acknowledge
void acknowledge(ConnectionContext context, String clientId, String subscriptionName, MessageId messageId, MessageAck ack) throws IOException
Stores the last acknowledged messgeID for the given subscription so that we can recover and commence dispatching messages from the last checkpoint- Parameters:
context
-clientId
-subscriptionName
-messageId
-ack
-- Throws:
IOException
-
deleteSubscription
void deleteSubscription(String clientId, String subscriptionName) throws IOException
- Parameters:
clientId
-subscriptionName
-- Throws:
IOException
JMSException
-
recoverSubscription
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.- Parameters:
clientId
-subscriptionName
-listener
-- Throws:
Exception
-
recoverNextMessages
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- Parameters:
clientId
-subscriptionName
-maxReturned
-listener
-- Throws:
Exception
-
resetBatching
void resetBatching(String clientId, String subscriptionName)
A hint to the Store to reset any batching state for a durable subscriber- Parameters:
clientId
-subscriptionName
-
-
getMessageCount
int getMessageCount(String clientId, String subscriberName) throws IOException
Get the number of messages ready to deliver from the store to a durable subscriber- Parameters:
clientId
-subscriberName
-- Returns:
- the outstanding message count
- Throws:
IOException
-
getMessageSize
long getMessageSize(String clientId, String subscriberName) throws IOException
Get the total size of the messages ready to deliver from the store to the durable subscriber- Parameters:
clientId
-subscriberName
-- Returns:
- Throws:
IOException
-
getMessageStoreSubStatistics
MessageStoreSubscriptionStatistics getMessageStoreSubStatistics()
The subscription metrics contained in this store- Returns:
-
lookupSubscription
SubscriptionInfo lookupSubscription(String clientId, String subscriptionName) throws IOException
Finds the subscriber entry for the given consumer info- Parameters:
clientId
-subscriptionName
-- Returns:
- the SubscriptionInfo
- Throws:
IOException
-
getAllSubscriptions
SubscriptionInfo[] getAllSubscriptions() throws IOException
Lists all the durable subscriptions for a given destination.- Returns:
- an array SubscriptionInfos
- Throws:
IOException
-
addSubscription
void addSubscription(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.- Parameters:
subscriptionInfo
-retroactive
-- Throws:
IOException
-
-