You are viewing an old version of this page. View the current version.
Compare with Current
View Page History
« Previous
Version 5
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.
JDBC Drivers
For a number of DBMS the JDBC Drivers are included with JS7. However, due to restrictions to bundle JDBC Drivers with Open Source software for some DBMS users have to indiviually download
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
.