How to integrate BW 6.4.x with JBOSS Wildfly 10.1 as a JMS Provider?

How to integrate BW 6.4.x with JBOSS Wildfly 10.1 as a JMS Provider?

book

Article ID: KB0083915

calendar_today

Updated On:

Products Versions
TIBCO ActiveMatrix BusinessWorks 6.x

Description

BW 6.x supports only jnp protocol out of the box to do a JNDI lookup on JBOSS Server. However, jnp protocol is a very old protocol and new versions of JBOSS do not support this protocol for JNDI lookup. So BW 6.x supports only up to JBOSS 6.x version as messaging provider out-of-box. As JBOSS 6.x is not supported by RedHat anymore, customers might want to use the latest version of JBOSS Application Server (Wildfly 10.1) to be used as a messaging provider with BW. This can be achieved/supported via a Custom JMS Driver.

Issue/Introduction

This article describes the steps on how to make a JMS Connection from BW 6.x to JBOSS Wildfly 10.1 as a JMS Provider.

Environment

JBOSS Wildfly 10.1 Application Server TIBCO BusinessWorks 6.x

Resolution

A. Setup JBOSS WildFly 10.1 Application Server:

1. Download JBOSS WildFly 10.1 from  http://download.jboss.org/wildfly/10.1.0.Final/wildfly-10.1.0.Final.zip.

2. Extract it onto your local machine. We'll refer to this extracted folder as JBOSS_HOME.

3. Open a command line at JBOSS_HOME/bin and start the JBOSS Application Server using the command:  ./standalone.sh -b 0.0.0.0 -c standalone-full.xml

4. Add an user called to JBOSS for both as a Management User as well as an Application user by running the add-user script present in JBOSS_HOME/bin. Please see the screenshot below.

User-added image

4. Login to the JBOSS Management console at:  http://localhost:9990/console using the user/password combination you just created.

User-added image

5. Click on the " Start" link adjacent to " Create JMS Queue" link.

User-added image

7. Click on the " Queue/Topics" button at Subsystems->Messaging-ActiveMQ->Default

User-added image

8. Create a new queue called SampleQueue with the following configurations:

User-added image

B. Creating JMS Custom Driver for JBOSS 10.1 to be used with BW 6.x:
 
1. Copy all the jars present in the attached lib.zip to  BW_HOME/config/design/thirdparty/JMS directory as well as BW_HOME/config/drivers/shells/jms.jboss.runtime/runtime/plugins/com.tibco.bw.sharedresource.jms.runtime.jboss.client/lib directory.

2. Copy the JBOSS_HOME/bin/client/jboss-client.jar to  BW_HOME/config/design/thirdparty/JMS directory as well as BW_HOME/config/drivers/shells/jms.jboss.runtime/runtime/plugins/com.tibco.bw.sharedresource.jms.runtime.jboss.client/lib directory.

3. Open a command line at BW_HOME/bin and use the following command to install jboss-driver: ./bwinstall jboss-driver
Make sure that the driver installation returns successfully.

4. Download and extract the attached Eclipse project (CustomJMSProvider.zip) to your BW machine. Open the .classpath file (which is a hidden file) in the extracted folder with a Text Editor and modify the TIBCO_HOME values in all lib classpath entries with your own TIBCO_HOME. Then save the .classpath file.

User-added image

5. Import the CustomJMSProvider Eclipse project to TIBCO BusinessWorks 6.x Business Studio as Import->Import->Existing Projects to WorkSpace.

User-added image

Now select the directory where you unzipped the CustomJMSProvider Eclipse project.

User-added image

6. Open up the CustomJBOSSProvider.java file and update it with the JNDI Context Provider class you want to use. In this example, we are want to use http-remoting protocol for JNDI lookup, which is inside the " org.jboss.naming.remote.client.InitialContextFactory" class in the JBOSS Client library.

User-added image

7. Build the project from Studio. The respective class files will be created in the "bin" directory of the CustomJMSProvider project.

Copy the  CustomJMSProvider/bin/com/tibco/bw/sr/jms/runtime/jboss/client/Activator.class to  BW_HOME/config/drivers/shells/jms.jboss.runtime/runtime/plugins/com.tibco.bw.sharedresource.jms.runtime.jboss.client/com/tibco/bw/sr/jms/runtime/jboss/client directory. It will replace the Activator.class file already located in this directory.

Copy the  CustomJMSProvider/bin/com/tibco/bw/sr/jms/runtime/jboss/client/service/CustomJBossProvider.class to  BW_HOME/config/drivers/shells/jms.jboss.runtime/runtime/plugins/com.tibco.bw.sharedresource.jms.runtime.jboss.client/com/tibco/bw/sr/jms/runtime/jboss/client/service directory.

C. Using the Custom JMS Driver in BW to send/receive message via JBOSS Application Server:

Import the sample BW 6.x projects from attached BWSampleProject.zip to BusinessStudio. Validate the projects, clean them and run the application via Studio. The application contains two processes, one that sends a message to the SampleQueue in JBOSS and one that receives messages from it. You'll see that the BW application is successfully able to send/.receive messages via JBOSS WildFly 10.1.

User-added image
 

Attachments

How to integrate BW 6.4.x with JBOSS Wildfly 10.1 as a JMS Provider? get_app
How to integrate BW 6.4.x with JBOSS Wildfly 10.1 as a JMS Provider? get_app
How to integrate BW 6.4.x with JBOSS Wildfly 10.1 as a JMS Provider? get_app