Integrate Camunda BPMN on JBoss With MySQL

Praveenbuya
2 min readApr 24, 2024

--

In this quick post, we take a look at all the XML code and terminal commands you need to integrate these two interesting technologies.

Steps to Install and Setup Camunda on a Wildfly Server:

We’ll be using Camunda version:7.8 and Wildfly server:10.1.0 in this tutorial.

  • Install Java and set environment variables.
  • Connect to your VM using putty and run the below commands.
#JDK installation - - - - - - - - - - - 
sudo apt-get install -y openjdk-8-jdk
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/
export PATH=$PATH:/usr/lib/jvm/java-8-openjdk-amd64/bin
  • Download camunda-bpm-wildfly10-7.8.0.zip/camunda-bpm-wildfly10-7.8.0.tar file.
  • Navigate to /opt/camunda/server/wildfly-10.1.0.Final/standalone/deployments and add the war file.
  • Run start-camunda.sh in/opt/camunda directory.
  • To run Camunda as a background process: ./start-camunda.sh
  • By default, Camunda will use in-memory H2 DB for storing the process details.

Steps to Connect to MySQL DB:

  • Run the scripts present in below directory by selecting the files related to MySQL.
  • Once the tables are created, navigate to the /opt/camunda/server/wildfly-10.1.0.Final/standalone/configuration/standalone.xml file.
  • Add the Ccamunda subsystem as an extension:
<server xmlns="urn:jboss:domain:1.1">

<extensions>

...

<extension module="org.camunda.bpm.wildfly.camunda-wildfly-subsystem"/>
  • Create a data source to connect to MySQL under the data sources section
<datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true">
<connection-url>jdbc:mysql://*hostname*/*dbname*</connection-url>
<driver>mysql</driver>
<security>
<user-name>*username*</user-name>
<password>*password*</password>
</security>
</datasource>
<datasource jta="true" jndi-name="java:jboss/datasources/ProcessEngine" pool-name="ProcessEngine" enabled="true" use-java-context="true" use-ccm="true">
<connection-url> jdbc:mysql://*hostname*/*dbname*</connection-url>
<driver>mysql</driver>
<security>
<user-name>*username*</user-name>
<password>*password*</password>
</security>
<validation>
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker" />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter" />
</validation>
</datasource>
  • Under drivers add a MySQL driver.
<driver name="mysql" module="com.sql.mysql">
<driver-class>com.mysql.jdbc.Driver</driver-class>
</driver>
  • Navigate to /opt/camunda/server/wildfly-10.1.0.Final/modules/com/mysql/driver/main and add mysql-connector-java-5.1.45-bin.jar and module.xml
  • In module.xml, add the below content.
<?xml version="1.0" encoding="UTF-8"?>

<module xmlns="urn:jboss:module:1.1" name="com.sql.mysql">
<resources>
<resource-root path="mysql-connector-java-5.1.45-bin.jar" />
</resources>
<dependencies>
<module name="javax.api" />
<module name="javax.transaction.api" />
</dependencies>
</module>
  • Change the subsystem IP to point to the VM’s internal IP.
<wsdl-host>${jboss.bind.address:*IP*}</wsdl-host>
  • And also change the management interface’s IP to point to the internal IP.
<interfaces>   
<interface name="management">
<inet-address value="${jboss.bind.address.management:*IP*}" />
</interface>
<interface name="public">
<inet-address value="${jboss.bind.address:*IP*}" />
</interface>
</interfaces>

That’s it you are done with running your Camunda Bpm connecting to MySql as Database.

--

--