Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

How do I build the persistence store module from subversion checkouts?

C*++*The README file contains detailed instructions, but here is a summary:

  1. Make sure that both the db4-devel and libaio-devel packages are installed prior to building.
  2. Make sure that qpid is built and you know the location of the qpid directory (ie the top-level directory containing the python and cpp sub-directories).
  3. In the store directory, run:
    Code Block
    
    ./bootstrap
    ./configure --with-qpid-checkout=/abs/path/to/qpid/dir
    make
    
  4. When built, the store library msgstore.so will be located in the lib/.libs directory.
  5. directories).
  6. In the store directory, run:
    Code Block
    
    ./bootstrap
    ./configure --with-qpid-checkout=/abs/path/to/qpid/dir
    make
    
  7. When built, the store library msgstore.so will be located in the lib/.libs directory.

JavaTODO

Which version of the store should I use when building against qpid 0.X?

C++
If you build qpid from svn trunk, you should be able to build the store against it using the store trunk. However, if you build the store from a released version of qpid, you will need to check out a specific version of the store to get it to compile:

release

store tag

store revision

0.5

qpid-0.5-release

3373

0.6

qpid-0.6-release

3793

To check out a revision, use:

Code Block

svn co http://anonsvn.jboss.org/repos/rhmessaging/store/trunk/cpp -r [revno]

To check out from a tag, use:

Code Block

svn co http://anonsvn.jboss.org/repos/rhmessaging/store/tags/[tagname]

JavaTODO

How do I use the persistence store module?

...

  1. The journal is too small for the size and number of messages being stored. The journal must be made large enough to hold all of the messages you expect to be on the queue at any one moment (a worst-case scenario). Make the journal capacity larger through the use of the --num-jfiles and --jfile-size-pgs parameters.
    Info
    titleRule of thumb for sizing the journal

    Make the journal twice the size of all the messages you need to store at any one moment in time.

  2. Messages are not being dequeued (consumed) as expected. Since the store is a circular file buffer, if one un-dequeued (not consumed) message remains, it can eventually "block" the storage of new messages as the buffer gets overwritten.

Wiki Markup
\[C+\+ store\] What is the TPL? What are the 

...

--tpl-\* options for?

The TPL stands for Transaction Prepared List. The store creates a single instance of a store for storing transaction boundaries called the Transaction Prepared List. Because the TPL is frequently flushed and has very different usage patterns to a normal store, it has been provided with its own set of configuration parameters:

...