Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Integrate Camunda BPMN With MySQL

DZone's Guide to

Integrate Camunda BPMN With MySQL

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

· Integration Zone ·
Free Resource

The new Gartner Critical Capabilities report explains how APIs and microservices enable digital leaders to deliver better B2B, open banking and mobile projects.

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>

    The new Gartner Critical Capabilities for Full Lifecycle API Management report shows how CA Technologies helps digital leaders with their B2B, open banking, and mobile initiatives. Get your copy from CA Technologies.

    Topics:
    camunda ,integration ,mysql ,xml

    Opinions expressed by DZone contributors are their own.

    {{ parent.title || parent.header.title}}

    {{ parent.tldr }}

    {{ parent.urlSource.name }}