0% found this document useful (0 votes)
259 views

View 3

Uploaded by

sriniwas123
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
259 views

View 3

Uploaded by

sriniwas123
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 44

®

IBM Software Group

Enabling WebSphere MQ Traffic with


WebSphere DataPower - Use Case Scenarios

Chin Sahoo ([email protected])


DataPower SOA Appliances Support
May 18, 2010

WebSphere® Support Technical Exchange


IBM Software Group

Agenda

 MQ Traffic Patterns in DataPower


 MQ Message Processing Mode
 Use Case Scenarios
 MQ Routing in DataPower
 Trouble Shooting
 Useful Links
 Questions and Answers

WebSphere ® Support Technical Exchange 2 of 44


IBM Software Group

MQ Traffic Patterns in DataPower


 DataPower’s Multi-Protocol Gateway Service (MPGW ) is used
to handle these traffic patterns
 MQ <=> MQ (MQ in front & MQ in back)
 MQ with Units-of-W ork (UoW )
 MQ with SSL Channel
 MQ <=> HTTP(S) (MQ in front & HTTP(s) in back)
 HTTP(S) => MQ
 MQ => HTTP(S)
 MQ <=> JMS (MQ in front & JMS in back)
 MQ <=> TIBCO EMS (MQ in front & TIBCO in back)
 MQ <=> FTP(S) (MQ in front & FTP(S) in back)

WebSphere ® Support Technical Exchange 3 of 44


IBM Software Group

MQ Message Processing Mode


 Datagram traffic using MPGW
 Datagram with custom error handling
 Datagram with distribution list
 Datagram with transactionality
 Request/Reply traffic using MPGW
 Request/Reply with Dynamic Routing
 Request/Reply with Model Queue
 Request/Reply with transactionality

WebSphere ® Support Technical Exchange 4 of 44


IBM Software Group

Datagram Traffic using MPGW Service


Request Rule only, no Response Rule
May have Error Rule
Process Backend Errors is “off” under the advanced
tab of the Multi-Protocol Gateway (MPGW) Service
Request Type as “XML”, “SOAP”, “non-XML” or “pass-
thru”
Response Type as “pass-thru”
Request MQMD is not altered
Backside MQ URL only specifies the request queue

WebSphere ® Support Technical Exchange 5 of 44


IBM Software Group

Datagram with custom error processing


Request Rule and Response Rule
Must capture response code in response rule using
“dp:response-header('x-dp-response-code')” and use
“dp:reject” to invoke error rule if “response code” is
“2xxx”
“Process Backend Errors” is “on” under the advanced
tab of the MPGW
Must use “var://service/error-ignore = 1” in error rule to
handle ROLLBACK when units-of-work is enabled

WebSphere ® Support Technical Exchange 6 of 44


IBM Software Group

Datagram with distribution list


• Typical scenario when the same message is distributed to multiple
queues
• MQ Distribution Lists is an optimal way of fanning out messages
– Inject MQOD request header with multiple destinations
<MQOD>
<MQOR><ObjectName>Queue1</ObjectName></MQOR>
<MQOR><ObjectName>Queue2</ObjectName></MQOR>
<MQOR><ObjectName>Queue3</ObjectName></MQOR>
<MQOR><ObjectName>Queue4</ObjectName></MQOR>
</MQOD>
– And four separate calls become a single one. Performance will increase
significantly
– Inject MQOD headers for the backend MQ qmgr using DataPower’s
extension function <dp:set-request-header name=“’MQOD’”
value=“$mqodStr”/> in custom stylesheet or MPGW’s Header injection Tab

WebSphere ® Support Technical Exchange 7 of 44


IBM Software Group

Datagram with Transactionality (UoW)


On the front side of the MPGW service:
– Transactions are enabled when units-of-work
(UoW) is set to “1” on MQ QM object
– Both GET and PUT operations use the same
connection
– MQCOMIT performed only after successful PUT
– Front and backside use same Queue Manager
(qmgr) configured in the MQ QM object

WebSphere ® Support Technical Exchange 8 of 44


IBM Software Group

Datagram with UoW Continued..


On the backend MQ URL for the MPGW service:
– Transactions are enabled when MQ URL contains
“Transactional=true” parameter for Datagram traffic
– Transactions are enabled when MQ URL contains
“Sync=true;Transactional=true” parameters for Request/Reply
traffic
– MQCOMIT is performed immediately after PUT when MQ URL
contains “Sync=true” parameter
– Use Automatic Backout as “on” with Backout Threshold and
Backout Queue name in QM Object
– Set service variable “var://service/error-ignore” to “1” to handle
ROLLBACK in the error rule

WebSphere ® Support Technical Exchange 9 of 44


IBM Software Group

Request/Reply Traffic using MPGW


Request, Response and Error Rules
Must capture response code in response rule
using “dp:response-header('x-dp-response-code')”
and use “dp:reject” to invoke error rule if “response
code” is “2xxx”
“Process Backend Errors” should be “on” under
the advanced tab of the MPGW
Must use “var://service/error-ignore = 1” in error
rule to handle ROLLBACK if UoW is enabled

WebSphere ® Support Technical Exchange 10 of 44


IBM Software Group

Request/Reply Traffic with Dynamic Routing


Scenario 1: If MQMD.ReplyToQ value exists and
MQMD.ReplyToQMgr’s value is same as the qmgr
name configured in the MQ QM object
– Set DataPower’s internal header “ReplyToQ” to an empty string
using extension function <dp:set-response-header
name=“’ReplyToQ’” value=“’’”/> using stylesheet in both request
and response rules
– Save MQMD.ReplyToQ to a context variable in request rule
– Save MQMD.ReplyToQMgr to a context variable in request rule
– Inject MQOD headers with these values in the response rule for
the front side client
– Make sure the local qmgr is configured to handle message routing
to remote qmgr based on MQOD

WebSphere ® Support Technical Exchange 11 of 44


IBM Software Group

Request/Reply Traffic with Dynamic Routing Continued

Scenario 2: If MQMD.ReplyToQ value exists and


MQMD.ReplyToQMgr’s value is different than the qmgr
name configured in the MQ QM object
– Set DataPower’s internal header “ReplyToQ” to an empty string using
extension function <dp:set-response-header name=“’ReplyToQ’” value=“’’”/>
using stylesheet in both request and response rules
– Set DataPower’s internal header “ReplyToQM” to an empty string using
extension function <dp:set-response-header name=“’ReplyToQM’” value=“’’”/
> using stylesheet in both request and response rules
– Save MQMD.ReplyToQ to a context variable in request rule
– Save MQMD.ReplyToQMgr to a context variable in request rule
– Inject MQOD headers with these values in the response rule for the front
side client
– Make sure the local qmgr is configured to handle message routing to
remote qmgr based on MQOD

WebSphere ® Support Technical Exchange 12 of 44


IBM Software Group

Request/Reply Traffic with Model Queue

 A model queue defines a set of queue attributes


that are used as a template for creating a dynamic
queue.
 Dynamic queues are created by the queue
manager when an application issues an MQOPEN
request specifying a queue name that is the name
of a model queue.
 The dynamic queue that is created in this way is a
local queue whose attributes are taken from the
model queue definition.

WebSphere ® Support Technical Exchange 13 of 44


IBM Software Group

Request/Reply Traffic with Model Queue Continued

 The Backend MQ URL contains “Model=true”


parameter with model queue name as part of the
“ReplyQueue” tag

 Example of MQ URL with “Model=true”


 dpmq://MQ-AIX/?RequestQueue=Q1;ReplyQueue=MQ1;Model=true
 Note: MQ1 is the name of the model queue defined
in qmgr

WebSphere ® Support Technical Exchange 14 of 44


IBM Software Group

Message delivery modes


DataPower supports 1-phase COMMIT
– The same MQ qmgr must be used in MQ front side
handlers and MQ URL openers
– All processing actions must be synchronous
– The same connection is shared across all MQ
operations within a transaction
– Guaranteed “once-and-only-once” message delivery
In all other cases it is “at-least-once” message
delivery, i.e. no message will ever be lost

WebSphere ® Support Technical Exchange 15 of 44


IBM Software Group

Message delivery modes Continued


Scenario 1: When same MQ qmgr is used in both front
side handler and back side MQ URL opener
– Message from Input Queue (GETQ) will be resent if
input connection fails. No duplicates in Output Queue
(PUTQ)
Scenario 2: When two separate MQ qmgrs are used in
front side handler and back side MQ URL opener
– Message from Input Queue (GETQ) will be resent if
input connection fails. Duplicate message may
appear in Output Queue (PUTQ). No message loss.

WebSphere ® Support Technical Exchange 16 of 44


IBM Software Group

Use Case Scenarios


 Use Case 1:
 Traffic pattern is MQ-to-MQRFH2
 MPGW service with MQ as the front side handler,
creates MQRFH2 message and delivers the
message as datagram to the backend MQ qmgr
 Units-of-work (UoW)
 Same qmgr for both front side and back side

WebSphere ® Support Technical Exchange 17 of 44


IBM Software Group

Use Case-1 Configuration – QM Object

WebSphere ® Support Technical Exchange 18 of 44


IBM Software Group

Use Case-1: MQ Front Side Handler

WebSphere ® Support Technical Exchange 19 of 44


IBM Software Group

Use case-1: Example MQMD.Format

WebSphere ® Support Technical Exchange 20 of 44


IBM Software Group

Use Case-1: Example MQRFH2 Header

WebSphere ® Support Technical Exchange 21 of 44


IBM Software Group

Use Case-2: MQRFH2-to-MQ


 MPGW service to process message
 Front side handler receives MQRFH2 message
 DataPower removes the MQRFH2 headers from
the front side
 Suppress MQRFH2 header for the backend
 Injects MQMD.Format header for the backend
 Message is created for the backend MQ
 UoW in the MQ QM Object
 Same qmgr for both front and back sides
 SSL Channel for the QM Object

WebSphere ® Support Technical Exchange 22 of 44


IBM Software Group

Use Case-2: Excludes headers from MQ FSH

WebSphere ® Support Technical Exchange 23 of 44


IBM Software Group

Use Case-2: Example Header Injection and Suppression

WebSphere ® Support Technical Exchange 24 of 44


IBM Software Group

Use Case 2: Configuring QM Object with SSL

 Use of SSL Proxy Profile


Forward Crypto Profile instead of SSL Key Repository
Consistent approach with HTTPS configuration
No additional tooling to create SSL Key Repository
Ciphers MUST match MQ Server Queue Manager
Careful which Cipher is used if you have a choice

WebSphere ® Support Technical Exchange 25 of 44


IBM Software Group

Use Case 2: Configuring QM with SSL Continued..

WebSphere ® Support Technical Exchange 26 of 44


IBM Software Group

Use Case 2: SSL Identity and Validation Credentials

WebSphere ® Support Technical Exchange 27 of 44


IBM Software Group

MQ Routing: Complete MQMD Header Example

WebSphere ® Support Technical Exchange 28 of 44


IBM Software Group

MQ Routing: MQOD header Injection Example


MQOD headers used for Distributed MQ Queue
Manager (qmgr)
<xsl:variable name="newMQODStr">
<MQOD>
<Version>2</Version>
<ObjectName>CLIENT.REPLY.QUEUE</ObjectName>
<ObjectQMgrName>CLIENTQM</ObjectQMgrName >
</MQOD>
</xsl:variable>
<xsl:variable name="mqodStr">
<dp:serialize select="$newMQODStr"
omit-xml-decl="yes"/>
</xsl:variable>
<dp:set-request-header name="'MQOD'“
value="$mqodStr"/>

WebSphere ® Support Technical Exchange 29 of 44


IBM Software Group

MQ Routing: MQOD header Injection Example Continued

MQOD headers used for Cluster MQ Queue


Manager (qmgr)
<xsl:variable name=“clusMQODStr">
<MQOD>
<Version>2</Version>
<ObjectName>CLIENT.REPLY.QUEUE</ObjectName>
</MQOD>
</xsl:variable>
<xsl:variable name=“clus-mqodStr2">
<dp:serialize select="$clusMQODStr"
omit-xml-decl="yes"/>
</xsl:variable>
<dp:set-request-header name="'MQOD'“
value="$clus-mqodStr2"/>
Note: The qmgr is not included in MQOD for cluster MQ
environment

WebSphere ® Support Technical Exchange 30 of 44


IBM Software Group

MQ Routing: Use of Static and Dynamic URL

• Static MQ URL opener


– Using MQ Queue Manager configuration object
– URL uses dpmq:// prefix, like dpmq://QM?RequestQueue=... ,
where QM is the name of MQ QM configuration object
• Dynamic MQ URL opener
– Doesn't require statically defined MQ Queue Manager object
– URL is using mq:// prefix and has the following format
mq://host:port?QueueManager=<QM_NAME>....,
where QM_NAME is the name of MQ Queue Manager running on a
specific host and listening on a specific port

WebSphere ® Support Technical Exchange 31 of 44


IBM Software Group

Troubleshooting – DataPower Side


 Enable log level to “debug” using trouble shooting
icon on the control panel
 Enable probe for the particular MPGW service
 Run few transactions and observe the system log
 Look for MQ Reason Code(s) and errors in the
system log
 Understand the MQ Reason Code(s) using MQ
supportpac “ma0k” available at
http://www-01.ibm.com/support/docview.wss?uid=swg24000652

MQ supportpac Link:
http://www-01.ibm.com/support/docview.wss?rs=977&uid=swg27007205

WebSphere ® Support Technical Exchange 32 of 44


IBM Software Group

Troubleshooting – MQ Server Side


 MQ function
 Access via: su – mqm
 Display queue status
 Processes – how many connections on get/put
 Queue depth
 Uncommitted messages present?
 Queue Handles
• Who has open connections?
• Are those connections input or output?

WebSphere ® Support Technical Exchange 33 of 44


IBM Software Group

Summary

 Traffic Patterns such as MQ-to-MQ, MQ-to-HTTP,


MQ-to-JMS, MQ-to-TIBCO and MQ-to-FTP were
discussed
 MQ Message Processing Modes (Datagram,
Request/Reply and its variation with
transactionality were presented
 Configurations involving use case scenarios for
MQ-to-MQ, MQ-to-MQRFH2 and MQRFH2-to-MQ
were discussed

WebSphere ® Support Technical Exchange 34 of 44


IBM Software Group

Summary Continued..
 MQ Routing based on MQMD and MQOD
 MQ Routing based on static and dynamic URLs
 MQ SSL Channel configuration using SSL proxy
profile
 Error Handling – Capturing “response code” in
response rule with “x-dp-response-code”

WebSphere ® Support Technical Exchange 35 of 44


IBM Software Group

Summary Continued..
 Trouble Shooting Techniques
DataPower side trouble shooting
MQ server side “runmqsc” to check the Queue Status
for “IPPROCS”
Check Queue Status with Handles
• dis qs(qname) type(handles)
• dis qs(qname) type(handle) conname input output

WebSphere ® Support Technical Exchange 36 of 44


IBM Software Group

References
 IBM® WebSphere DataPower SOA Appliances
webGUI Guide

 IBM WebSphere DataPower SOA Appliances


Reference Guide

 MQ Series Application Programming Reference

 IBM WebSphere DataPower XSLT extension


elements, extension functions, and variables Guide

WebSphere ® Support Technical Exchange 37 of 44


IBM Software Group

Additional WebSphere Product Resources


 Learn about upcoming WebSphere Support Technical Exchange webcasts, and access
previously recorded presentations at:
http://www.ibm.com/software/websphere/support/supp_tech.html

 Discover the latest trends in WebSphere Technology and implementation, participate in


technically-focused briefings, webcasts and podcasts at:
http://www.ibm.com/developerworks/websphere/community/
 Join the Global WebSphere User Group Community:
http://www.websphere.org
 Access key product show-me demos and tutorials by visiting IBM Education Assistant:
http://www.ibm.com/software/info/education/assistant

 View a webcast replay with step-by-step instructions for using the Service Request (SR)
tool for submitting problems electronically:
http://www.ibm.com/software/websphere/support/d2w.html
 Sign up to receive weekly technical My Notifications emails:
http://www.ibm.com/software/support/einfo.html

WebSphere ® Support Technical Exchange 38 of 44


IBM Software Group

We Want to Hear From You!


Tell us about what you want to learn

Suggestions for future topics


Improvements and comments about our webcasts
We want to hear everything you have to say!

Please send your suggestions and comments to:


[email protected]

WebSphere ® Support Technical Exchange 39 of 44


IBM Software Group

Questions and Answers

WebSphere ® Support Technical Exchange 40 of 44


IBM Software Group

BACKUP CHARTS

WebSphere ® Support Technical Exchange 41 of 44


IBM Software Group

Troubleshooting – “runmqsc” examples

WebSphere ® Support Technical Exchange 42 of 44


IBM Software Group

Troubleshooting – “runmqsc” examples

WebSphere ® Support Technical Exchange 43 of 44


IBM Software Group

Troubleshooting – “runmqsc” examples

WebSphere ® Support Technical Exchange 44 of 44

You might also like