This page explains the setup of the various databases within HippoCMS.
Instance data & project data
The CMS discerns between scheduler data it needs for the cocoon instance and data is needs for the project (website). The cocoon instance data contains info about things like the scheduled removal of local temporary files. The data for the scheduler for the project contains entries for things like unpublication dates of documents.
Quartz databases
The CMS uses three quartz databases. One for project data and two for instance data. The project data is shared between cocoon instances and is configured to be clustered. Usually all the project data is in one database, which means that the osworkflow and quartz tables are in the same database. The two instance databases are the cocoonscheduler in cocoon.xconf and the serverscheduler in schedulerStore.xml.
| Hippo CMS 6.05.00 and newer versions Since Hippo CMS 6.05.xx and up only the projectdata database is used. The cocoonscheduler and serverscheduler are no longer used. |

Clustering
It's important to remember that the project data MUST be (configured to) shared between cocoon instances (i.e. they all use the same database) and the instance data CANNOT be shared between cocoon instances (i.e. each cocoon instance uses it's own databases).
Build properties
In the build.properties/project.properties you've to configure four datasources. Two for project data: cms.datasource.workflow and cms.datasource.scheduler, and two for the instance date: cms.datasource.quartz (cocoon.xconf) and cms.datasource.serverscheduler (schedulerStore.xml). Below is an example configuration for MySQL. Hsqldb should work "out of the box" (default).
Example properties:
maven.cocoon.hsqldb.use=false # Per website workflow and scheduler cms.datasource.workflow.driver=com.mysql.jdbc.Driver cms.datasource.workflow.url=jdbc:mysql://172.10.100.1/projectdata cms.datasource.workflow.user=user cms.datasource.workflow.password=pass cms.datasource.scheduler.name=quartz cms.datasource.scheduler.driver=com.mysql.jdbc.Driver cms.datasource.scheduler.url=jdbc:mysql://172.10.100.1/projectdata cms.datasource.scheduler.user=user cms.datasource.scheduler.password=pass # Per cocoon instance scheduler, must be different from site schedular (cocoon.xconf) cms.datasource.quartz.driver=com.mysql.jdbc.Driver cms.datasource.quartz.name=quartz cms.datasource.quartz.url=jdbc:mysql://172.10.100.1/cocoonschedular cms.datasource.quartz.user=user cms.datasource.quartz.password=pass # Per cocoon instance scheduler, must be different from site scheduler (schedulerStore.xml) cms.datasource.serverscheduler.driver=com.mysql.jdbc.Driver cms.datasource.serverscheduler.name=quartz cms.datasource.serverscheduler.url=jdbc:mysql://172.10.100.1/serverschedular cms.datasource.serverscheduler.user=user cms.datasource.serverscheduler.password=pass