Cloud Software Group, Inc. EBX®
Documentation > Administration Guide > Installation & configuration > Installation notes
Navigation mode Documentation > Administration Guide > Installation & configuration > Installation notes

# Installation note for JBoss EAP 8.0.X

## Overview

##### Attention

- This chapter describes a quick installation example of TIBCO EBX® on JBoss Application Server.

- It does not replace the documentation of this application server.

- They are not general installation recommendations, as the installation process is determined by architectural decisions, such as the technical environment, application mutualization, delivery process, and organizational decisions.

- The complete description of the components needed by EBX® is given in chapter Jakarta EE deployment.

- To avoid unpredictable behavior, the guideline to follow is to avoid any duplicates of `ebx.jar`, `ebx-lz4.jar` or other libraries in the class-loading system.

- Refer to the Security Best Practices for information on navigating secure deployments.

## Requirements

- Java SE 17 LTS

- JBoss Application Server EAP 8.0

- Database and JDBC driver

- EBX® CD

- No CDI features in EBX®'s additional modules (since CDI will be automatically disable)

##### See also

- Supported environments

## JBoss Application Server installation

This quick installation example is performed for an unix operating system.

1. Download JBoss EAP 8.0.X `Installer` jar version from:

   https://developers.redhat.com/products/eap/download/

2. Run the `Installer` using java -jar command line.

   For further installation details, refer to the documentation .

3. Perform a standard installation:

   1. Select the language and click 'OK',

   2. Accept the License and click 'Next',

   3. Choose the installation path and click 'Next',

   4. Keep the 'Component Selection' as it is and click 'Next',

   5. Enter 'Admin username', 'Admin password' and click 'Next',

   6. On 'Installation Overview' click 'Next',

   7. On 'Component Installation' click 'Next',

   8. On 'Configure Runtime Environment' leave the selection as it is and click 'Next',

   9. When 'Processing finished' appear, click 'Next',

   10. Generate 'installation script and properties file' in the JBoss EAP 8.0 installation root directory,

   11. Click 'done'.

## EBX® home directory configuration

1. Create the EBX_HOME directory, for example `/opt/ebx/home`.

2. Copy from the EBX® CD, the `ebx.software/files/ebx.properties` file to EBX_HOME. In our example, we will have the following file:

   `/opt/ebx/home/ebx.properties`.

3. If needed, edit the `ebx.properties` file to override the default database. By default the standalone H2 database is defined. The property key `ebx.persistence.factory` must be uncommented for other supported databases and the `h2.standalone` one must be commented.

## JBoss Application Server and Java Virtual Machine configuration

1. Open the `standalone.conf` configuration file, placed in `<JBOSS_HOME>/bin` (or `jboss-eap.conf` file placed in `<JBOSS_HOME>/bin/init.d` for running the server as a service).

2. Add 'ebx.properties' and 'ebx.home' properties to the 'JAVA_OPTS' environment variable respectively set with `ebx.properties` file's path and EBX_HOME directory's path.

3. Set the 'JBOSS_MODULES_SYSTEM_PKGS' environment variable like the following:

       JBOSS_MODULES_SYSTEM_PKGS="org.jboss.byteman,net.jpountz"

4. Copy from the EBX® CD, the `ebx.software/lib/ebx-lz4.jar` Data compression library to a dedicated directory (for example `<JBOSS_HOME>/compress`).

5. Open the `standalone.sh` script file, placed in `<JBOSS_HOME>/bin`.

6. Create a 'CLASSPATH' environment variable like the following:

       CLASSPATH="<path_to_the_data_compression_library>:${JBOSS_HOME}/jboss-modules.jar:${CLASSPATH}"

       # For our example
       # CLASSPATH="${JBOSS_HOME}/compress/ebx-lz4.jar:${JBOSS_HOME}/jboss-modules.jar:${CLASSPATH}"

7. Replace the launch command options for foreground and background executions like the following:

       if [ "x$LAUNCH_JBOSS_IN_BACKGROUND" = "x" ]; then
          # Execute the JVM in the foreground
          eval \"$JAVA\" -D\"[Standalone]\" $JAVA_OPTS \
             -cp "$CLASSPATH" \
             \"-Dorg.jboss.boot.log.file="$JBOSS_LOG_DIR"/server.log\" \
             \"-Dlogging.configuration=file:"$JBOSS_CONFIG_DIR"/logging.properties\" \
             org.jboss.modules.Main \
             $MODULE_OPTS \
             -mp \""${JBOSS_MODULEPATH}"\" \
             org.jboss.as.standalone \
             -Djboss.home.dir=\""$JBOSS_HOME"\" \
             -Djboss.server.base.dir=\""$JBOSS_BASE_DIR"\" \
             "$SERVER_OPTS"
             JBOSS_STATUS=$?

       else
          # Execute the JVM in the background
          eval \"$JAVA\" -D\"[Standalone]\" $JAVA_OPTS \
             -cp "$CLASSPATH" \
             \"-Dorg.jboss.boot.log.file="$JBOSS_LOG_DIR"/server.log\" \
             \"-Dlogging.configuration=file:"$JBOSS_CONFIG_DIR"/logging.properties\" \
             org.jboss.modules.Main \
             $MODULE_OPTS \
             -mp \""${JBOSS_MODULEPATH}"\" \
             org.jboss.as.standalone \
             -Djboss.home.dir=\""$JBOSS_HOME"\" \
             -Djboss.server.base.dir=\""$JBOSS_BASE_DIR"\" \
             "$SERVER_OPTS" "&"
       ...
       fi

## JNDI entries configuration

1. Open the `standalone-full.xml` file placed in `<JBOSS_HOME>/standalone/configuration`.

2. Add, at least, the following lines to the `server` tag in `messaging-activemq` subsystem:

       <connection-factory
           name="jms/EBX_JMSConnectionFactory"
           entries="java:/EBX_JMSConnectionFactory"
           connectors="To Be Defined"/>
       <jms-queue
           name="jms/EBX_D3ReplyQueue"
           entries="java:/jms/EBX_D3ReplyQueue"
           durable="true"/>
       <jms-queue
           name="jms/EBX_QueueIn"
           entries="java:/jms/EBX_QueueIn"
           durable="true"/>
       <jms-queue
           name="jms/EBX_QueueFailure"
           entries="java:/jms/EBX_QueueFailure"
           durable="true"/>
       <jms-queue
           name="jms/EBX_D3MasterQueue"
           entries="java:/jms/EBX_D3MasterQueue"
           durable="true"/>
       <jms-queue
           name="jms/EBX_D3ArchiveQueue"
           entries="java:/jms/EBX_D3ArchiveQueue"
           durable="true"/>
       <jms-queue
           name="jms/EBX_D3CommunicationQueue"
           entries="java:/jms/EBX_D3CommunicationQueue"
           durable="true"/>

   Caution: the `connectors` attribute value, from the `connection-factory` element, has to be defined. Since the kind of connectors is strongly reliant on the environment infrastructure, a default configuration can not be provided.

   See configuring messaging old documentation, for more information.

3. Add, at least, the following line to `mail` subsystem:

       <mail-session name="mail" debug="false" jndi-name="java:/EBX_MAIL_SESSION"/>

## Data source and JDBC provider configuration

1. After the launch of the JBoss Server, run the management CLI without the use of '--connect' or '-c' argument.

2. Use the 'module add' management CLI command to add the new core module. Sample for PostgreSQL configuration:

       module add \
         --name=org.postgresql \
         --resources=<PATH_TO_JDBC_JAR> \
         --dependencies=wildflyee.api

3. Use the 'connect' management CLI command to connect to the running instance.

4. Register the JDBC driver. When running in a managed domain, ensure to precede the command with '/profile=<PROFILE_NAME>'. Sample for PostgreSQL configuration:

       /subsystem=\
         datasources/jdbc-driver=\
           postgresql:add(\
             driver-name=postgresql,\
             driver-module-name=org.postgresql,\
             driver-xa-datasource-class-name=org.postgresql.xa.PGXADataSource\
           )

5. Define the data source using the 'data-source add' command, specifying the appropriate argument values. Sample for PostgreSQL configuration:

       data-source add \
         --name=jdbc/EBX_REPOSITORY \
         --jndi-name=java:/EBX_REPOSITORY \
         --driver-name=postgresql \
         --connection-url=jdbc:postgresql://<SERVER_NAME>:<PORT>/<DATABASE_NAME> \
         --user-name=<PERSISTENCE_USER> \
         --password=<PERSISTENCE_PASSWORD>

   ##### Note

   The data source can also be specified through the EBX® main configuration file. See Data source of the EBX® repository for more information.

## EBX.ear application update

1. Copy from the EBX® CD, the `ebx.software/webapps/ear-packaging/EBX.ear` file to your working directory.

2. Uncompress the ear archive to add the application's specific required third-party libraries and additional web modules.

   Mail: see SMTP and emails for more information.

   SSL: see Secure Socket Layer (SSL) for more information.

   JMS: see Java Message Service (JMS) for more information.

3. Update the `/META-INF/application.xml` and `/META-INF/jboss-deployment-structure.xml` files according to the added additional web modules.

4. Compress anew the ear archive.

## EBX.ear application deployment

1. Copy EBX.ear into the `JBOSS_HOME/standalone/deployments` directory.

## EBX® application start

1. After the launch of the JBoss Application Server, with the `<JBOSS_HOME>/bin/standalone.sh -c standalone-full.xml` command line or through the service command, run the EBX® web application by entering the following URL in the browser: http://localhost:8080/ebx/.

2. At first launch, EBX® Wizard helps to configure the default properties of the initial repository.

Documentation > Administration Guide > Installation & configuration > Installation notes