Page Contents


Feature List

Previous topic

Aspect-oriented programming

Next topic

OMERO events and provenance

This Page


This documentation is for OMERO 5.2. This version is now in maintenance mode and will only be updated in the event of critical bugs or security concerns. OMERO 5.3 is expected in the first quarter of 2017.


The entire OMERO application (on a single JVM) resides in a single ome.system.OmeroContext. Each call belongs additionally to a single org.hibernate.Session (which can span over multiple calls) and to a single ome.model.meta.Event (which is restricted to a single task).

The container for all OMERO applications is the OmeroContext (components/common/src/ome/system/ Based on the Spring configuration backing the context, it can be one of client, internal, or managed. The use of a ServiceFactory simplifies this usage for the client.

Hibernate sessions

A Hibernate Session comprises a  Unit-of-Work which translates for OMERO’s OME-Remote Objects model to a relational database. It keeps references to all Database-backed objects so that within a single session, object-identity stays constant and object changes can be persisted.

A session can span multiple calls by being disconnected from the underlying database transaction, and then reconnected to a new transaction on the next call (see components/server/src/ome/tools/hibernate/ for the implementation).

For information about Events see OMERO events and provenance.

Context Usage