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.