The TIBCO Platform is a real-time, composable data platform that will bring together an evolving set of your TIBCO solutions - and it's available now!
A chart showing the TIBCO Platform vision
Jump to content
Articles
Read more about TIBCO use cases, product features, capabilities and more
  • RabbitMQ : TIBCO BusinessWorks? (Designer) integration/configuration


    Manoj Chaurasia

    Table of Contents

    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/

    1_28.png.763f65d7819583faadd6543c7a4360de.png

    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.

    2_13.png.4d1e31bb638c9205f6df5685009c8ace.png

    TIBCO BusinessWorks 5.10:

    3_12.thumb.png.1015d50c03905a0c1864670265d534f4.png

    TIBCO BusinessWorks 5.13:

    4_11.png.f7d9559e85d3689a562b7b68fbb24338.png

    TIBCO >> RabbitMQ connection

    To be able to connect from TIBCO Designer to the working instance of RabbitMQ, please take the following steps:

    1. Download the jars from mvnrepository:

      and copy them to specific, seperate, folder, e.g. : D:tibcolibs

    2. Change the classpath in the tra files to refer to the previous folder with jars:

      For the designer.tra - tibco.env.CUSTOM_CP_EXT:

      5_9.thumb.png.82c8f124a619a3d81ac006b970ba635e.png

      For the bwengine.tra - tibco.env.CUSTOM_EXT_APPEND_CP:

      6_5.thumb.png.3b5e723c23862638060d0955e80b1c5d.png

    3. Launch the TIBCO Designer, create a new project and define the new JMS connection. Example:

      7_6.png.2b74d065a1d543fb18bc5ff59ad68668.png

      8_5.png.aa23332c1de6d3fed8cc9716f4f3bccc.png

    4. 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

    5. Use the ?Test? button to check if the connection is established:

      9_5.png.0bfac2b89be0d839545f69e49571de57.png

      Now, create the simple flow to send messages to the queue:

      RequestQ is a reference name we use;

      RequestQueue is a queue name;

      10_3.png.e2966f2c010cd3f061be01979aa73dba.png

      Log in to the RMQ GUI and under the ?Connection? tab check whether the connection was established:

      11_5.png.e59c77df8ebeb0d4a04de80c1f635d61.png

      The newly created queue of RequestQueue should appear on the list for the ?new? virtual host:

      12_8.png.d2e4692d34f682586213cb9311c9e09d.png

      Queue overview:

      13_5.png.eb38bd8a5e3169b8ec69c351e969f262.png

      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:

      14_5.png.0b881031b853a751c1be62756d81abf8.png


    User Feedback

    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 account

    Sign in

    Already have an account? Sign in here.

    Sign In Now

×
×
  • Create New...