This document will guide you through the installation of camunda BPM and its components on a IBM WebSphere Application Server.
Enterprise Feature
Please note, that this feature is included only in the enterprise edition of the camunda BPM platform, it is not available in the community edition.Check the camunda product homepage for more information or to get your free trial version.
Reading the Guide
Throughout this guide we will use a number of variables to denote common path names and constants.$WAS_HOME
points to the WebSphere application server main directory (typically something like /opt/IBM/WebSphere/AppServer
). $PLATFORM_VERSION
denotes the version of the camunda BPM platform you want to or have installed, e.g. 7.0.0
. $WAS_DISTRIBUTION
represents the downloaded camunda BPM distribution for the WAS, e.g. camunda-ee-ibm-was-$PLATFORM_VERSION.zip
.
The distribution is available at the camunda enterprise release page. You will be asked to enter the credentials you received during the trial or subscription process.
The camunda platform requires a set of resources that need to be configured at the application server level: one or multiple datasources to be used by the engine and a work manager for the job executor.
In order to perform the steps listed in this guide, make sure you understand the concept of management scopes introduced by the websphere application server. We assume that resources are defined at the "Node" scope.
The camunda BPM engine uses one or multiple process engines. Use your application server management tooling for configuring the datasources. The JNDI name of the datasource must be equal to the name used in the datasource-Element of the process engine(s) configured in the bpm-platform.xml file.
The default JNDI name is jdbc/ProcessEngine
The following screenshot shows the configuration of an XA datasource:
Note that you may configure multiple datasources used by different process engine instances. See the User Guide for details.
This section explains how you can use the WebShere Integrated Solutions Console for configuring a work manager to be used by the camunda BPM platform jobexecutor. It is recommended to check the manual of the application server for additional details.
Select the appropriate server under Resources / Asynchronous Beans / Work Managers and open the configuration page. Example: server1
Create a new work manager using the Button New....
Configure the new Work Manager. The following is a selection of sensible default values:
Property | Default Value | Explanation |
---|---|---|
Name | camunda-platform-jobexecutor-WM | The name of the Work Manager. You can choose a different name if you reference it when installing the camunda platform jobexecutor resource adapter (see below). |
JNDI name |
Default JNDI name for WorkManager:
This setting value is mandatory. |
|
Description | "The work manager used by the camunda platform job executor" | Describes the work manager. Any value can be used. |
Work Request Queue Size | 5 | Specifies the size of the work request queue. The work request queue is a buffer that holds scheduled work objects and may be a value of 1 or greater. The thread pool pulls work from this queue. If you do not specify a value or the value is 0, the queue size is managed automatically. Large values can consume significant system resources. |
Work request queue full action | FAIL | Specifies the action that is taken when the thread pool is exhausted, and the work request queue is full. This action starts when you submit non-daemon work to the work manager. The default value is block but should be changed to "Fail". |
Property | Default Value | Explanation |
---|---|---|
Number of alarm threads | 2 | Specifies the desired maximum number of threads that are used for alarms. The default value is 2. |
Maximum number of threads | 4 | Specifies the maximum number of threads that are available in this work manager used by the jobexecutor. Should be greater than "Minimum Size". |
Minimum number of threads | 2 | Specifies the minimum number of threads that are available in this work manager. Should not be below "2" since one thread is blocked by the job acquisition. If you configure multiple job acquisitions, the Minimal Size should not be below Nr. of Acquisitions + 1. |
Thread Priority | 5 | Specifies the priority of the threads that are available in this work manager. |
Growable | False | Specifies whether the number of threads in this work manager can be increased automaically when maximum number of threads is reached.The default value is true, but should be changed to "False" |
The following screenshot shows an example configuration of the work manager and its thread pool properties.
The camunda platform includes two modules in the modules folder of the distribution:
camunda-ee-ibm-was-$PLATFORM_VERSION.zip
|-- modules/
|-- camunda-ibm-websphere-ear-$PLATFORM_VERSION.ear
|-- camunda-ibm-websphere-rar-$PLATFORM_VERSION.rar
The camunda-ibm-websphere-rar module is a JCA Resource Adapter providing the jobexecutor service to the camunda BPM platform. The camunda-ibm-websphere-ear is a Java EE application providing the camunda BPM platform services.
Both modules must be installed to your IBM WebSphere Application Server in the correct order. You must first install the camunda-ibm-websphere-rar module and then install the camunda-ibm-websphere-ear module.
In this section, we explain how the camunda-ibm-websphere-rar module can be installed using the WebShere Integrated Solutions Console.
The installation process is composed of three steps:
camunda-ibm-websphere-rar-$PLATFORM_VERSION.rar
RAR file.First, the camunda-ibm-websphere-rar-$PLATFORM_VERSION.rar
RAR file must be installed:
camunda-ibm-websphere-rar-$PLATFORM_VERSION.rar
from the modules folder of the camunda BPM platform for IBM WebShpere Application Server distribution. Click Next to go to the Properties page.camunda-ibm-websphere-rar
.camunda-ibm-websphere-rar
, if you choose the same name in the previous step.Save your settings. This completes the installation of the resource adapter.
In this section, we explain how the camunda-ibm-websphere-ear module can be installed using the WebShere Integrated Solutions Console.
camunda-ibm-websphere-ear-$PLATFORM_VERSION.ear
file from the modules folder of the camunda BPM platform for IBM WebShpere Application Server distribution. Click Next.In Step 1 Under application-name, type "camunda-bpm-platform". This setting is mandatory.
Manadatory Application Name
The camunda BPM platform application MUST be installed with the application name "camunda-bpm-platform".In Step 5,
In Step 9,
In Steps 10-12, go with the default settings.
When installing the camunda BPM platform Application, you may see error messages indicating that you are referencing resources from the wrong scope. Make sure you define the jobexecutor resources in the right scope. Make sure you understand the IBM WebSphere management concepts "Cell", "Node" and "Server".
At cycle login you may get an error when trying to setup an initial user profile. The Exception contains the following error message: java.lang.VerifyError in class org/springframework/aop/aspectj/MethodInvocationProceedingJoinPoint. This is a known bug in WebSphere v. 8.5.5. Download the fix package 8.5.5.0-WS-WASProd-IFPM90932 from the IBM support center and install it via the IBM Installation Manager.
The camunda REST API WAR file resides under webapps/camunda-engine-rest-$PLATFORM_VERSION-was.war
in the WAS distribution archive.
In the following we explain how to install the WAR file using the Websphere enterprise application Wizard provided inside the Websphere Integrated Solutions Console:
camunda-engine-rest-VERSION-was.war
file from the distribution and upload it.After completing the wizard, REST API should be successfully installed on the application server. Don't forget to save your changes to the master configuration. In some situations, you also have to start the web application manually from the Applications / Application Types / WebSphere enterprise applications Page.
Note: We do not recommend to install camunda Cycle together with the other platform components (webapps, engine, REST Api) on the same runtime environment. Such a combined installation is not supported.
The next step consists in creating a database schema for camunda Cycle. The camunda platform distribution ships with a set of SQL create scripts that can be executed by a database administrator.
The SQL create scripts reside in the camunda platform distribution in the sql/create folder, like sql/create/*_cycle_VERSION.sql
.
There is an individual SQL script for each supported database. Select the script appropriate for your database and run it with your database administration tool. (e.g. SqlDeveloper for Oracle).
We recommend to create a separate database or database schema for camunda Cycle.
Now you must define a datasource in IBM Websphere Application Server. We assume here that you are familiar with the procedure. If in doubt, check the appropriate sections in the manual of your application server.
Note
In the default configuration, Cycle will lookup a datasource named jdbc/CycleDS
.
The datasource should be named jdbc/CycleDS
.
In order to use a custom datasource name, you have to edit the file named Cycle-persistence.xml residing at
Cycle-was-VERSION.war/WEB-INF/classes/META-INF/cycle-persistence.xml
The camunda Cycle WAR file resides under webapps/cycle-was-$PLATFORM_VERSION.war
in the WAS distribution archive.
In the following we explain how to install the WAR file using the Websphere enterprise application Wizard provided inside the Websphere Integrated Solutions Console:
cycle-was-VERSION.war
file from the distribution and upload it.After completing the wizard, Cycle should be successfully installed on the application server. Don't forget to save your changes to the master configuration. In some situations, you also have to start the web application manually from the Applications / Application Types / WebSphere enterprise applications Page.
Note
In some configurations, Cycle might prevent other web applications to work properly due to classloading issues and the bundled JAX-RS implementation in Cycle.
To fix this, go to Applications / Application Types / WebSphere enterprise applications. Click on the Cycle application link and go the the Startup Behaviour view.
You should increase the startup order to a value higher than the one of the application(s) Cycle is conflicting with. The default value is 1
, so you should be fine with 2
for Cycle
You need to reboot the server after doing this.
Note
When you want to use the SaaS offer by Signavio or internally using the camunda webmodeler over the HTTPS protocol and Cycle is deployed on WAS, then you have to install the `IBM Unrestricted JCE policy` files provided by IBM.
You can download them here with an valid IBM ID account. Just choose the version which fits your JDK Version + Service Release your WAS is running on.
After you have downloaded them, drop the extracted jar files into your `$WAS_HOME/AppServer/java/jre/lib/security` folder and restart the server afterwards.
The web application archive that contains camunda Cockpit and Tasklist resides under webapps/camunda-was-$PLATFORM_VERSION.war
in the WAS distribution archive.
In the following we explain how to install the WAR file using the Websphere enterprise application Wizard provided by the Websphere Integrated Solutions Console:
camunda-was-VERSION.war
file from the distribution and upload it.After completing the wizard, the applications should be successfully installed on the application server. Don't forget to save your changes to the master configuration. In some situations, you also have to start the web application manually from the Applications / Application Types / WebSphere enterprise applications Page.
You can check whether everything went well by accessing Cockpit and Tasklist via /camunda/app/cockpit
and /camunda/app/tasklist
or under the context path you configured.
In order to setup LDAP for the websphere distribution, you have to perform the following steps:
1. Add LDAP Library
Make sure the camunda-identity-ldap-$PLATFORM_VERSION.jar
is present in the
$WAS_HOME/lib/ext
folder.
2. Adjust Process Engine Configuration
Edit the file bpm-platform.xml
located inside the folder camunda-ibm-websphere-ear-$VERSION/camunda-ibm-websphere-service-$VERSION/META-INF/
and add the LDAP Identity Provider Plugin and the Administrator Authorization Plugin.
<?xml version="1.0" encoding="UTF-8"?>
<bpm-platform xmlns="http://www.camunda.org/schema/1.0/BpmPlatform"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.camunda.org/schema/1.0/BpmPlatform http://www.camunda.org/schema/1.0/BpmPlatform ">
...
<process-engine name="default"> ...
<properties>...</properties>
<plugins>
<plugin>
<class>org.camunda.bpm.identity.impl.ldap.plugin.LdapIdentityProviderPlugin</class>
<properties>
<property name="serverUrl">ldap://localhost:4334/</property>
<property name="managerDn">uid=jonny,ou=office-berlin,o=camunda,c=org</property>
<property name="managerPassword">s3cr3t</property>
<property name="baseDn">o=camunda,c=org</property>
<property name="userSearchBase"></property>
<property name="userSearchFilter">(objectclass=person)</property>
<property name="userIdAttribute">uid</property>
<property name="userFirstnameAttribute">cn</property>
<property name="userLastnameAttribute">sn</property>
<property name="userEmailAttribute">mail</property>
<property name="userPasswordAttribute">userpassword</property>
<property name="groupSearchBase"></property>
<property name="groupSearchFilter">(objectclass=groupOfNames)</property>
<property name="groupIdAttribute">ou</property>
<property name="groupNameAttribute">cn</property>
<property name="groupMemberAttribute">member</property>
</properties>
</plugin>
<plugin>
<class>org.camunda.bpm.engine.impl.plugin.AdministratorAuthorizationPlugin</class>
<properties>
<property name="administratorUserName">admin</property>
</properties>
</plugin>
</plugins>
</process-engine>
</bpm-platform>
The administratorUserName
property should contain the user id of the LDAP user you want to grant administrator authorizations to. You can then use this user to log into the webapplication and grant authorizations to additional users.
See userguide for complete documentation on the LDAP Identity Provider Plugin and the Administrator Authorization Plugin.