This document will guide you through the installation of camunda BPM and its components on an IBM WebSphere Application Server.
Enterprise FeaturePlease note that this feature is only included in the enterprise edition of the camunda BPM platform, it is not available in the community edition.
Reading the Guide
$WAS_HOMEpoints to the WebSphere application server main directory (typically something like
$PLATFORM_VERSIONdenotes the version of the camunda BPM platform you want to install or already have installed, e.g.
$WAS_DISTRIBUTIONrepresents the downloaded camunda BPM distribution for the WAS, e.g.
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 BPM platform requires a set of resources that need to be configured at the application server level:
In order to perform the steps listed in this guide, make sure you understand the concept of management scopes introduced by the IBM 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 the configuration of 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
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 to configure 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:
Create a new work manager using the Button New....
Configure the new Work Manager. The following is a selection of sensible default values:
|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 BPM platform jobexecutor resource adapter (see below).|
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".|
|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 automatically when the 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 BPM 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 must be installed:
camunda-ibm-websphere-rar-$PLATFORM_VERSION.rarfrom the modules folder of the camunda BPM platform for IBM WebSphere Application Server distribution. Click Next to go to the Properties page.
camunda-ibm-websphere-rar, if you chose 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.earfile from the modules folder of the camunda BPM platform for IBM WebSphere Application Server distribution. Click Next.
In Step 1, under application-name, type "camunda-bpm-platform". This setting is mandatory.
Manadatory Application NameThe 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".
When logging in to Cycle 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 18.104.22.168-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 this section we explain how to install the WAR file using the WebSphere enterprise application Wizard provided within the WebSphere Integrated Solutions Console:
camunda-engine-rest-VERSION-was.warfile 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.
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 of 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, eg.
There is an individual SQL script for each supported database. Select the appropriate script 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 the IBM WebSphere Application Server. Here we assume that you are familiar with the procedure. If in doubt, check the appropriate sections in the manual of your application server.
In the default configuration, Cycle will lookup a datasource named
The datasource should be named
In order to use a custom datasource name, you have to edit the file named Cycle-persistence.xml residing at
The camunda Cycle WAR file resides under
webapps/cycle-was-$PLATFORM_VERSION.war in the WAS distribution archive.
In this section we explain how to install the WAR file using the WebSphere enterprise application Wizard provided inside the WebSphere Integrated Solutions Console:
cycle-was-VERSION.warfile 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.
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.
When you want to use the SaaS offer by Signavio or internally use 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 this section we explain how to install the WAR file using the Websphere enterprise application Wizard provided by the Websphere Integrated Solutions Console:
camunda-was-VERSION.warfile 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 if everything went well by accessing Cockpit and Tasklist via
/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
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>
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.