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 Java 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.
Java SE 8 or 11
JBoss Application Server EAP 7.1
Database and JDBC driver
EBX® CD
No CDI features in EBX®'s additional modules (since CDI will be automatically disable)
This quick installation example is performed for a Linux operating system.
Download JBoss EAP 7.1 Installer
jar version 7.1.x from:
Run the Installer
using java -jar command line.
For further installation details, refer to the documentation .
Perform a standard installation:
Select the language and click 'OK',
Accept the License and click 'Next',
Choose the installation path and click 'Next',
Keep the 'Component Selection' as it is and click 'Next',
Enter 'Admin username', 'Admin password' and click 'Next',
On 'Installation Overview' click 'Next',
On 'Component Installation' click 'Next',
On 'Configure Runtime Environment' leave the selection as it is and click 'Next',
When 'Processing finished' appear, click 'Next',
Uncheck 'Create shortcuts in the start menu' and click 'Next',
Generate 'installation script and properties file' in the JBoss EAP 7.1 installation root directory,
Click 'done'.
Create the EBX_HOME directory, for example /opt/ebx/home
.
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
.
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.
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).
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.
Set the 'JBOSS_MODULES_SYSTEM_PKGS' environment variable like the following:
JBOSS_MODULES_SYSTEM_PKGS="org.jboss.byteman,net.jpountz"
Copy from the EBX® CD, the ebx.software/lib/ebx-lz4.jar
Data compression library to a dedicated directory (for example <JBOSS_HOME>/compress
).
Open the standalone.sh
script file, placed in <JBOSS_HOME>/bin
.
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}"
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
Open the standalone-full.xml
file placed in <JBOSS_HOME>/standalone/configuration
.
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 for more information.
Add, at least, the following line to mail
subsystem:
<mail-session name="mail" debug="false" jndi-name="java:/EBX_MAIL_SESSION"/>
After the launch of the JBoss Server, run the management CLI without the use of '--connect' or '-c' argument.
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=javaee.api,sun.jdk,ibm.jdk,javax.api,javax.transaction.api
Use the 'connect' management CLI command to connect to the running instance.
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\ )
Define the datasource 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>
Copy from the EBX® CD, the ebx.software/webapps/ear-packaging/EBX.ear
file to your working directory.
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.
XML Catalog API: see XML Catalog API for more information.
Update the /META-INF/application.xml
and /META-INF/jboss-deployment-structure.xml
files according to the added additional web modules.
Compress anew the ear archive.
Copy EBX.ear into the JBOSS_HOME/standalone/deployments
directory.
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/.
At first launch, EBX® Wizard helps to configure the default properties of the initial repository.