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.service.impl
Class DurableTopicMessageContainerManager

    java.lang.Object
      org.codehaus.activemq.service.impl.MessageContainerManagerSupport
          org.codehaus.activemq.service.impl.DurableTopicMessageContainerManager

All Implemented Interfaces:
  MessageContainerManager, Service

Direct Known Subclasses:
  TransientTopicMessageContainerManager

public class DurableTopicMessageContainerManager
extends MessageContainerManagerSupport

A default Broker used for Topic messages for durable consumers

Version:
  $Revision: 1.25 $

Field Summary
`protected Map` | `activeSubscriptions`
`protected FilterFactory` | `filterFactory`
`protected SubscriptionContainer` | `subscriptionContainer`

Fields inherited from class org.codehaus.activemq.service.impl.MessageContainerManagerSupport
`dispatcher, messageContainers`

Constructor Summary
`DurableTopicMessageContainerManager(PersistenceAdapter persistenceAdapter, RedeliveryPolicy redeliveryPolicy)`
`DurableTopicMessageContainerManager(PersistenceAdapter persistenceAdapter, SubscriptionContainer subscriptionContainer, FilterFactory filterFactory, Dispatcher dispatcher)`

Method Summary
`void` | `acknowledgeMessage(BrokerClient client, MessageAck ack)` Acknowledge a message as being read and consumed byh the Consumer
`void` | `acknowledgeTransactedMessage(BrokerClient client, String transactionId, MessageAck ack)` This is a hook to notify the dispatcher for the clients subscription that we have acknowledged a message within a transaction but before the commit - so the message is not really being acknowledged here but this method is intended to be a hook to let the dispatcher know that we can now send another message to the client.
`void` | `addMessageConsumer(BrokerClient client, ConsumerInfo info)`
`void` | `commitTransaction(BrokerClient client, String transactionId)` A hook when the transaction is about to be commited; so apply all outstanding commands to the Journal if using a Journal (transaction log)
`protected MessageContainer` | `createContainer(String destinationName)` Factory method to create a new `MessageContainer`
`protected Destination` | `createDestination(String destinationName)` Factory method to create a new `Destination`
`protected Filter` | `createFilter(ConsumerInfo info)` Create filter for a Consumer
`void` | `deleteSubscription(String clientId, String subscriberName)` Delete a durable subscriber
`protected void` | `doAddMessageConsumer(BrokerClient client, ConsumerInfo info)`
`protected void` | `loadAllMessageContainers()` Called when recovering a wildcard subscription where we need to load all the durable message containers (for which we have any outstanding messages to deliver) into RAM
`void` | `poll()` poll or messages
`protected void` | `recoverSubscriptions(Subscription subscription)` This method is called when a new durable subscription is started and so we need to go through each matching message container and dispatch any matching messages that may be outstanding
`void` | `redeliverMessage(BrokerClient client, MessageAck ack)` Called after a rollback of a JMS transaction to redeliver the message to the consumers dispatch queue
`void` | `removeMessageConsumer(BrokerClient client, ConsumerInfo info)`
`void` | `rollbackTransaction(BrokerClient client, String transactionId)` A hook when the transaction is about to be rolled back; so discard all outstanding commands that are pending to be written to the Journal
`void` | `sendMessage(BrokerClient client, ActiveMQMessage message)`

Methods inherited from class org.codehaus.activemq.service.impl.MessageContainerManagerSupport
`getContainer, getDestinations, isMaintainDestinationStats, loadContainer, setMaintainDestinationStats, start, stop, updateAcknowledgeStats, updateSendStats`

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

Field Detail

### subscriptionContainer

    protected SubscriptionContainer subscriptionContainer

### filterFactory

    protected FilterFactory filterFactory

### activeSubscriptions

    protected Map activeSubscriptions

Constructor Detail

### DurableTopicMessageContainerManager

    public DurableTopicMessageContainerManager(PersistenceAdapter persistenceAdapter,
                                               RedeliveryPolicy redeliveryPolicy)

### DurableTopicMessageContainerManager

    public DurableTopicMessageContainerManager(PersistenceAdapter persistenceAdapter,
                                               SubscriptionContainer subscriptionContainer,
                                               FilterFactory filterFactory,
                                               Dispatcher dispatcher)

Method Detail

### addMessageConsumer

    public void addMessageConsumer(BrokerClient client,
                                   ConsumerInfo info)
                            throws JMSException

  Parameters:
    `client` -
    `info` -
  Throws:
    `JMSException`

### removeMessageConsumer

    public void removeMessageConsumer(BrokerClient client,
                                      ConsumerInfo info)
                               throws JMSException

  Parameters:
    `client` -
    `info` -
  Throws:
    `JMSException`

### deleteSubscription

    public void deleteSubscription(String clientId,
                                   String subscriberName)
                            throws JMSException

  Delete a durable subscriber

  Parameters:
    `clientId` -
    `subscriberName` -
  Throws:
    `JMSException` - if the subscriber doesn't exist or is still active

### sendMessage

    public void sendMessage(BrokerClient client,
                            ActiveMQMessage message)
                     throws JMSException

  Parameters:
    `client` -
    `message` -
  Throws:
    `JMSException`

### acknowledgeMessage

    public void acknowledgeMessage(BrokerClient client,
                                   MessageAck ack)
                            throws JMSException

  Acknowledge a message as being read and consumed byh the Consumer

  Parameters:
    `client` -
    `ack` -
  Throws:
    `JMSException`

### acknowledgeTransactedMessage

    public void acknowledgeTransactedMessage(BrokerClient client,
                                             String transactionId,
                                             MessageAck ack)
                                      throws JMSException

  Description copied from interface: `MessageContainerManager`
  This is a hook to notify the dispatcher for the clients subscription that we have acknowledged a message within a transaction but before the commit - so the message is not really being acknowledged here but this method is intended to be a hook to let the dispatcher know that we can now send another message to the client.

  Without this hook, if we have a prefetch value of 1, we can never consume 2 messages in a transaction, since the ack for the first message never arrives until the commit()

  Throws:
    `JMSException`

### redeliverMessage

    public void redeliverMessage(BrokerClient client,
                                 MessageAck ack)
                          throws JMSException

  Description copied from interface: `MessageContainerManager`
  Called after a rollback of a JMS transaction to redeliver the message to the consumers dispatch queue

  Parameters:
    `client` -
    `ack` -
  Throws:
    `JMSException`

### poll

    public void poll()
              throws JMSException

  poll or messages

  Throws:
    `JMSException`

### commitTransaction

    public void commitTransaction(BrokerClient client,
                                  String transactionId)

  Description copied from interface: `MessageContainerManager`
  A hook when the transaction is about to be commited; so apply all outstanding commands to the Journal if using a Journal (transaction log)

  Parameters:
    `client` -
    `transactionId` -

### rollbackTransaction

    public void rollbackTransaction(BrokerClient client,
                                    String transactionId)

  Description copied from interface: `MessageContainerManager`
  A hook when the transaction is about to be rolled back; so discard all outstanding commands that are pending to be written to the Journal

  Parameters:
    `client` -
    `transactionId` -

### createContainer

    protected MessageContainer createContainer(String destinationName)
                                        throws JMSException

  Description copied from class: `MessageContainerManagerSupport`
  Factory method to create a new `MessageContainer`

  Specified by:
    `createContainer` in class `MessageContainerManagerSupport`
  Throws:
    `JMSException`

### createDestination

    protected Destination createDestination(String destinationName)

  Description copied from class: `MessageContainerManagerSupport`
  Factory method to create a new `Destination`

  Specified by:
    `createDestination` in class `MessageContainerManagerSupport`

### doAddMessageConsumer

    protected void doAddMessageConsumer(BrokerClient client,
                                        ConsumerInfo info)
                                 throws JMSException

  Throws:
    `JMSException`

### recoverSubscriptions

    protected void recoverSubscriptions(Subscription subscription)
                                 throws JMSException

  This method is called when a new durable subscription is started and so we need to go through each matching message container and dispatch any matching messages that may be outstanding

  Parameters:
    `subscription` -
  Throws:
    `JMSException`

### loadAllMessageContainers

    protected void loadAllMessageContainers()
                                     throws JMSException

  Called when recovering a wildcard subscription where we need to load all the durable message containers (for which we have any outstanding messages to deliver) into RAM

  Throws:
    `JMSException`

### createFilter

    protected Filter createFilter(ConsumerInfo info)
                           throws JMSException

  Create filter for a Consumer

  Parameters:
    `info` -
  Returns:
    the Fitler
  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.