JORAM - FAQ - Questions relating to persistence

Questions relating to long term persistence of messages.

Here are a list of commonly asked questions and answers.

See also these other sources of information:

If you have a question not answered here, please join the community mailing list or alternatively, contact the development team directly at joram-team@ow2.org.

We welcome contributions so please help us make the documentation better!

How persistence is achieved in Joram?

Joram is shipped with a built-in atomic storage using the underlying filesystem. This component exists in multiples versions, NTransaction is the most stable (default), the most efficient is NGTransaction.

The NTransaction module works with a transactionnal log and a directory as repository to store long term object (each destination, user or message is stored in a file). there are many other implementation of the Transaction component, in particular NullTransaction enables Joram to operate without any kind of persistence.

Can I use database to perform persistence in Joram?

Yes, There are multiple ways to achieve the persistence of Joram with a database:

  • First, using the NTransaction or NGTransaction components you can specify a different repository implementation. There is a MySQL based implementation (MySqlDBRepository) and a generic one using JDBC (DBRepository).
  • Second, you can use an alternate implementation of the Transaction interface. There are currently 2 implementations of DBTransaction: DerbyDBTransaction and MySQLDBTransaction.

If needed you can easily implement your own version of DBRepository or DBTransaction corresponding to the database you are using. We will be happy to host this code in Joram.

When do I use persistence in database?

Default Transaction implementations are optimized to fit with classic MOM Behavior: messages are sent then consumed and there is few retention of messages in the system. if your use of Joram implies a significant retention of messages, so the performance of the filesystem decreases. Then we advise you to use a database persistence.

Can I use different Transaction implementation in a distributed configuration of Joram?

Yes, each server in the configuration can have its own implementation of the Transaction component.

Can I change the Transaction implementation of an existing server?

No, when a server starts its configuration is saved with the specified implementation of the Transaction component. Thereafter, this implementation can not be changed.

Submit a question or problem?

Please join our mailing-list. We'd like to hear from you.

Copyright © 1999-2010, OW2 Consortium | contact | webmaster | Last modified at 2017-10-05 04:25 PM