You are viewing an old version of this page. View the current version.
Compare with Current
View Page History
« Previous
Version 3
Next »
Introduction
- JOC Cockpit makes use of a database to store inventory information, status information and workflow related logs.
- The database is required for restart capabilities with the JS7 - Cluster Service.
- The supported DBMS include
- H2
- MariaDB
- MySQL
- Oracle
- PostgreSQL
- SQL Server
- Basically any versions of a DBMS can be used that are actively supported by their vendor.
- Access to the DBMS is provided by Hibernate. This includes to use a JDBC Driver that is specific for the DBMS.
Hibernate Configuration Files
- Hibernate configuration files are used from an XML format. During installation the respective hibernate configuration file is created and can later on be manually updated.
- By default the Hikari Connection Pool is used.
- The Hikari setting for the
maximumPoolSize
should be included with a Hibernate configuration file as this determines the number of open database connections. Adjust this setting to the number of connections required for sharing between parallel users of JOC Cockpit. As a rule of thumb 10 connections should work for approx .30 parallel users. - Any additional settings for Hikari can be added to a Hibernate configuration file.
Hibernate Configuration H2
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">org.h2.Driver</property>
<property name="hibernate.connection.password">jobscheduler</property>
<property name="hibernate.connection.url">jdbc:h2:/var/h2/jobscheduler</property>
<property name="hibernate.connection.username">jobscheduler</property>
<property name="hibernate.dialect">org.hibernate.dialect.H2Dialect</property>
<property name="hibernate.show_sql">false</property>
<property name="hibernate.connection.autocommit">false</property>
<property name="hibernate.format_sql">true</property>
<property name="hibernate.temp.use_jdbc_metadata_defaults">false</property>
<property name="hibernate.hikari.maximumPoolSize">10</property>
</session-factory>
</hibernate-configuration>
Explanations:
- The JDBC connection URL in this sample makes use of an embedded H2 database server. The database file is located in
/var/h2/jobscheduler
. - For use with a standalone H2 database server use a syntax such as
jdbc:h2:tcp://<host>:<port>/jobscheduler
where <host>
is the hostname and <port>
is the H2 database port (frequently: 1521).
Hibernate Configuration MariaDB
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">org.mariadb.jdbc.Driver</property>
<property name="hibernate.connection.password">jobscheduler</property>
<property name="hibernate.connection.url">jdbc:mysql://mariadbsrv:3306/jobscheduler</property>
<property name="hibernate.connection.username">jobscheduler</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
<property name="hibernate.show_sql">false</property>
<property name="hibernate.connection.autocommit">false</property>
<property name="hibernate.format_sql">true</property>
<property name="hibernate.temp.use_jdbc_metadata_defaults">false</property>
<property name="hibernate.hikari.maximumPoolSize">10</property>
</session-factory>
</hibernate-configuration>
Explanations:
- The example makes use of the database server running for hostname
mariadbsrv
and port 3306
.
Hibernate Configuration MySQL
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">org.mysql.jdbc.Driver</property>
<property name="hibernate.connection.password">jobscheduler</property>
<property name="hibernate.connection.url">jdbc:mysql://mysqlsrv:3306/jobscheduler</property>
<property name="hibernate.connection.username">jobscheduler</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
<property name="hibernate.show_sql">false</property>
<property name="hibernate.connection.autocommit">false</property>
<property name="hibernate.format_sql">true</property>
<property name="hibernate.temp.use_jdbc_metadata_defaults">false</property>
<property name="hibernate.hikari.maximumPoolSize">10</property>
</session-factory>
</hibernate-configuration>
Explanations:
- The example makes use of the database server running for hostname
mysqlsrv
and port 3306
.
Hibernate Configuration Oracle
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<property name="hibernate.connection.password">jobscheduler</property>
<property name="hibernate.connection.url">jdbc:oracle:thin:@//oraclesrv:1521/xe</property>
<property name="hibernate.connection.username">jobscheduler</property>
<property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>
<property name="hibernate.show_sql">false</property>
<property name="hibernate.connection.autocommit">false</property>
<property name="hibernate.format_sql">true</property>
<property name="hibernate.temp.use_jdbc_metadata_defaults">false</property>
<property name="hibernate.hikari.maximumPoolSize">10</property>
</session-factory>
</hibernate-configuration>
Explanations:
- The example makes use of the database listener running for hostname
oraclesrv
and port 1521
. The database service ID is xe
.
Hibernate Configuration PostgreSQL
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
<property name="hibernate.connection.password">jobscheduler</property>
<property name="hibernate.connection.url">jdbc:postgresql://postgresqlsrv:5432/jobscheduler</property>
<property name="hibernate.connection.username">jobscheduler</property>
<property name="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property>
<property name="hibernate.show_sql">false</property>
<property name="hibernate.connection.autocommit">false</property>
<property name="hibernate.format_sql">true</property>
<property name="hibernate.temp.use_jdbc_metadata_defaults">false</property>
<property name="hibernate.hikari.maximumPoolSize">10</property>
</session-factory>
</hibernate-configuration>
Explanations:
- The example makes use of the database server running for hostname
postgresqlsrv
and port 5432
.
Hibernate Configuration SQL Server
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
<property name="hibernate.connection.password">jobscheduler</property>
<property name="hibernate.connection.url">jdbc:sqlserver://sqlserversrv:1433;sendStringParametersAsUnicode=false;selectMethod=cursor;databaseName=jobscheduler</property>
<property name="hibernate.connection.username">jobscheduler</property>
<property name="hibernate.dialect">org.hibernate.dialect.SQLServer2005Dialect</property>
<property name="hibernate.show_sql">false</property>
<property name="hibernate.connection.autocommit">false</property>
<property name="hibernate.format_sql">true</property>
<property name="hibernate.temp.use_jdbc_metadata_defaults">false</property>
<property name="hibernate.hikari.maximumPoolSize">10</property>
</session-factory>
</hibernate-configuration>
Explanations:
- The example makes use of the database server running for hostname
sqlserversrv
and port 1433
.