Persistence is one of key technical services injected into the services container. This service, as well as other major services in Orchestra, is based on a service interface. That means that multiple persistence implementations can be plugged on top.
The Persistence service interface is responsible to save and load objects from a relational database. By default, a persistence implementation based on the Hibernate ORM framework is provided (JPA and JCR to come).
The Process Virtual Machine core definition and execution elements (processes, nodes, transitions, events, actions, variables and executions) as well as the BPEL extension ones (activities, conditions, variables...) are persisted through this service. Process Virtual Machine core elements are also cached by leveraging the default persistence service implementation (Hibernate based). Processes and instances are stored through this persistence service. Repository is the term used in Orchestra to store those entities.
This service is only used if the repository service is set to database.
The default configuration of Orchestra uses the Database
persistence service and the H2 Database. Orchestra has also been
tested with Oracle, MySQL and Postgres database system. To change to mysql, postgres or
Oracle, you need to install the corresponding JDBC driver (see Chapter 3, Installation guide)
and modify the hibernate.properties
file : uncomment
the corresponding lines :
# Hibernate configuration # For using Orchestra with H2 # hibernate.dialect org.hibernate.dialect.H2Dialect # hibernate.connection.driver_class org.h2.Driver # hibernate.connection.url jdbc:h2:file:db_orchestra # hibernate.connection.username sa # hibernate.connection.password # For using Orchestra with postgreSQL # hibernate.dialect org.hibernate.dialect.PostgreSQLDialect # hibernate.connection.driver_class org.postgresql.Driver # hibernate.connection.url jdbc:postgresql://server:port/db # hibernate.connection.username user # hibernate.connection.password pass # For using Orchestra with MySQL # hibernate.dialect org.hibernate.dialect.MySQL5InnoDBDialect # hibernate.connection.driver_class com.mysql.jdbc.Driver # hibernate.connection.url jdbc:mysql://server:port/db # hibernate.connection.username user # hibernate.connection.password pass hibernate.dialect org.hibernate.dialect.H2Dialect hibernate.connection.driver_class org.h2.Driver hibernate.connection.url jdbc:h2:file:db_orchestra hibernate.connection.username sa hibernate.connection.password hibernate.hbm2ddl.auto update hibernate.cache.use_second_level_cache true hibernate.cache.provider_class org.hibernate.cache.HashtableCacheProvider hibernate.show_sql false hibernate.format_sql false hibernate.use_sql_comments false hibernate.bytecode.use_reflection_optimizer true