ConfigMessagingDB

Changing the database used by JBoss Messaging

 

By default JBoss Messaging uses hsqldb for persistence.

 

 

 

Critique of hsqldb - hypersonic

 

Still the same ones

 

 

 

Steps to change the database

 

  • Deploy the datasource for your database

  • Use an alternate persistence schema to jboss-messaging.sar/hsqldb-persistence-service.xml

 

 

 

Deploy the datasource for your database

 

There are example datasources in docs/examples/jca. An XA datasource is not required for JBoss Messaging persistence. All work is done is separate transactions that only includes work on the JBoss Messaging tables. i.e. there is a single branch so there is no need for two phase commit.

 

 - Copy docs/examples/jca/xxx-ds.xml to deploy
 - Configure the datasource (server url, user, password, etc...)
 - Remove deploy/hsqldb-ds.xml

 

 

NOTE-READ THIS!!!: Other services such as the TimerService or the HiLo generator are relying on an existing datasource deployed with jndi name "DefaultDS".

 

Therefore either you update the relevant configuration xml files with the jndi name of the actual datasource deployed e.g. "MyDS" or you are using "DefaultDS"

 

NOTE - Read this as well: The example mysql-ds.xml file provided under the docs/examples/jca/ directory does not specify the transaction isolation level. You need to add the following:

    <transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation> 

to the mysql-ds.xml file, inside the <local-tx-datasource> tag. Otherwise, you will still going to see the complaints spit out by the messaging service when it starts, saying the DataSource transaction level is set to NONE.

 

 

 

Changing the persistence configuration

 

Alternate persistence configurations can be found in src/etc/server/default/deploy,

in this document Oracle is assumed.

 

 - Copy src/etc/server/default/deploy/oracle-persistence-service.xml to deploy/jboss-messaging.sar
 - Remove deploy/jboss-messaging.sar/hsqldb-persistence-service.xml

 

 

Other considerations

 

As noted in the persistence configuration the schema created by JBossAS is not optimized. You may want to create the schema by hand in the database. This will also include creating additional and database-specific indexes.

 

 

 

Referenced by: