Table of Contents
- RabbitMQ : TIBCO BusinessWorks? ? integration
- The local instance of RabbitMQ
- The TIBCO BusinessWorks installation
- TIBCO >> RabbitMQ connection
- Download the jars from mvnrepository:
- Change the classpath in the tra files to refer to the previous folder with jars:
- Launch the TIBCO Designer, create a new project and define the new JMS connection. Example:
- Set the JNDI Context URL to the configuration folder, np. D:/Conf/Local and create a new .bindings file there.
- Use the ?Test? button to check if the connection is established:
RabbitMQ : TIBCO BusinessWorks? ? integration
The following article describes the process of integrating RabbitMQ with the TIBCO BusinessWorks? (Designer). Please keep in mind that the admin access user might be required to finish specific tasks.
The local instance of RabbitMQ
To be able to launch the RabbitMQ installer, install first the Open Telecom Platform (the version I used was 23.0) and set the $ERLANG_HOME env var.
Erlang: https://www.erlang.org/downloads
Once done, download and install the RabbitMQ on your machine (in my case: Win10 OS).
RabbitMQ: https://github.com/rabbitmq/rabbitmq-server/releases/
When the installation process is finished, user needs to verify if the RMQ service is up and running (use the cmd services.msc command). If so, install the management plugin that will let You to manage the broker via GUI. Launch the cmd, get to the RabbitMQ home location and execute the following commands:
> rabbitmq-plugins list > rabbitmq-plugins enable rabbitmq_management
Once finished, launch the browser and log in to the RMQ GUI using the default credentials (guest/guest): http://localhost:15672/
The Admin section allows You to create a new user or virtualhost which You will use in the upcoming scenarios. For our purpose, please create the following:
user: ?tibco_bw? vh: ?new? (please grant appropriate access)
The TIBCO BusinessWorks installation
The TIBCO BusinessWorks installation is not the main topic of such an article and will be not covered.
The only crucial thing to mention here is that only TIBCO BusinessWorks with version 5.13 (or higher) is capable to connect to the RMQ. Please keep in mind that all related products (such as TRA, RV, EMS) have to be upgraded as well. Otherwise, the user will get the following error when trying to use the TIBCO BusinessWorks 5.10 with the jars compiled with JDK 8.
TIBCO BusinessWorks 5.10:
TIBCO BusinessWorks 5.13:
TIBCO >> RabbitMQ connection
To be able to connect from TIBCO Designer to the working instance of RabbitMQ, please take the following steps:
-
Download the jars from mvnrepository:
- https://mvnrepository.com/artifact/com.rabbitmq/amqp-client/5.9.0
- https://mvnrepository.com/artifact/com.rabbitmq.jms/rabbitmq-jms/2.1.1
- https://mvnrepository.com/artifact/org.apache.geronimo.specs/geronimo-jms_1.1_spec/1.1.1
- https://mvnrepository.com/artifact/com.sun.messaging.mq/fscontext/4.6-b01
and copy them to specific, seperate, folder, e.g. : D:tibcolibs
-
Change the classpath in the tra files to refer to the previous folder with jars:
For the designer.tra - tibco.env.CUSTOM_CP_EXT:
For the bwengine.tra - tibco.env.CUSTOM_EXT_APPEND_CP:
-
Launch the TIBCO Designer, create a new project and define the new JMS connection. Example:
-
Set the JNDI Context URL to the configuration folder, np. D:/Conf/Local and create a new .bindings file there.
The attribute definitions required to establish the connection can be found at https://www.rabbitmq.com/jms-client.html .
The sample configuration (please update with your specific data):
LocalConnectionFactory/FactoryName=com.rabbitmq.jms.admin.RMQObjectFactory LocalConnectionFactory/ClassName=javax.jms.ConnectionFactory #Name LocalConnectionFactory/RefAddr/0/Type=name LocalConnectionFactory/RefAddr/0/Encoding=String LocalConnectionFactory/RefAddr/0/Content=jms/ConnectionFactory #Type LocalConnectionFactory/RefAddr/1/Type=type LocalConnectionFactory/RefAddr/1/Encoding=String LocalConnectionFactory/RefAddr/1/Content=javax.jms.ConnectionFactory #Factory LocalConnectionFactory/RefAddr/2/Type=factory LocalConnectionFactory/RefAddr/2/Encoding=String LocalConnectionFactory/RefAddr/2/Content=com.rabbitmq.jms.admin.RMQObjectFactory #Hostname LocalConnectionFactory/RefAddr/3/Type=host LocalConnectionFactory/RefAddr/3/Encoding=String LocalConnectionFactory/RefAddr/3/Content=localhost #Port LocalConnectionFactory/RefAddr/4/Type=port LocalConnectionFactory/RefAddr/4/Encoding=String LocalConnectionFactory/RefAddr/4/Content=5672 #VirtualHost LocalConnectionFactory/RefAddr/5/Type=virtualHost LocalConnectionFactory/RefAddr/5/Encoding=String LocalConnectionFactory/RefAddr/5/Content=new #Username LocalConnectionFactory/RefAddr/6/Type=username LocalConnectionFactory/RefAddr/6/Encoding=String LocalConnectionFactory/RefAddr/6/Content=tibco_bw #Password LocalConnectionFactory/RefAddr/7/Type=password LocalConnectionFactory/RefAddr/7/Encoding=String LocalConnectionFactory/RefAddr/7/Content=tibco_bw RequestQ/ClassName=javax.jms.Queue RequestQ/FactoryName=com.rabbitmq.jms.admin.RMQObjectFactory RequestQ/RefAddr/0/Content=jms/Queue RequestQ/RefAddr/0/Type=name RequestQ/RefAddr/0/Encoding=String RequestQ/RefAddr/1/Content=javax.jms.Queue RequestQ/RefAddr/1/Type=type RequestQ/RefAddr/1/Encoding=String RequestQ/RefAddr/2/Content=com.rabbitmq.jms.admin.RMQObjectFactory RequestQ/RefAddr/2/Type=factory RequestQ/RefAddr/2/Encoding=String RequestQ/RefAddr/3/Content=RequestQueue RequestQ/RefAddr/3/Type=destinationName RequestQ/RefAddr/3/Encoding=String
-
Use the ?Test? button to check if the connection is established:
Now, create the simple flow to send messages to the queue:
RequestQ is a reference name we use;
RequestQueue is a queue name;
Log in to the RMQ GUI and under the ?Connection? tab check whether the connection was established:
The newly created queue of RequestQueue should appear on the list for the ?new? virtual host:
Queue overview:
Furthermore, the newly created Exchange of jms.durable.queues should be visible under the ?Exchanges? tab.
The new binding to the RequestQueue is defined as:
Recommended Comments
There are no comments to display.
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now