Version 15

    Should I use Hypersonic in Production?  Is HSQLDB supported?



    Hypersonic(HSQLDB) SHOULD NOT be used in production at all.  It is not suitable for production use.(Problem discussed below)




    Note: RH/JBOSS WILL NOT support Hypersonic in production.  Any cases opened concerning hypersonic will be asked to move to a different database vendor.


    Known problems with Hypersonic Database are:

    • No transaction isolation

    • Thread and socket leaks - connection.close() does not tidy up resources

    • Persistence quality - the database is held in a file in the JBoss data directory, it is a common problem that log becomes corrupted after a failure, leaving you to manually edit the file to recover the database.

    • Database Corruption has been reported in many instances

    • Stability under load - strange problems have been seen under load, including the database process "vanishing", i.e. it stops processing when too much data is sent, usually because of an OutOfMemory problem, but not necessarily.

    • HSQLdb uses a file on the local server - although this can be changed to use a remote hsqldb instance, this negates many of the benefits of using hsqldb. The local file makes it impossible to use in a clustered environment.


    The default Persistence configuration for JBoss works out of the box using Hypersonic, however it must be stressed that Hypersonic should not be used in a production environment mainly due to its limited support for transaction isolation and its propensity to behave erratically under high load.  Hypersonic is the default persistence db in JBoss due to the requirement that JBoss run "out of the box".  A suitable replacement is being explored, but many databases have restrictions on re-distribution.  This has made it tough to find a replacement.


    Follow this link to Change default datasource in the Application Server or look at changing the datasource in JBoss Messaging



    Resource References:


    (1) Changing Jboss MQ Datasource


    (2) EAP 4.2 release notes about Hypersonic


    (3) JBoss Messaging Docs regarding Hypersonic


    (4) JBoss Messaging Docs on changing databases