Configure Hippo for your Database Server 

Introduction

Goal

Configure the content repository and application container to use one of the database servers supported by Hippo.

Background

When you create a new Hippo project, the default configuration will make use of a H2 database. This is normally used, and only supported for, local development. When deploying Hippo in any external environment, be it test, acceptance, production, etc. you'll likely want to make use of a different database such as MySQL, Oracle Database, PostgreSQL or Microsoft SQL Server. This documentation will show you the required steps and necessary configuration to configure Hippo to make use of one of our other supported databases.

Prerequisites

This documentation assumes you've followed the Linux Installation Manual, or at least have an environment set up which is similar to the one described there. Most importantly that the container being used is Apache Tomcat. As well as assuming that the database itself is already set up.

Configuration

To make use of a specific database, both the container and Hippo's content repository must be configured accordingly. The content repsitory is the only component of Hippo that will connect to the database directly. The CMS UI and Hippo's delivery tier (HST), will connect to the content repository itself.

This documentation will deal with the following configuration:

  • Configuring the container to expose the database connection as a  JNDI resource.
  • Configuring the content repository's main configuration file, repository.xml, for the correct type of database and to make use of this datasource.

Database-Specific Configuration

repository.xml

How and where the content repository stores its data is configured in a file called repository.xml. Hippo will look for this file on the classpath, in org/hippoecm/repository/repository.xml where the H2 version is also included by default.  Since this file is mostly environment specific, for example developers will usually localy develop with H2, but the resulting project will get deployed to an environment using one of the supported RDBMS, it's usually advised to reconfigure this location to be external to the application itself.

This can be done in two ways:,

  • a system property
-Drepo.config=file:///path/to/repository.xml
  • a context parameter (how these can be set / overridden will differ per container, the below is Apache Tomcat specific)
<Parameter name="repository-config" value="file:///path/to/repository.xml" override="false"/>

When configuring Hippo's repository.xml, there's a number of database specific configurations that need to be made. Separate pages (see links below) will detail the actual values for each supported database.

  • databaseType

  • FileSystem class

  • PersistenceManager class

  • Journal class

  • DataStore class

  • tableSpace (optional, only available for some databases)

Container JNDI Datasource

The database connection will need to be configured in your container of choice and exposed to the application through JNDI. We'll provide examples for our default stack, using Apache Tomcat.

The pages below contain database specific configuration: