This page last changed on Jan 18, 2013 by aaime.


Upgrade GeoServer to GeoWebCache 1.4.x, remove dependencies on Berkely DB Java edition, allow for GeoServer clustering with full functionality of embedded GWC available.

Proposed By

Andrea Aime

Assigned to Release



Choose one of: Under Discussion, In Progress, Completed, Rejected, Deferred


The current GeoWebCache version used by GeoServer suffers from a few limitations when it comes to enterprise usage:

  • the metastore subsystem has to be disabled, since it holds a lock on the H2 database it uses preventing other GeoServer instances from starting up
  • the disk quota subsystem has to be also disabled, for the same reason

In GeoWebCache 1.4.x the metastore database has been replaced by using file attributes, and the disk quota subsystem can run off a relational database (H2, PostgreSQL, Oracle) making it also possible to drop the Berkeley DB dependency.


The embedded GeoWebCache will be updated to version 1.4.x and the integration upgraded to leverage the new facilities provided.

Lock provider configuration

The configuration UI will allow the configuration of the lock provider choosing among the ones available in the application context, at the moment, between the "no lock", the "in memory" one and the "nio" one suitable to control locking among separate processes:

Quota store

The disk quota substem will be modified to remove the dependency on Berkeley DB, and allowing the administrator to configure the connection to an external database of choice among the supported SQL dialects (H2, PostgreSQL, Oracle).

By default the quota subsystem will use an embedded H2 database with local file storage in the ``$GEOSERVER_DATA_DIR/gwc/diskquota_page_store_h2`` directory, an administrator wishing to use clustering will configure an external, shared database instead.

The configuration of the JDBC disk quota storage is lower level compared to GeoServer, asking for JDBC driver, JDBC url and the like, the user interface to configure it will not try to hide that, but some auto-complete features will be added to avoid having to look into the documentation for all the details (completes with CTRL-SPACE when the field is empty, autocompletes as the user types):

Quota store startup failure tolerance

GeoWebCache starts and configures the quota store as part of its Spring initialization, as such it follows that a failure in the quota store startup will prevent the whole GeoServer from starting up.

The integration has been setup so that a failure won't prevent the GeoWebCache startup, but it will disable the disk quota subsystem instead by providing it with a dummy quota store.

In this state the full error will be logged on the startup, and a message will appear in both the GeoServer home page:

A similar message will appearn on the disk quota configuration page on opening:


This section should contain feedback provided by PSC members who may have a problem with the proposal.

Backwards Compatibility

No particular backwards compatibility issues, the metastore will be automatically migrated on the first startup, and the new quota store will automatically populate itself upon creation.


Andrea Aime: +1
Alessio Fabiani: +1
Ben Caradoc-Davies:
Gabriel Roldán: +1
Justin Deoliveira: +1
Chris Holmes: +1
Jody Garnett:
Simone Giannecchini: +1
Jukka Rahkonen: +1


[JIRA Task|]
[Email Discussion|]
[Wiki Page|]

lockProvider.png (image/png)
quotastore.png (image/png)
homePageError.png (image/png)
diskQuotaError.png (image/png)
quotastore.png (image/png)
lockProvider.png (image/png)
Document generated by Confluence on May 14, 2014 23:00