Wiki source code of HSQLDB Installation
Last modified by slauriere on 2022/09/01
Hide last authors
author | version | line-number | content |
---|---|---|---|
![]() |
1.4 | 1 | Follow these instructions: |
2 | |||
![]() |
12.2 | 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>>https://search.maven.org/artifact/org.hsqldb/hsqldb]]. |
![]() |
9.4 | 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. |
![]() |
1.1 | 5 | |
![]() |
9.2 | 6 | {{warning}} |
![]() |
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. |
![]() |
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). | ||
![]() |
9.2 | 10 | {{/warning}} |
11 | |||
![]() |
9.1 | 12 | = Other optional ideas = |
![]() |
1.1 | 13 | |
![]() |
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##) | ||
![]() |
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:((( |
![]() |
8.1 | 18 | {{code}} |
![]() |
6.1 | 19 | <property name="connection.datasource">java:/comp/env/jdbc/xwiki</property> |
![]() |
2.1 | 20 | <property name="dialect">org.hibernate.dialect.HSQLDialect</property> |
![]() |
8.1 | 21 | {{/code}} |
![]() |
9.5 | 22 | ))) |
![]() |
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"). |