+ All Categories
Home > Documents > IBM MQ Series

IBM MQ Series

Date post: 13-Apr-2015
Category:
Upload: fayaz-syed
View: 60 times
Download: 5 times
Share this document with a friend
Description:
IBM MQ Series
15
IBM MQ Messaging with SIEBEL/UCM USING JMS Transport By Natarajan Subramanian
Transcript
Page 1: IBM MQ Series

IBM MQ Messaging with SIEBEL/UCM

USING JMS Transport

By

Natarajan Subramanian

Page 2: IBM MQ Series

Contents

1. Scope .............................................................................................................................................. 3

2. Solution Components .................................................................................................................... 3

3. Business Scenario .......................................................................................................................... 4

4. Initial Approach ............................................................................................................................. 4

4.1. Basics of IBM MQ .................................................................................................................. 4

4.2. Challenge Faced .................................................................................................................... 5

5. Alternate Approaches ................................................................................................................... 6

6. Modified Approach ....................................................................................................................... 7

6.1. Connectivity Modes .............................................................................................................. 7

7. Implementation steps for this blended approach: ..................................................................... 8

8. Ensuring Messages Published are reaching in IBM MQ ........................................................... 12

9. Conclusion .................................................................................................................................... 14

10. References ................................................................................................................................... 15

Page 3: IBM MQ Series

1. Scope As part of one of our engagements, in the scope of Customer Experience Management we are implementing Universal customer Master (UCM) with real time interfaces. This program is a marketing initiated and driven exercise, to get the holistic view of all interactions of every customer in all possible channels. The scope of the program is to implement the Universal Customer Master application with complete real time (In As-Is all interfaces are batch), with enhanced functionalities across several CRM instances – International and domestic sales, Partner Portal, Loyalty, Call center and Marketing. The scope includes cleansing of existing customer data and migration to UCM for the marketing and other application users to provide the clean and authentic customer data to reach out potential customers for sustaining and enhancing their business revenues. Informatica Identity Resolution (IIR) has been used for the customer matching and scoring processes. This is the first such kind of implementation using UCM in Oracle IDP.

2. Solution Components Oracle Siebel 8.1.1.5 and UCM 8.1.1.5 were used for this solution with IBM Websphere Processing Server (WPS) functioning as the ESB middleware. Hence the solution components were

1. Siebel 8.1.1.5– For all agent facing applications

2. UCM 8.1.1.5– For Customer related data

3. IIR 9.2– For Matching and scoring logics

4. SAP XI Data Cleanser

5. IBM MQ/ WPS 7.0– ESB for middleware to interface with all the applications

6. MCD – Master customer data to maintain all the historical details related to Sailings, Bookings etc.,

7. Web portal – For customers to manage online (Not going live, planned phased)

Page 4: IBM MQ Series

3. Business Scenario With the above solution components, ESB served as the central hub for message transformation between different systems. UCM is the central hub for all customer related information. Whenever a new customer is created from any of the front facing application, the request is routed to UCM through ESB, to create a new customer record and a new customer id is generated and published back to the source system. The same customer id along with all information is also published to other systems, in order to keep all systems synchronized in the real time. The customer publish was decided to be an asynchronous process (as it is not a concurrent) and IBM WPS is in place, to leverage the IBM MQ series Queuing for the publish message. Hence the publish flow triggers from UCM to other application to update the contact details in all applications.

4. Initial Approach With IBM WPS as integration system and all Siebel application as front facing, the UCM is meant for holding the complete customer data which will publish updates to all the other systems in the business systems along with the MCD data warehouse. All the interfaces are real time using web services between Siebel and UCM applications, except the customer create and update flow alone in the asynchronous publish mode. The publish process will use the Real Time Publish business service with the connection mode as middleware, instead of each target systems. With this mode, any create or update of any customer will be handed over to IBM MQ, and the WPS will publish for each and every systems.

4.1. Basics of IBM MQ Message Queuing is a method of application to application communication. Each participating application communicates in application specific data (messages), without calling each other like a remote procedural call. The use of queue removes the application to call themselves concurrently.

IBM MQ has a Message Queuing Interface (MQI), which interacts with the customer application. This MQI will talk to the Queue Manger which is authenticated by a Object authority Manger (OAM). The Message Channel Agent (MCA), is the one which moves the local message to the target queue manager using any of the channels – TCP/IP.

Page 5: IBM MQ Series

Fig : IBM MQ General Architechture

4.2. Challenge Faced We suggested having an IBM MQ server in the UCM Server box, but we were told to proceed with the IBM client in the UCM box as the licensing cost of IBM MQ server was high to have in each Siebel/UCM server boxes. Hence the IBM and UCM set up are done, in the IBM and the UCM environments respectively and in addition, we installed the IBM MQ client (Explorer) in the UCM server box, to listen to the UCM server and to communicate to the IBM MQ Server box.

We observed that the product provided business service in the Siebel/UCM will only talk to the MQ server that has to be available in the same Siebel/UCM server box. But installing MQ server in every Siebel box was expensive and client was not interested to pursue that route.

Page 6: IBM MQ Series

Fig : Initial Approach

After installing the IBM client in the Siebel server box, we were not getting any messages in the IBM MQ Server end, which confirmed it is mandatory to have the IBM MQ server to be installed in each Siebel/UCM server boxes.

Due to the huge licensing costs, that IBM server has to be placed in each Siebel server boxes, we were asked to look for alternate approaches.

5. Alternate Approaches At this point of time, we had only two approaches, apart from installing the IBM MQ servers in each server boxes.

1. Installing IBM MQ Server in any one of the Siebel server and using the Asynchronous Service Requests Business service to force our workflow to run only on that Siebel server.

2. Or to use the open source Java Messaging System to bridge from the Siebel side till the MQ Server side.

The first approach again incurred some licensing costs and foresees maintenance issues and hence we decided to go with the second approach.

Page 7: IBM MQ Series

6. Modified Approach In this approach the JMS Transport will bridge the transport between the Siebel/UCM Server to the IBM MQ Series to deliver the messages. This is a cross-technology approach, by using both JMS and IBM MQ for meeting our requirements.

6.1. Connectivity Modes There are two modes of connection from the JMS to IBM MQ,

1. The client mode connection

To connect to a queue manager in client mode, a WebSphere MQ classes for Java application can run on the same system on which the queue manager is running, or on a different system. In each case, WebSphere MQ classes for Java connects to the queue manager over TCP/IP.

2. The Binding Mode connection

In the bindings mode, WebSphere MQ classes for Java uses the Java Native Interface (JNI) to call directly into the existing queue manager API, rather than communicating through a network. In most environments, connecting in bindings mode provides better performance for WebSphere MQ classes for Java applications than connecting in client mode, by avoiding the cost of TCP/IP communication.

We preferred the second option – The binding mode connection.

Siebel Server Box

SiebelServer

JMSTransport

IBM MQ WPS Server

All IBM MQ class files and JNI Arementioned in classpath of JVMSubSys in Siebel Server

JNDI Lookup

WebSphere MQ classes

for Java

Fig : Modified Custom Approach

Page 8: IBM MQ Series

With this we can able to see the messages delivered in the MQ ports.

This has been confirmed by the rfiutil tool.

7. Implementation steps for this blended approach: 1. Go to Administration - Server Configuration > Enterprise > Profile Configuration view. 2. Query for "JVMSubSys" in the Subsystem Type column in the Profile configuration

applet. 3. Select one record and copy that record. (Ctrl + B) 4. Rename the Profile and Alias column as "JAVA"

Page 9: IBM MQ Series

5. In the below profile parameters, Java classpath, JVM DLL Name and JCM Options has to be specified as below

JVM Classpath - Following files should be placed with respective folders seperated by ";" . At the end a full stop has to be provided.

Siebel.jar with 638 entries.

SiebelJI_enu.jar with 25 entries.

jndi.jar with 123 entries.

jms.jar with 61 entries.

com.ibm.mqjms.jar with 1169 entries.

MQJMSLINK

fscontext.jar with 17 entries.

providerutil.jar with 58 entries.

com.ibm.mq.jmqi.jar with 1248 entries.

dhbcore.jar with 644 entries.

com.ibm.mq.jar with 139 entries.

. eg. Classpath - F:\app\Nats\Siebel.jar;F:\app\Nats\SiebelJI_enu.jar;F:\app\Nats\MQJMSLINK\jndi.jar;F:\app\Nats\MQJMSLINK\jms.jar;F:\app\Nats\MQJMSLINK\com.ibm.mqjms.jar;F:\app\Nats\MQJMSLINK;F:\app\Nats\MQJMSLINK\fscontext.jar;F:\app\Nats\MQJMSLINK\providerutil.jar;F:\app\Nats\MQJMSLINK\com.ibm.mq.jmqi.jar;F:\app\Nats\MQJMSLINK\dhbcore.jar;F:\app\Nats\MQJMSLINK\com.ibm.mq.jar;.

JVM DLL Name - The path of the file "jvm.dll" has to provided.

eg. F:\app\siebel\siebucmt\sia81x\siebsrvr\CLASSES\jre\bin\client\jvm.dll.

JVM Options - The log path has to provided for "jvm.log".

eg. "-Djms.log=F:\app\siebel\siebucmt\jms.log"

Page 10: IBM MQ Series

After providing all these, a server bounce is required.

This can be verified by doing a simulation using business service

1. Login to the server application

2. Go to Site map > Administration - Business Service > Simulator

3. In the top simulator Applet, select the Service name as "EAI JMS Transport" and method name as CheckClasspath.

4. Click the Run button.

5. If successful, in the output arguments applet at the bottom will have the values of the successful classpath.

The successful classpath file should typically look like,

<?xml version="1.0" encoding="UTF-8"?><?Siebel-Property-Set EscapeNames="true"?><PropertySet

>Input property set: &gt; Value =

&gt; Type =

&gt; SendPassword =

&gt; ConnectionPassword =

&gt; CommitTransaction = true

&gt; ReceiveUsername =

&gt; TopicUsername =

&gt; PreserveString = true

&gt; ConnectionUsername =

&gt; ConnectionFactory =

&gt; ReceivePassword =

&gt; TopicPassword =

&gt; SendUsername =

Page 11: IBM MQ Series

java.class.path = F:\app\Nats\Siebel.jar;F:\app\Nats\SiebelJI_enu.jar;F:\app\Nats\MQJMSLINK\jndi.jar;F:\app\Nats\MQJMSLINK\jms.jar;F:\app\Nats\MQJMSLINK\com.ibm.mqjms.jar;F:\app\Nats\MQJMSLINK;F:\app\Nats\MQJMSLINK\fscontext.jar;F:\app\Nats\MQJMSLINK\providerutil.jar;F:\app\Nats\MQJMSLINK\com.ibm.mq.jmqi.jar;F:\app\Nats\MQJMSLINK\dhbcore.jar;F:\app\Nats\MQJMSLINK\com.ibm.mq.jar;.

Found jar file F:\app\Nats\Siebel.jar with 638 entries.

Found jar file F:\app\Nats\SiebelJI_enu.jar with 25 entries.

Found jar file F:\app\Nats\MQJMSLINK\jndi.jar with 123 entries.

Found jar file F:\app\Nats\MQJMSLINK\jms.jar with 61 entries.

Found jar file F:\app\Nats\MQJMSLINK\com.ibm.mqjms.jar with 1169 entries.

Found directory F:\app\Nats\MQJMSLINK

NOTE: A jndi.properties file is present in F:\app\Nats\MQJMSLINK

Found jar file F:\app\Nats\MQJMSLINK\fscontext.jar with 17 entries.

Found jar file F:\app\Nats\MQJMSLINK\providerutil.jar with 58 entries.

Found jar file F:\app\Nats\MQJMSLINK\com.ibm.mq.jmqi.jar with 1248 entries.

Found jar file F:\app\Nats\MQJMSLINK\dhbcore.jar with 644 entries.

Found jar file F:\app\Nats\MQJMSLINK\com.ibm.mq.jar with 139 entries.

Found directory F:\app\siebel\siebucmt\sia81x\siebsrvr\BIN\.

SUCCESSFUL TEST

</PropertySet>

Page 12: IBM MQ Series

8. Ensuring Messages Published are reaching in IBM MQ

Messages received in the queue can be verified using RFH Util Tool This tool is shortly called as RFH for Rules and Formatting Header. This will read data from files and/or queues, write data to files and/or queues and display data in a variety of formats. The messages displayed can’t be edited.

The below snapshot shows the RFH util tool with no messages in queue.

Page 13: IBM MQ Series

After ensuring no messages in Queue, now we can test by pushing a message from the UCM application.

1. Login to UCM application

2. Go to Administration – Business Service >> Simulator view

3. Create a new simulation as shown below. Please note we are using the EAI JMS Transport for pushing our message to IBM Queue.

After creating this Business service simulation, when we run the simulator, it pushes the message to the IBM MQ queue using EAI JMS Transport, which can be verified in the RFH util tool, below.

Page 14: IBM MQ Series

9. Conclusion To sum up, the challenge faced with the compatibility of IBM MQ server and UCM application, has been overcome, by bridging up using the JMS transport. IBM JMS Extension, is the websphere MQ classes for JMS, provides more generic set of extension, to the JMS API, which are not specific to Websphere MQ as messaging system.

Apart from this, there are many advantages using this kind of mixed approach.

1. JMS is an industry standard API that can provide application portability and stability.

2. JMS is an integral part of any Java platform, enterprise edition.

3. JMS objects can be administered in a central repository and MQ classes can access and retrieve using JNDI (Java Naming and Directory Interface).

4. JMS skills can be reused.

5. Bridging application is easier to code using JMS.

6. Finally the licensing cost of IBM websphere server in every Siebel/UCM servers can be averted.

Page 15: IBM MQ Series

10. References Siebel Bookshelf 8.1.1 and 8.2

Oracle Support Pages

IBM Portals


Recommended