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: