Interface PersistenceAdapter

  • All Superinterfaces:
    org.apache.activemq.Service
    All Known Implementing Classes:
    MemoryPersistenceAdapter

    public interface PersistenceAdapter
    extends org.apache.activemq.Service
    Adapter to the actual persistence mechanism used with ActiveMQ
    • Method Detail

      • getDestinations

        Set<org.apache.activemq.command.ActiveMQDestination> getDestinations()
        Returns a set of all the ActiveMQDestination objects that the persistence store is aware exist.
        Returns:
        active destinations
      • createQueueMessageStore

        MessageStore createQueueMessageStore​(org.apache.activemq.command.ActiveMQQueue destination)
                                      throws IOException
        Factory method to create a new queue message store with the given destination name
        Parameters:
        destination -
        Returns:
        the message store
        Throws:
        IOException
      • removeQueueMessageStore

        void removeQueueMessageStore​(org.apache.activemq.command.ActiveMQQueue destination)
        Cleanup method to remove any state associated with the given destination. This method does not stop the message store (it might not be cached).
        Parameters:
        destination - Destination to forget
      • removeTopicMessageStore

        void removeTopicMessageStore​(org.apache.activemq.command.ActiveMQTopic destination)
        Cleanup method to remove any state associated with the given destination This method does not stop the message store (it might not be cached).
        Parameters:
        destination - Destination to forget
      • beginTransaction

        void beginTransaction​(ConnectionContext context)
                       throws IOException
        This method starts a transaction on the persistent storage - which is nothing to do with JMS or XA transactions - its purely a mechanism to perform multiple writes to a persistent store in 1 transaction as a performance optimization.

        Typically one transaction will require one disk synchronization point and so for real high performance its usually faster to perform many writes within the same transaction to minimize latency caused by disk synchronization. This is especially true when using tools like Berkeley Db or embedded JDBC servers.

        Parameters:
        context -
        Throws:
        IOException
      • setUsageManager

        void setUsageManager​(SystemUsage usageManager)
        Parameters:
        usageManager - The UsageManager that is controlling the broker's memory usage.
      • setBrokerName

        void setBrokerName​(String brokerName)
        Set the name of the broker using the adapter
        Parameters:
        brokerName -
      • setDirectory

        void setDirectory​(File dir)
        Set the directory where any data files should be created
        Parameters:
        dir -
      • getDirectory

        File getDirectory()
        Returns:
        the directory used by the persistence adaptor
      • size

        long size()
        A hint to return the size of the store on disk
        Returns:
        disk space used in bytes of 0 if not implemented
      • getLastProducerSequenceId

        long getLastProducerSequenceId​(org.apache.activemq.command.ProducerId id)
                                throws IOException
        return the last stored producer sequenceId for this producer Id used to suppress duplicate sends on failover reconnect at the transport when a reconnect occurs
        Parameters:
        id - the producerId to find a sequenceId for
        Returns:
        the last stored sequence id or -1 if no suppression needed
        Throws:
        IOException