Hide last authors
Vincent Massol 1.4 1 Follow these instructions:
Manuel Smeria 9.4 3 * HSQLDB is a very simple database to configure as you don't need to install nor to start it before being able to use it. It comes as a single JAR file named ##hsqldb*.jar##. If your XWiki WAR doesn't have it in ##WEB-INF/lib## you'll need to download it and copy it there. You can download it from the [[HSQLDB web site>>http://hsqldb.org/]] or directly from the [[Maven Central Repository>>http://repo1.maven.org/maven2/hsqldb/hsqldb/]].
4 * Once this is done, you need to configure XWiki to use HSQLDB and to tell it where the database files will be created. To do this, edit the ##WEB-INF/hibernate.cfg.xml## file where you have expanded the XWiki WAR file and uncommented the HSQLDB part.
vmassol 1.1 5
Vincent Massol 9.2 6 {{warning}}
Manuel Smeria 9.4 7 If you intend to use HSQLDB in production you should probably tune it for a production usage. If you've installed the XWiki standalone distribution just be aware that it's not tuned to be production-ready. Also note that you would need to find a way to perform backups, live replication, administration tools etc. We would suggest using a more production-ready database such as MySQL or PostgreSQL if you can.
Vincent Massol 10.1 8
9 In addition you should be aware that HSQLDB stores the full database in memory which means you'd need to size your memory accordingly. As an indicator having a wiki with 9 subwikis (default XE pages) takes around 110MB in memory and you'd need to have more than 512MB or you'd quickly get Out of Memory errors when performing some memory-intensive operations (exports, etc).
Vincent Massol 9.2 10 {{/warning}}
Vincent Massol 9.1 12 = Other optional ideas =
vmassol 1.1 13
Manuel Smeria 9.4 14 * You can use a remote HSQLDB database instead of embedding it. To do this, just use a URL like ##jdbc:hsqldb:hsql:HOSTNAME...## instead of the ##jdbcc:hsqldb:file:..## URL. The major version of the hsqldb jar file must match the major version that the HSQLDB server is using.
15 * If you want to use your app server facilities to manage your data sources (generally a better strategy), then you must follow these steps:
16 ** Put the ##hsqldb*.jar## file into your app server class path instead of in your web app (like in ##$CATALINA_HOME/common/lib##)
Vincent Massol 9.5 17 ** In ##hibernate.cfg.xml##, use the following settings in place of the HSQLDB block in the sample file. Specifically, do not set the url, user, etc. here and leave the provider_class unset (i.e. use the default value), since XWiki's implementation does not handle container-managed data sources:(((
Vincent Massol 8.1 18 {{code}}
blaine 6.1 19 <property name="connection.datasource">java:/comp/env/jdbc/xwiki</property>
blaine 2.1 20 <property name="dialect">org.hibernate.dialect.HSQLDialect</property>
Vincent Massol 8.1 21 {{/code}}
Vincent Massol 9.5 22 )))
Manuel Smeria 9.4 23 ** the final step is to manage the data source using app server facilities. With Tomcat, for example, you would map the //resource link// ##jcbc/xwikiDs## to a container-managed data source using the Admin web app or by editing the file ##conf/Catalina/*/xwiki.xml## (i.e. webapp-name + ".xml").

Get Connected