Chapter 4. Creating the Environment

4.1. Prerequisites

This reference architecture assumes a supported platform (Operating System and JDK). For further information, refer to the BPM Suite Installation Guide section regarding supported environments.

As mentioned before, with minor changes, almost any RDBMS may be used in lieu of PostgreSQL Database for both this reference environment and the EAP 6.4.7 cluster, but if PostgreSQL is used, the details of the download and installation are also considered a prerequisite for this reference architecture. At the time of writing, version 9.2 was installed via dnf for the purposes of this document. On a RHEL system, installing PostgreSQL can be as simple as running:

# dnf install postgresql-server

4.2. Downloads

This reference architecture makes mention and use of several files included as attachments to this document. These files will be used in configuring the reference architecture environment & providing a copy of the application developed herein for reference:

https://access.redhat.com/node/2474561/40/0

If you do not have access to the Red Hat customer portal, See the Comments and Feedback section to contact us for alternative methods of access to these files.

Download JBoss BPM Suite 6.3.0 and its supplementary tools from Red Hat’s Customer Support Portal:

  • Red Hat JBoss BPM Suite 6.3.0 Installer
  • Red Hat JBoss BPM Suite 6.3.0 Supplementary Tools

4.3. Installation

4.3.1. JBoss Enterprise Application Platform

Begin installation of the EAP server by executing the EAP installer script (different from the BPM Suite installer script) jboss-eap-6.4.0-installer.jar in console mode:

# java -jar jboss-eap-6.4.0-installer.jar -console

After selecting a language to continue (or simply pressing enter to accept the default choice indicated in brackets, a common recurrence throughout the installer script), you will be prompted with Terms and Conditions, to which you can reply 1 to continue. Note that you will receive this prompt through the script following each step of the process:

  • Port & directory: for the purposes of this document, port 9999 and /opt/EAP-6.4_[active|passive] will be utilized, along with the default selection of packs to install.
  • Pack installations: default selection of packs is acceptable for the purposes of this document.
  • Admin user: accept the default username admin and provide, then confirm the password password1! for the admin user.
  • Quickstarts: while the quickstart examples aren’t required for the purposes of this document, they should not interfere with the needed stack.
  • Port configuration: accept the default of default port bindings for standalone and domain modes.
  • IPv6: this document will not assume usage of IPv6.
  • Server launch: in order to gain familiarity with starting the server outside of the script, accept the default of Don’t start the server.
  • Logging levels: the default selection of No is acceptable.
  • Runtime environment: Select the default selection for default configuration, then accept.

At this point, you should be able to test and verify connectivity to your database. If you have trouble, please review your data source installation, run status, port availability, and reattempt. Once successful, you can proceed and the installer script will then perform various steps to complete the installation of EAP 6.4.0 at the location provided. When completed, the script will offer a chance to generate an automatic installation script & properties file, which isn’t necessary, but could be leveraged to expedite installation on other nodes. For the purposes of this installation, the default of no is selected and the installation is completed.

Following base installation, we can now start the server up in standalone mode in order to apply the 6.4.7 patch file available from the Red Hat Access Portal within the Patches tab of the EAP version downloads:

# cd /opt/EAP-6.4_active/bin
# ./standalone.sh -b 0.0.0.0 -bmanagement 0.0.0.0

Note that in the lines above, an IP binding of 0.0.0.0 is provided for both the server & management ports of the address. If you’ve chosen to run installations across various virtual machines, you may also find these parameters necessary to avoid configuring the server away from localhost.

Once server startup is completed, you can access the administrative UI server screen by accessing the URL 172.16.71.100:9990/console, substituting the IP of the running server. Once logged in, the UI provides an option for Patch Management from the homescreen.

Figure 4.1. EAP Administration UI Console

EAP Administration UI Console

By accessing Patch Management, you can then upload and apply the EAP 6.4.7 patch file to your server and restart when prompted. Once successful, you can now shut down the standalone EAP instance and proceed below.

4.3.2. PostgreSQL Database

If not already completed, install a single instance of PostgreSQL at this point. Once established, create an eap6 database for the jboss user with password password1!.

Additionally, create new databases for BPMS, Business Central, and Dash Builder with the same jboss user as the owner:

CREATE DATABASE bpms WITH OWNER jboss; 
CREATE DATABASE businesscentral WITH OWNER jboss; 
CREATE DATABASE dashbuilder WITH OWNER jboss; 

Making the jboss user the owner of the bpms database ensures that the necessary privileges to create tables, initiate schema, and modify data are assigned.

4.3.3. JBoss BPM Suite

To install BPM Suite 6.3.0 on the freshly installed & patched instance of JBoss EAP 6.4.7, utilize the BPM Suite installer script, which should have already been downloaded from the Red Hat BPM Suite Software Downloads Access Portal. Run the script in console mode:

# java -jar jboss-bpmsuite-6.3.0.GA-installer.jar -console

Yet again, you will be prompted with a series of steps provided by the installer script to complete the installation:

  • Terms and Conditions: reply 1 to continue, yet again the "confirmation" prompt will be a common recurrence throughout the provided installer script
  • Port & directory: for the purposes of this document, port 9999 and /opt/EAP-6.4_[active|passive] (the HOME directory of the previous EAP installation performed) will be utilized.
  • Administrative user: since an administrative user already exists, we can choose the default and skip adding a new admin user.
  • BPM Suite username: the provided default username of bpmsAdmin is acceptable for the administrative user we will utilize further on to access the BPM Suite UI & create our application. Provide the password password1! for the user.
  • Additional user roles: no further roles are necessary for the bpmsAdmin user at this time, so accept the default and move on.
  • Java security manager: for the purposes of this document, the application container’s authentication and authorization mechanisms are sufficient for our security needs, so accept the default to bypass enabling of the JSM.
  • IPv6: this document will not assume usage of IPv6.
  • Runtime environment: Select the advanced selection of [1] to perform default configuration at this time, then accept.
  • Advanced Configuration: accept defaults (blank, meaning skip) for all questions except for Install clustered configuration, Install Business-Central Datasource & Install Dashbuilder Datasource, which should all be marked 1 to complete.
  • Advanced - JDBC Driver: choose 3 for PostgreSQL & provide the path to an appropriate driver .jar file, then hit enter to continue rather than providing second jar path.
  • Advanced - Datasource: select the default of [0] for postgresql. , then accept the default JNDI name provided, as well as the defaults for min/max pool size, choose not to use a securityDomain for the datasource. Provide the username and password of jboss and password which should have been previously established while following the PostgreSQL configuration portion of the EAP 6 Clustering Reference Architecture document.

    • Quartz database connection URL: jdbc:postgresql://172.16.71.100:5432/bpms
    • Quartz database user: jboss
    • Quartz database password: password
    • datasource type: accept default of postgresql
    • Business Central datasource name: businesscentral
    • Business Central JNDI name: accept default of java:jboss/PostgresBusinessCentralDS
    • min/max pool: accept defaults
    • securityDomain: choose NOT to use a securityDomain
    • username: jboss
    • password: password
    • connection URL: jdbc:postgresql://172.16.71.100:5432/businesscentral
    • Dashbuilder datasource name: dashbuilder
    • Dashbuilder JNDI name: accept default of java:jboss/PostgresDashBuilderDS
    • min/max pool: accept defaults
    • securityDomain: choose NOT to use a securityDomain
    • username: jboss
    • password: password
    • connection URL: jdbc:postgresql://172.16.71.100:5432/dashbuilder

After the installation finishes, DO NOT select to run the server immediately. When completed, the script will confirm with [ Console installation done ] and return to the command prompt. You then need to start the cluster by moving to the directory $EAP_HOME/jboss-brms-bpmsuite-6.3-supplementary-tools/helix-core and executing the included launch script:

./startCluster.sh

This script launches the Helix cluster and ZooKeeper instances. You may now start the newly installed EAP server cluster in domain mode by moving to the directory $EAP_HOME/bin and running:

./domain.sh -b 0.0.0.0 -bmanagement 0.0.0.0

4.4. Configuration

Should you find that your ZooKeeper instances are unable to communicate, it’s possible that some ports need to be opened in order to proceed. ZooKeeper is set up to use port 2181 for client communication. The ZooKeeper ensemble uses port 2188 for followers to connect to the leader as well as port 3188 for leader election. To open these three ports within the set of IP addresses used in this reference environment in a Linux environment, use the following IPTables instructions:

# iptables -I INPUT 24 -p tcp -s 172.16.17.0/24 --dport 2181 -m tcp -j ACCEPT 
# iptables -I INPUT 24 -p tcp -s 172.16.17.0/24 --dport 2888 -m tcp -j ACCEPT 
# iptables -I INPUT 24 -p tcp -s 172.16.17.0/24 --dport 3888 -m tcp -j ACCEPT 

The firewall rules may then be persisted to survive reboots:

# /sbin/service iptables save 

To transfer assets between JBoss Developer Studio and Business Central through Git, also open the Git SSH port for the server. This reference environment uses port 8003 for Git over SSH.

4.4.1. JBoss BPM Suite

At this point, the installer script has completed installation of BPM Suite in a clustered manner with deployments of Business Central and Dashbuilder.