Open Editions

Open Editions

Come for answers. Stay for best practices. All we’re missing is you.

 View Only

Introducing support for Oracle database in BAMOE 9.2.1

By Jason Porter posted 5 hours ago

  

IBM Business Automation Manager Open Editions (BAMOE) is rolling out support stateful process storage using Oracle Database version 23ai in the upcoming version 9.2.1. Continue reading to learn more about support and project setup to use Oracle Database as a stateful processing storage solution.

History of Database Support

BAMOE has supported usage of a database for stateful workflows since version 9.1.0 as a Technology Preview, when support for stateful workflows was announced. Versions 9.0 and 9.0.1 of BAMOE did not support stateful workflows, hence there was no need for a database. With workflows that could span for longer periods of time, hours, days, weeks, etc. the state of the workflow must be stored to survive application restarts or processes that take longer than a single request. An example of such process would be credit card offers or drug prescription refills; a process that will need to span over a longer period of time. Each step in these workflows must be durable for the whole process, regardless of the workflow engine being active.

The release of BAMOE version 9.1.1 introduced stateful business process services as Technology Preview using PostgreSQL 16.1 as the database for test and development environments. Support for different versions and also additional databases has continued with each release of the version 9 series of BAMOE. New versions of PostgreSQL 16 have been supported with each release of the product and in version 9.2.0 support was added for Microsoft SQL Server 2022.

Continued Support for commercial databases

As mentioned above, BAMOE has had a history of adding support for popular commercial databases. The release of version 9.2.1 will be no different. With the upcoming release of BAMOE version 9.2.1, another new standard commercial database is getting support: Oracle Database. Support for version 23ai, which has support from Oracle until 2031, is being added. 

Users can expect easy addition of Oracle for their stateful workflows though updates to the pom.xml and application.properties files. BAMOE version 9.2.1 will also ship with support for Flyway migration scripts and also DDL files which can be used to add the necessary tables and columns to an existing Oracle Database installation.

Necessary Steps for Oracle Support

Each BAMOE v9.2.1 project will need to have some updates to the `pom.xml` and `application.properties` to enable support for Oracle Database.

Updates to pom.xml

There are four additional dependency additions to be made in a pom.xml:

<dependency>

  <groupId>io.quarkus</groupId>

  <artifactId>quarkus-agroal</artifactId>

</dependency>

<dependency>

  <groupId>io.quarkus</groupId>

  <artifactId>quarkus-jdbc-oracle</artifactId>

</dependency>

<dependency>

  <groupId>org.kie</groupId>

  <artifactId>kie-addons-quarkus-persistence-jdbc</artifactId>

</dependency>

The quarkus-agroal dependency is database connection pool being used by BAMOE. kie-addons-quarkus-persistence-jdbc enables JDBC persistence in workflows. Lastly, the Oracle JDBC driver to run on top of Quarkus. 

One last dependency is needed to support Oracle: additional mappings.

Additional mappings for Oracle Database

Depending on contents of the workflow being deployed, there is one more dependency to add to the pom.xml file:

<dependency>

  <groupId>com.ibm.bamoe</groupId>

  <artifactId>bamoe-oracle-mappings</artifactId>

</dependency>

This adds Hibernate mappings to override defaults for use with Oracle Database. The dependency is only needed if there is a UserTask component in the workflow or if a Job Service component is used. If neither of them are being used, this additional dependency is not necessary.

Updates to application.properties

Lastly, some additions will need to be made to the application.properties file to enable support:

quarkus.datasource.db-kind=oracle

quarkus.datasource.username=bamoe-user

quarkus.datasource.password=bamoe-pass

quarkus.datasource.jdbc.url=jdbc:oracle:thin:@//oracle:1521/FREEPDB1

kogito.persistence.type=jdbc

These additions configure the JDBC url, database authentication credentials, and tell BAMOE which database to use and to use JDBC for storage.

Additional property for mappings

Also, as noted above, if a project requires the additional mappings jar, one more line of configuration in the application.properties files is needed:

quarkus.hibernate-orm.mapping-files=META-INF/bamoe-user-task-orm.xml,META-INF/bamoe-job-service-orm.xml

Conclusion

IBM BAMOE continues to support additional databases, bringing support for stateful workflows by enabling persistence with PostgreSQL, Microsoft SQL Server, and Oracle Database. Further details can be found within the documentation and examples once BAMOE version 9.2.1 releases.

0 comments
13 views

Permalink