Database Persistence

The monitor extension is capable of persisting request data to a database via the Hibernate library.

Note

In order to utilize hibernate persistence the hibernate extension must be installed on top of the core monitoring extension. See the Installing the Monitor Extension for details.

Configuration

General

In order to activate hibernate persistence the storage parameter must be set to the value “hibernate”:

storage=hibernate

The hibernate storage backend supports both the history and live modes however care should be taken when enabling the live mode as it results in many transactions with the database over the life of a request. Unless updating the database in real time is required the history mode is recommended.

Database

The file db.properties in the <GEOSERVER_DATA_DIR>/monitoring directory specifies the Hibernate database. By default an embedded H2 database located in the monitoring directory is used. This can be changed by editing the db.properties file:

# default configuration is for h2
driver=org.h2.Driver
url=jdbc:h2:file:${GEOSERVER_DATA_DIR}/monitoring/monitoring

For example to store request data in an external PostgreSQL database, set db.properties to:

driver=org.postgresql.Driver
url=jdbc:postgresql://192.168.1.124:5432/monitoring
username=bob
password=foobar
defaultAutoCommit=false

In addition to db.properties file is the hibernate.properties file that contains configuration for Hibernate itself. An important parameter of this file is the hibernate dialect that informs hibernate of the type of database it is talking to.

When changing the type of database both the databasePlatform and database parameters must be updated. For example to switch to PostgreSQL:

# hibernate dialect
databasePlatform=org.hibernate.dialect.PostgreSQLDialect
database=POSTGRESQL

# other hibernate configuration
hibernate.use_sql_comments=true
generateDdl=true
hibernate.format_sql=true
showSql=false
hibernate.generate_statistics=true
hibernate.session_factory_name=SessionFactory
hibernate.hbm2ddl.auto=update
hibernate.bytecode.use_reflection_optimizer=true
hibernate.show_sql=false

Hibernate

As mentioned in the previous section the hibernate.properties file contains the configuration for Hibernate itself. Aside from the database dialect parameters it is not recommended that you change this file unless you are an experienced Hibernate user.