jdbcUrl: JDBC URL of the database.jdbcDriver: implementation of the driver for the specific database type.jdbcUsername: username to connect to the database.jdbcPassword: password to connect to the database.
jdbcMaxActiveConnections: The maximum number of active connections that the connection pool can contain at any given time. Default is 10.jdbcMaxIdleConnections: The maximum number of idle connections that the connection pool can contain at any given time.jdbcMaxCheckoutTime: The amount of time in milliseconds that a connection can be ‘checked out’ for from the connection pool before it is forcefully returned. Default is 20000 (20 seconds).jdbcMaxWaitTime: This is a low level setting that gives the pool a chance to print a log status and re-attempt the acquisition of a connection in the case that it takes unusually long (to avoid failing silently forever if the pool is misconfigured). Default is 20000 (20 seconds).jdbcStatementTimeout: The amount of time in seconds the JDBC driver will wait for a response from the database. Default is null which means that there is no timeout. This setting is not supported for the H2 database.
Jdbc Batch Processing
Another configuration -jdbcBatchProcessing - sets if batch processing mode must be used when sending SQL statements to the database. When switched off, statements are executed one by one.
Values: true (default), false.
Known issues with batch processing:
- batch processing is not working for Oracle versions earlier than 12.
- when using batch processing on MariaDB and DB2,
jdbcStatementTimeoutis being ignored.
Example database configuration
javax.sql.DataSource implementation can be used (e.g., DBCP from Apache Commons):
databaseType: It’s normally not necessary to specify this property as it is automatically analyzed from the database connection meta data. Should only be specified in case automatic detection fails. Possible values: {h2, mysql, oracle, postgres, mssql, db2}. This setting will determine which create/drop scripts and queries will be used. See the ‘supported databases’ section for an overview of which types are supported.databaseSchemaUpdate: Allows to set the strategy to handle the database schema on process engine boot and shutdown.true(default): Upon building the process engine, a check is performed whether the ASEE Flow tables exist in the database. If they don’t exist, they are created. It must be ensured that the version of the DB schema matches the version of the process engine library, unless performing a Rolling Update. Updates of the database schema have to be done manually as described in the Update and Migration Guide.false: Does not perform any checks and assumes that the ASEE Flow table exist in the database. It must be ensured that the version of the DB schema matches the version of the process engine library, unless performing a Rolling Update. Updates of the database schema have to be done manually as described in the Update and Migration Guide.create-drop: Creates the schema when the process engine is being created and drops the schema when the process engine is being closed.
Supported DatabasesFor information on supported databases please refer to Supported Environments
- H2:
jdbc:h2:tcp://localhost/camunda - MySQL:
jdbc:mysql://localhost:3306/camunda?autoReconnect=true&sendFractionalSeconds=false - Oracle:
jdbc:oracle:thin:@localhost:1521:xe - PostgreSQL:
jdbc:postgresql://localhost:5432/camunda - DB2:
jdbc:db2://localhost:50000/camunda - MSSQL:
jdbc:sqlserver://localhost:1433/camunda
Additional Database Schema Configuration
Business Key
Since the release of ASEE Flow 7.0.0-alpha9, the unique constraint for the business key is removed in the runtime and history tables and the database schema create and drop scripts. If you rely on the constraint, you can add it manually to your schema by issuing following sql statements: DB2Isolation Level Configuration
Most database management systems provide four different isolation levels to be set. For instance the levels defined by ANSI/USO SQL are (from low to high isolation):- READ UNCOMMITTED
- READ COMMITTED
- REPEATABLE READS
- SERIALIZABLE
skipIsolationLevelCheck flag to true. Doing this will prevent an exception from being thrown and a warning message will be logged instead.
See here for more details about this and other properties.