org.codehaus.activemq.store.bdb
Class BDbMessageStore

java.lang.Object
  extended byorg.codehaus.activemq.store.bdb.BDbMessageStore
All Implemented Interfaces:
MessageStore, Service
Direct Known Subclasses:
BDbTopicMessageStore

public class BDbMessageStore
extends Object
implements MessageStore

Version:
$Revision: 1.2 $

Constructor Summary
BDbMessageStore(com.sleepycat.je.Database database, com.sleepycat.je.SecondaryDatabase secondaryDatabase, com.sleepycat.je.SecondaryConfig secondaryConfig, SequenceNumberCreator sequenceNumberCreator, WireFormat wireFormat)
           
 
Method Summary
 MessageIdentity addMessage(ActiveMQMessage message)
          Adds a message to the message store
protected  byte[] asBytes(ActiveMQMessage message)
           
protected  byte[] asBytes(String messageID)
           
protected  void checkClosed()
           
protected  com.sleepycat.je.DatabaseEntry createKey(String messageID)
           
protected  ActiveMQMessage extractMessage(com.sleepycat.je.DatabaseEntry value)
           
protected  String extractString(com.sleepycat.je.DatabaseEntry entry)
           
protected  com.sleepycat.je.DatabaseEntry findSequenceNumber(String messageID)
          Iterates through from the start of the collection until the given message ID is found
 MessageContainer getContainer()
           
 com.sleepycat.je.CursorConfig getCursorConfig()
           
protected  com.sleepycat.je.Database getDatabase()
           
 ActiveMQMessage getMessage(MessageIdentity identity)
          Looks up a message using either the String messageID or the messageNumber.
protected  com.sleepycat.je.SecondaryDatabase getSecondaryDatabase()
           
protected  com.sleepycat.je.DatabaseEntry getSequenceNumberKey(MessageIdentity identity)
          Returns the sequence number key for the given message identity.
 void recover(QueueMessageContainer container)
          Recover any messages to be delivered onto the dispatch queue.
 void removeMessage(MessageIdentity identity, MessageAck ack)
           
 void setMessageContainer(MessageContainer container)
           
 void start()
          Called to start the service
 void stop()
          Called to shutdown the service
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BDbMessageStore

public BDbMessageStore(com.sleepycat.je.Database database,
                       com.sleepycat.je.SecondaryDatabase secondaryDatabase,
                       com.sleepycat.je.SecondaryConfig secondaryConfig,
                       SequenceNumberCreator sequenceNumberCreator,
                       WireFormat wireFormat)
Method Detail

setMessageContainer

public void setMessageContainer(MessageContainer container)

addMessage

public MessageIdentity addMessage(ActiveMQMessage message)
                           throws JMSException
Description copied from interface: MessageStore
Adds a message to the message store

Specified by:
addMessage in interface MessageStore
Throws:
JMSException

getMessage

public ActiveMQMessage getMessage(MessageIdentity identity)
                           throws JMSException
Description copied from interface: MessageStore
Looks up a message using either the String messageID or the messageNumber. Implementations are encouraged to fill in the missing key if its easy to do so.

Specified by:
getMessage in interface MessageStore
Parameters:
identity - which contains either the messageID or the messageNumber
Returns:
the message or null if it does not exist
Throws:
JMSException

removeMessage

public void removeMessage(MessageIdentity identity,
                          MessageAck ack)
                   throws JMSException
Specified by:
removeMessage in interface MessageStore
Throws:
JMSException

recover

public void recover(QueueMessageContainer container)
             throws JMSException
Description copied from interface: MessageStore
Recover any messages to be delivered onto the dispatch queue.

Only called when this store is used for durable queues.

Specified by:
recover in interface MessageStore
Parameters:
container -
Throws:
JMSException

start

public void start()
           throws JMSException
Description copied from interface: Service
Called to start the service

Specified by:
start in interface Service
Throws:
JMSException

stop

public void stop()
          throws JMSException
Description copied from interface: Service
Called to shutdown the service

Specified by:
stop in interface Service
Throws:
JMSException

getSecondaryDatabase

protected com.sleepycat.je.SecondaryDatabase getSecondaryDatabase()

getDatabase

protected com.sleepycat.je.Database getDatabase()

getCursorConfig

public com.sleepycat.je.CursorConfig getCursorConfig()

getContainer

public MessageContainer getContainer()

checkClosed

protected void checkClosed()
                    throws AlreadyClosedException
Throws:
AlreadyClosedException

getSequenceNumberKey

protected com.sleepycat.je.DatabaseEntry getSequenceNumberKey(MessageIdentity identity)
                                                       throws com.sleepycat.je.DatabaseException
Returns the sequence number key for the given message identity. If the sequence number is not available it will be queried (which is slow & will generate a warning as it is not recommended) and then it'll be cached inside the MessageIdentity

Parameters:
identity -
Returns:
Throws:
com.sleepycat.je.DatabaseException

createKey

protected com.sleepycat.je.DatabaseEntry createKey(String messageID)

findSequenceNumber

protected com.sleepycat.je.DatabaseEntry findSequenceNumber(String messageID)
                                                     throws com.sleepycat.je.DatabaseException
Iterates through from the start of the collection until the given message ID is found

Parameters:
messageID -
Returns:
Throws:
com.sleepycat.je.DatabaseException

extractString

protected String extractString(com.sleepycat.je.DatabaseEntry entry)

extractMessage

protected ActiveMQMessage extractMessage(com.sleepycat.je.DatabaseEntry value)
                                  throws IOException
Throws:
IOException

asBytes

protected byte[] asBytes(ActiveMQMessage message)
                  throws IOException,
                         JMSException
Throws:
IOException
JMSException

asBytes

protected byte[] asBytes(String messageID)


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