SlideShare a Scribd company logo
1 of 19
Download to read offline
© 2014 IBM Corporation
Building a Scalable &
Continuously Available
IBM MQ Infrastructure
AMC-1882
Please Note
IBM’s statements regarding its plans, directions, and intent are subject to change
or withdrawal without notice at IBM’s sole discretion.
Information regarding potential future products is intended to outline our general
product direction and it should not be relied on in making a purchasing decision.
The information mentioned regarding potential future products is not a
commitment, promise, or legal obligation to deliver any material, code or
functionality. Information about potential future products may not be incorporated
into any contract. The development, release, and timing of any future features or
functionality described for our products remains at our sole discretion.
Performance is based on measurements and projections using standard IBM
benchmarks in a controlled environment. The actual throughput or performance
that any user will experience will vary depending upon many factors, including
considerations such as the amount of multiprogramming in the user’s job stream,
the I/O configuration, the storage configuration, and the workload processed.
Therefore, no assurance can be given that an individual user will achieve results
similar to those stated here.
Introduction
Article series describing one possible MQ topology as a pattern
• ibm.co/1cz0MrL
Why?
• Make it easier to include MQ in a project
• Help meet ‘five nines’ or ‘continuous’ availability via a standard approach
• Help MQ admin teams do more with less through consistency
• Provide config and code samples to get started quickly in a DevOps culture
The approach is client/server, why?
• Applications increasing have a large number of instances
• Application instances come and go
• MQ should be seen as critical infrastructure, similar to a Database
• Provisioning and scaling MQ separately from the app gives flexibility
How many ‘hubs’ of MQ could you have?
• In general continue to provision MQ on a per-project basis – just like a DB
• Some sharing/multi-tenancy is likely based on risk assessment – just like a DB
MQ Cluster
Workload Balancing
MQ Cluster
Workload Balancing
Overview – architecture view
Every sender/requester uses two connections
Every receiver/service has two listeners
Make each Queue Manager HA to recover persistent messages
Simple to interoperate with co-located Queue Managers
Simple to interoperate with z/OS Queue Sharing Groups
Pattern discussed in detail here: http://ow.ly/vrUUV
App1 QM1App1 QM1
App1
QM2
App1
QM2
App2 QM1App2 QM1
Shared QM1Shared QM1
Shared QM2Shared QM2
App1 Inst1App1 Inst1
App1 Inst2App1 Inst2
App1 Inst3App1 Inst3
App1 Inst4App1 Inst4
App2 Inst1App2 Inst1
App2 Inst2App2 Inst2
App2 Inst3App2 Inst3
App2 Inst4App2 Inst4
App2 QM2App2 QM2
App2 QM3App2 QM3
App2 QM4App2 QM4
App1 Inst1App1 Inst1
App1 Inst2App1 Inst2
App1 Inst3App1 Inst3
App1 Inst4App1 Inst4
App2 Inst1App2 Inst1
App2 Inst2App2 Inst2
Overview – infrastructure view
Principal design philosophy is active/active
• Continuous availability of the service
Minimum number of queue managers is 2
• Sending and receiving gateway roles can be fulfilled by the same qmgr
HA failover is optional
• If you have persistent messages that you need to recover quickly after a failure
MQ1
Standby
MQ2
Standby
Machine 1 Machine 2
HA failover
HA failover
MQ2
(Sending &
Receiving GW)
MQ1
(Sending &
Receiving GW)
Highly available
network-attached
file-system
MQ Hub
Senders Receivers
Overview – 2 is the magic number
Every sender sends to two queue managers
• No single point of failure for sending messages
• Not too many places to look for messages
Every receiver listens to two queue managers concurrently
• Every queue manager has two app instances listening for messages
• Every app instance listens to two queue managers
• Note: cannot have more receiving gateways than receiving app instances
No single point of failure
• Any single component can fail, and all other components continue processing
MQCluster
Receiver 1
Receiver 2
Receiver 3
Receiver 4
Sender 1
Sender 2
Sender 3
Sender 4
Sender 5
Sender 6
Sender 7
Sender 8
MQ
Gateway 1
MQ
Gateway 2
MQ
Gateway 3
MQ
Gateway 4
MQ
Gateway 5
MQ
Gateway 1
MQ
Gateway 2
MQ
Gateway 3
MQ
Gateway 4
MQ
Gateway 5
Sending messages
Each app instance sends to two different queue managers
Need a workload management strategy
• Prioritised
• Random
• Round robin – my personal preference
Biggest practical concern for customers:
How do I create/change my app code to connect
to two different remote queue managers
Sending
application
Connection
logic
(CCDT or
custom)
Sending
Gateway 1
Sending
Gateway 2
MQ connection 1
MQ connection 2
MQCluster
Sending messages – choices for multi-QM client attachment
CONNAME list CCDT (multi-QMGR) Load balancer Code stub
Scale of code change
required for existing
apps that connect to a
single QM
+ive
MQCONN("QMNAME") to MQCONN("*QMNAME")
QMName might be in JNDI config for Java EE apps.
Otherwise requires a one character code-change.
-ive
Replace existing JMS/MQI
connection logic with code
stub.
Support for different
WLM strategies
-ive
Prioritized only
=
Prioritized + Random
+ive
Any, including per-
connect round-robin
+ive
Any, including per-
message round-robin.
Performance
overhead while
primary QM is down
-ive
Always tries first in
list
+ive
Remembers last good
+ive
Port monitoring
avoids bad QMs
+ive
Can remember last good,
and retry intelligently
XA Transaction
Support
-ive
The transaction manager needs to store recovery information that
reconnects to the same QM resource. An MQCONN that resolves to
different QMs generally invalidates this. e.g. in Java EE, a single
Connection Factory should resolve to a single QM when using XA.
+ive
Code stub can meet the
XA transaction manager’s
requirements. e.g.
multiple Connection
Factories.
Connection
rebalancing on
failback.
e.g. when a QM
restarts after a failure
or planned outage,
how long till apps
use it again
-ive
Connection pooling in Java EE will hold onto connections indefinitely,
unless connections are configured with an aged timeout. Using an aged
timeout might drive exceptions in some cases. An aged timeout also
introduces a performance overhead during normal operation.
Conversation sharing might need to be disabled (SHARCNV=1) with an
aged timeout to ensure reconnects always establish a new socket.
The ‘remembers last good’ CCDT behaviour might also delay failback.
+ive
Code stub can handle
failback flexibly, with
little/no performance
overhead.
Admin flexibility to
hide infrastructure
changes from apps
-ive
DNS only
=
DNS and/or shared file-
system / CCDT file push
+ive
Dynamic Virtual IP
address (VIP)
=
DNS or single-QMGR
CCDT entries
More detail on MQDev here: http://ibm.co/MM8rMl
Receiving messages
The application needs two active listeners
• Random/prioritised attachment can lead to stranded messages
• AMQSCLM is an alternative - discussed in AMC-1883
For Java EE this means two MDB endpoints
• EJB 2.1 style deployment descriptors
– Add a second endpoint to the XML
• EJB 3.0 style annotations
– Create a code hierarchy
EJB 2.1 & 3.0 samples on github:
https://github.com/ibm-messaging/mq-wlm-client
Receiving
application
Active
Active
MQ Listener 1
MQ Listener 2
MQCluster
Receiving
Gateway 1
Receiving
Gateway 2
Synchronous request/response
Response 1
Requester
application
Connection
logic
(CCDT or
custom)
MQ 1
MQ 2
MQ connection 1
MQ connection 2
MQCluster
Request 1
Response 2
Request 2
Use same MQ connection to receive the response
• e.g. the same JMS Session
MQ fills in the MQMD.ReplyToQMgr on send
• Back-end app must honour this when sending the response
Synchronous request/response – advanced case
A clustered reply queue for synchronous request/response
• Lets replies take a different route back from requests
• Only adds resilience for highly parallel nonpersistent request/reply, where requests
build up on back-end threads in business logic rather than in MQ
Requires correlation logic to pass responses back to waiting threads
This is not the same as two-way asynchronous messaging
Code samples: https://github.com/ibm-messaging/mq-wlm-client
Asynchronous
Receiver
Two-way asynchronous messaging
The optimal use of messaging is fully asynchronous
Requests are sent “fire & forget”, as are responses
• Critical requests are sent as persistent within a transaction that updates a DB
• Transactional state update + persistent send = exactly once delivery
Responses are handled by any app instance at any time
• No thread is left ‘hung’ in the requesting application
• If responses need to be correlated with requests, then a state store is used
– A Database – DB2 etc.
– An elastic cache – WebSphere eXtreme Scale
Must be designed into the application
• Can revolutionize responsiveness
• Truly decouples applications
Receiving
application
Active
Active
MQ Listener 1
MQ Listener 2
MQCluster
Receiving
Gateway 1
Receiving
Gateway 2
Fire &
Forget
Requester
CCDT
or custom
Sending
Gateway 1
Sending
Gateway 2
MQ connection 1
MQ connection 2
MQ Listener 1
MQ Listener 2
50% requests
50% requests
50% responses
50% responses
Publish/subscribe messaging
MQ gives the same QoS for pub/sub as for P2P
• Fan out messages one-to-many
• WLM across multiple subscriber instances
Achieved by bridging durable subscriptions to cluster queues
• Define subscriptions on queue managers where publishers
connect
Sub1 Inst1
Sub1 Inst2Pub Inst1
Pub Inst2
QM1
QM2
QM3
QM4
Pub/SubFan-Out
+MQClusterWLM
Sub2 Inst1
Sub2 Inst2
QM3
QM4
Limitations for message ordering
No active/active solution is provided here for ordered messages
• MQ only assures order when there is one path from
producing thread to consuming thread
The simplest solution, and as far as this presentation goes
• Allocate individual queue managers with HA Failover for ordered messages
MQ
Gateway 1
MQ
Gateway 2
MQ
Gateway 1
MQ
Gateway 2
MQ
Gateway N1
MQ
Gateway N2
MQ
Gateway N1
MQ
Gateway N2
Receiver 1
Receiver 2
Receiver 3
Receiver 4
Receiver N1
Receiver N2
Receiver N3
Receiver N4
Sender 1
Sender 2
Sender 3
Sender 4
Sender N1
Sender N2
Sender N3
Sender N4
MQClusterWorkloadManagement
..
.
..
.
..
.
..
.
Sender
Sending
gateway
Receiving
gateway
Receiver
Can be the same queue manager.
Might be in different hubs.
Including IBM Integration Bus
The architecture fits IBM Integration Bus
• Option 1: Add it as a separate tier
• Option 2: Compress everything into a single active/active IIB tier
For more on IIB architectures, try the following link (plug):
ibm.co/1a2Y2os
MQ
GW1
MQ
GW2
Receiver 1
Receiver 2
Receiver 3
Receiver 4
Sender 1
Sender 2
Sender 3
Sender 4
Sender
Sending
gateway
Receiving
gateway
Receiver
MQ
GW1
MQ
GW2
Integration
Node 1
Integration
Node 2
Routing
& filtering
MQCluster
MQCluster
Can be same the queue manager
Questions?
We Value Your Feedback
Don’t forget to submit your Impact session and speaker
feedback! Your feedback is very important to us – we use it to
continually improve the conference.
Use the Conference Mobile App or the online Agenda Builder to
quickly submit your survey
• Navigate to “Surveys” to see a view of surveys for sessions
you’ve attended
17
Thank You
Legal Disclaimer
• © IBM Corporation 2014. All Rights Reserved.
• The information contained in this publication is provided for informational purposes only. While efforts were made to verify the completeness and accuracy of the information contained
in this publication, it is provided AS IS without warranty of any kind, express or implied. In addition, this information is based on IBM’s current product plans and strategy, which are
subject to change by IBM without notice. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, this publication or any other materials. Nothing
contained in this publication is intended to, nor shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and
conditions of the applicable license agreement governing the use of IBM software.
• References in this presentation to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates. Product release dates and/or
capabilities referenced in this presentation may change at any time at IBM’s sole discretion based on market opportunities or other factors, and are not intended to be a commitment to
future product or feature availability in any way. Nothing contained in these materials is intended to, nor shall have the effect of, stating or implying that any activities undertaken by you
will result in any specific sales, revenue growth or other results.
• If the text contains performance statistics or references to benchmarks, insert the following language; otherwise delete:
Performance is based on measurements and projections using standard IBM benchmarks in a controlled environment. The actual throughput or performance that any user will
experience will vary depending upon many factors, including considerations such as the amount of multiprogramming in the user's job stream, the I/O configuration, the storage
configuration, and the workload processed. Therefore, no assurance can be given that an individual user will achieve results similar to those stated here.
• If the text includes any customer examples, please confirm we have prior written approval from such customer and insert the following language; otherwise delete:
All customer examples described are presented as illustrations of how those customers have used IBM products and the results they may have achieved. Actual environmental costs
and performance characteristics may vary by customer.
• Please review text for proper trademark attribution of IBM products. At first use, each product name must be the full name and include appropriate trademark symbols (e.g., IBM
Lotus® Sametime® Unyte™). Subsequent references can drop “IBM” but should include the proper branding (e.g., Lotus Sametime Gateway, or WebSphere Application Server).
Please refer to http://www.ibm.com/legal/copytrade.shtml for guidance on which trademarks require the ® or ™ symbol. Do not use abbreviations for IBM product names in your
presentation. All product names must be used as adjectives rather than nouns. Please list all of the trademarks that you use in your presentation as follows; delete any not included in
your presentation. IBM, the IBM logo, Lotus, Lotus Notes, Notes, Domino, Quickr, Sametime, WebSphere, UC2, PartnerWorld and Lotusphere are trademarks of International
Business Machines Corporation in the United States, other countries, or both. Unyte is a trademark of WebDialogs, Inc., in the United States, other countries, or both.
• If you reference Adobe® in the text, please mark the first use and include the following; otherwise delete:
Adobe, the Adobe logo, PostScript, and the PostScript logo are either registered trademarks or trademarks of Adobe Systems Incorporated in the United States, and/or other countries.
• If you reference Java™ in the text, please mark the first use and include the following; otherwise delete:
Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.
• If you reference Microsoft® and/or Windows® in the text, please mark the first use and include the following, as applicable; otherwise delete:
Microsoft and Windows are trademarks of Microsoft Corporation in the United States, other countries, or both.
• If you reference Intel® and/or any of the following Intel products in the text, please mark the first use and include those that you use as follows; otherwise delete:
Intel, Intel Centrino, Celeron, Intel Xeon, Intel SpeedStep, Itanium, and Pentium are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and
other countries.
• If you reference UNIX® in the text, please mark the first use and include the following; otherwise delete:
UNIX is a registered trademark of The Open Group in the United States and other countries.
• If you reference Linux® in your presentation, please mark the first use and include the following; otherwise delete:
Linux is a registered trademark of Linus Torvalds in the United States, other countries, or both. Other company, product, or service names may be trademarks or service marks of
others.
• If the text/graphics include screenshots, no actual IBM employee names may be used (even your own), if your screenshots include fictitious company names (e.g., Renovations, Zeta
Bank, Acme) please update and insert the following; otherwise delete: All references to [insert fictitious company name] refer to a fictitious company and are used for illustration
purposes only.

More Related Content

What's hot

IBM Integration Bus & WebSphere MQ - High Availability & Disaster Recovery
IBM Integration Bus & WebSphere MQ - High Availability & Disaster RecoveryIBM Integration Bus & WebSphere MQ - High Availability & Disaster Recovery
IBM Integration Bus & WebSphere MQ - High Availability & Disaster RecoveryRob Convery
 
IBM Integration Bus High Availability Overview
IBM Integration Bus High Availability OverviewIBM Integration Bus High Availability Overview
IBM Integration Bus High Availability OverviewPeter Broadhurst
 
Expanding your options with the MQ Appliance
Expanding your options with the MQ ApplianceExpanding your options with the MQ Appliance
Expanding your options with the MQ ApplianceAnthony Beardsmore
 
Understanding mq deployment choices and use cases
Understanding mq deployment choices and use casesUnderstanding mq deployment choices and use cases
Understanding mq deployment choices and use casesLeif Davidsen
 
IBM WebSphere MQ: Managing Workloads, Scaling and Availability with MQ Clusters
IBM WebSphere MQ: Managing Workloads, Scaling and Availability with MQ ClustersIBM WebSphere MQ: Managing Workloads, Scaling and Availability with MQ Clusters
IBM WebSphere MQ: Managing Workloads, Scaling and Availability with MQ ClustersDavid Ware
 
Hhm 3474 mq messaging technologies and support for high availability and acti...
Hhm 3474 mq messaging technologies and support for high availability and acti...Hhm 3474 mq messaging technologies and support for high availability and acti...
Hhm 3474 mq messaging technologies and support for high availability and acti...Pete Siddall
 
IBM MQ - better application performance
IBM MQ - better application performanceIBM MQ - better application performance
IBM MQ - better application performanceMarkTaylorIBM
 
InterConnect 2016: What's new in IBM MQ
InterConnect 2016: What's new in IBM MQInterConnect 2016: What's new in IBM MQ
InterConnect 2016: What's new in IBM MQDavid Ware
 
Hhm 3479 mq clustering and shared queues for high availability
Hhm 3479 mq clustering and shared queues for high availabilityHhm 3479 mq clustering and shared queues for high availability
Hhm 3479 mq clustering and shared queues for high availabilityPete Siddall
 
IBM MQ v8 and JMS 2.0
IBM MQ v8 and JMS 2.0IBM MQ v8 and JMS 2.0
IBM MQ v8 and JMS 2.0Matthew White
 
MQ Appliance - Intro and 8.0.0.5 updates
MQ Appliance - Intro and 8.0.0.5 updatesMQ Appliance - Intro and 8.0.0.5 updates
MQ Appliance - Intro and 8.0.0.5 updatesAnthony Beardsmore
 
IBM MQ - Monitoring and Managing Hybrid Messaging Environments
IBM MQ - Monitoring and Managing Hybrid Messaging EnvironmentsIBM MQ - Monitoring and Managing Hybrid Messaging Environments
IBM MQ - Monitoring and Managing Hybrid Messaging EnvironmentsMarkTaylorIBM
 
Expanding your options with the IBM MQ Appliance - IBM InterConnect 2016
Expanding your options with the IBM MQ Appliance - IBM InterConnect 2016Expanding your options with the IBM MQ Appliance - IBM InterConnect 2016
Expanding your options with the IBM MQ Appliance - IBM InterConnect 2016Leif Davidsen
 
HHM-3540: The IBM MQ Light API: From Developer Laptop to Enterprise Data Cen...
 HHM-3540: The IBM MQ Light API: From Developer Laptop to Enterprise Data Cen... HHM-3540: The IBM MQ Light API: From Developer Laptop to Enterprise Data Cen...
HHM-3540: The IBM MQ Light API: From Developer Laptop to Enterprise Data Cen...Matt Leming
 
IBM MQ Appliance - Administration simplified
IBM MQ Appliance - Administration simplifiedIBM MQ Appliance - Administration simplified
IBM MQ Appliance - Administration simplifiedAnthony Beardsmore
 
IBM MQ High Availabillity and Disaster Recovery (2017 version)
IBM MQ High Availabillity and Disaster Recovery (2017 version)IBM MQ High Availabillity and Disaster Recovery (2017 version)
IBM MQ High Availabillity and Disaster Recovery (2017 version)MarkTaylorIBM
 
MQ Security Overview
MQ Security OverviewMQ Security Overview
MQ Security OverviewMarkTaylorIBM
 
InterConnect 2016: IBM MQ self-service and as-a-service
InterConnect 2016: IBM MQ self-service and as-a-serviceInterConnect 2016: IBM MQ self-service and as-a-service
InterConnect 2016: IBM MQ self-service and as-a-serviceDavid Ware
 
3429 How to transform your messaging environment to a secure messaging envi...
3429   How to transform your messaging environment to a secure messaging envi...3429   How to transform your messaging environment to a secure messaging envi...
3429 How to transform your messaging environment to a secure messaging envi...Robert Parker
 

What's hot (20)

IBM Integration Bus & WebSphere MQ - High Availability & Disaster Recovery
IBM Integration Bus & WebSphere MQ - High Availability & Disaster RecoveryIBM Integration Bus & WebSphere MQ - High Availability & Disaster Recovery
IBM Integration Bus & WebSphere MQ - High Availability & Disaster Recovery
 
IBM Integration Bus High Availability Overview
IBM Integration Bus High Availability OverviewIBM Integration Bus High Availability Overview
IBM Integration Bus High Availability Overview
 
Expanding your options with the MQ Appliance
Expanding your options with the MQ ApplianceExpanding your options with the MQ Appliance
Expanding your options with the MQ Appliance
 
Understanding mq deployment choices and use cases
Understanding mq deployment choices and use casesUnderstanding mq deployment choices and use cases
Understanding mq deployment choices and use cases
 
IBM WebSphere MQ: Managing Workloads, Scaling and Availability with MQ Clusters
IBM WebSphere MQ: Managing Workloads, Scaling and Availability with MQ ClustersIBM WebSphere MQ: Managing Workloads, Scaling and Availability with MQ Clusters
IBM WebSphere MQ: Managing Workloads, Scaling and Availability with MQ Clusters
 
Hhm 3474 mq messaging technologies and support for high availability and acti...
Hhm 3474 mq messaging technologies and support for high availability and acti...Hhm 3474 mq messaging technologies and support for high availability and acti...
Hhm 3474 mq messaging technologies and support for high availability and acti...
 
IBM MQ - better application performance
IBM MQ - better application performanceIBM MQ - better application performance
IBM MQ - better application performance
 
InterConnect 2016: What's new in IBM MQ
InterConnect 2016: What's new in IBM MQInterConnect 2016: What's new in IBM MQ
InterConnect 2016: What's new in IBM MQ
 
Hhm 3479 mq clustering and shared queues for high availability
Hhm 3479 mq clustering and shared queues for high availabilityHhm 3479 mq clustering and shared queues for high availability
Hhm 3479 mq clustering and shared queues for high availability
 
IBM MQ v8 and JMS 2.0
IBM MQ v8 and JMS 2.0IBM MQ v8 and JMS 2.0
IBM MQ v8 and JMS 2.0
 
MQ Appliance - Intro and 8.0.0.5 updates
MQ Appliance - Intro and 8.0.0.5 updatesMQ Appliance - Intro and 8.0.0.5 updates
MQ Appliance - Intro and 8.0.0.5 updates
 
IBM MQ - Monitoring and Managing Hybrid Messaging Environments
IBM MQ - Monitoring and Managing Hybrid Messaging EnvironmentsIBM MQ - Monitoring and Managing Hybrid Messaging Environments
IBM MQ - Monitoring and Managing Hybrid Messaging Environments
 
Expanding your options with the IBM MQ Appliance - IBM InterConnect 2016
Expanding your options with the IBM MQ Appliance - IBM InterConnect 2016Expanding your options with the IBM MQ Appliance - IBM InterConnect 2016
Expanding your options with the IBM MQ Appliance - IBM InterConnect 2016
 
HHM-3540: The IBM MQ Light API: From Developer Laptop to Enterprise Data Cen...
 HHM-3540: The IBM MQ Light API: From Developer Laptop to Enterprise Data Cen... HHM-3540: The IBM MQ Light API: From Developer Laptop to Enterprise Data Cen...
HHM-3540: The IBM MQ Light API: From Developer Laptop to Enterprise Data Cen...
 
IBM MQ Appliance - Administration simplified
IBM MQ Appliance - Administration simplifiedIBM MQ Appliance - Administration simplified
IBM MQ Appliance - Administration simplified
 
Ame 4166 ibm mq appliance
Ame 4166 ibm mq applianceAme 4166 ibm mq appliance
Ame 4166 ibm mq appliance
 
IBM MQ High Availabillity and Disaster Recovery (2017 version)
IBM MQ High Availabillity and Disaster Recovery (2017 version)IBM MQ High Availabillity and Disaster Recovery (2017 version)
IBM MQ High Availabillity and Disaster Recovery (2017 version)
 
MQ Security Overview
MQ Security OverviewMQ Security Overview
MQ Security Overview
 
InterConnect 2016: IBM MQ self-service and as-a-service
InterConnect 2016: IBM MQ self-service and as-a-serviceInterConnect 2016: IBM MQ self-service and as-a-service
InterConnect 2016: IBM MQ self-service and as-a-service
 
3429 How to transform your messaging environment to a secure messaging envi...
3429   How to transform your messaging environment to a secure messaging envi...3429   How to transform your messaging environment to a secure messaging envi...
3429 How to transform your messaging environment to a secure messaging envi...
 

Similar to IBM IMPACT 2014 - AMC-1882 Building a Scalable & Continuously Available IBM MQ Infrastructure

Low Latency Mobile Messaging using MQTT
Low Latency Mobile Messaging using MQTTLow Latency Mobile Messaging using MQTT
Low Latency Mobile Messaging using MQTTHenrik Sjöstrand
 
Connecting IBM MessageSight to the Enterprise
Connecting IBM MessageSight to the EnterpriseConnecting IBM MessageSight to the Enterprise
Connecting IBM MessageSight to the EnterpriseAndrew Schofield
 
Cloud Messaging Service: Technical Overview
Cloud Messaging Service: Technical OverviewCloud Messaging Service: Technical Overview
Cloud Messaging Service: Technical OverviewMessaging Meetup
 
HHM-3481: IBM MQ for z/OS: Enhancing Application and Messaging Connectivity ...
 HHM-3481: IBM MQ for z/OS: Enhancing Application and Messaging Connectivity ... HHM-3481: IBM MQ for z/OS: Enhancing Application and Messaging Connectivity ...
HHM-3481: IBM MQ for z/OS: Enhancing Application and Messaging Connectivity ...Matt Leming
 
Arsitektur Aplikasi Modern - Faisal Henry Susanto
Arsitektur Aplikasi Modern - Faisal Henry SusantoArsitektur Aplikasi Modern - Faisal Henry Susanto
Arsitektur Aplikasi Modern - Faisal Henry SusantoDicodingEvent
 
IBM MQ: Managing Workloads, Scaling and Availability with MQ Clusters
IBM MQ: Managing Workloads, Scaling and Availability with MQ ClustersIBM MQ: Managing Workloads, Scaling and Availability with MQ Clusters
IBM MQ: Managing Workloads, Scaling and Availability with MQ ClustersDavid Ware
 
Migration to IBM SmartCloud Notes
Migration to IBM SmartCloud Notes Migration to IBM SmartCloud Notes
Migration to IBM SmartCloud Notes jackdowning
 
Enable business continuity and high availability through active active techno...
Enable business continuity and high availability through active active techno...Enable business continuity and high availability through active active techno...
Enable business continuity and high availability through active active techno...Qian Li Jin
 
Designing IBM MQ deployments for the cloud generation
Designing IBM MQ deployments for the cloud generationDesigning IBM MQ deployments for the cloud generation
Designing IBM MQ deployments for the cloud generationDavid Ware
 
Introduction to Microservices Patterns
Introduction to Microservices PatternsIntroduction to Microservices Patterns
Introduction to Microservices PatternsDimosthenis Botsaris
 
Introduction to Microservices Patterns
Introduction to Microservices PatternsIntroduction to Microservices Patterns
Introduction to Microservices Patternsarconsis
 
Distributed Services Scheduling and Cloud Provisioning
Distributed Services Scheduling and Cloud ProvisioningDistributed Services Scheduling and Cloud Provisioning
Distributed Services Scheduling and Cloud ProvisioningAr Agarwal
 
OOP - Basing Software Development on Reusable
OOP - Basing Software Development on Reusable OOP - Basing Software Development on Reusable
OOP - Basing Software Development on Reusable 17090AshikurRahman
 
1480-techintrotoiib-150224130001-conversion-gate01.pptx
1480-techintrotoiib-150224130001-conversion-gate01.pptx1480-techintrotoiib-150224130001-conversion-gate01.pptx
1480-techintrotoiib-150224130001-conversion-gate01.pptxBalakoteswaraReddyM
 
Odbc and data access objects
Odbc and data access objectsOdbc and data access objects
Odbc and data access objectsSangeetha Sg
 
Application Modernisation through Event-Driven Microservices
Application Modernisation through Event-Driven Microservices Application Modernisation through Event-Driven Microservices
Application Modernisation through Event-Driven Microservices confluent
 
Beyond REST and RPC: Asynchronous Eventing and Messaging Patterns
Beyond REST and RPC: Asynchronous Eventing and Messaging PatternsBeyond REST and RPC: Asynchronous Eventing and Messaging Patterns
Beyond REST and RPC: Asynchronous Eventing and Messaging PatternsClemens Vasters
 
Client server computing
Client server computingClient server computing
Client server computingjorge cabiao
 

Similar to IBM IMPACT 2014 - AMC-1882 Building a Scalable & Continuously Available IBM MQ Infrastructure (20)

Low Latency Mobile Messaging using MQTT
Low Latency Mobile Messaging using MQTTLow Latency Mobile Messaging using MQTT
Low Latency Mobile Messaging using MQTT
 
Connecting IBM MessageSight to the Enterprise
Connecting IBM MessageSight to the EnterpriseConnecting IBM MessageSight to the Enterprise
Connecting IBM MessageSight to the Enterprise
 
Cloud Messaging Service: Technical Overview
Cloud Messaging Service: Technical OverviewCloud Messaging Service: Technical Overview
Cloud Messaging Service: Technical Overview
 
HHM-3481: IBM MQ for z/OS: Enhancing Application and Messaging Connectivity ...
 HHM-3481: IBM MQ for z/OS: Enhancing Application and Messaging Connectivity ... HHM-3481: IBM MQ for z/OS: Enhancing Application and Messaging Connectivity ...
HHM-3481: IBM MQ for z/OS: Enhancing Application and Messaging Connectivity ...
 
Arsitektur Aplikasi Modern - Faisal Henry Susanto
Arsitektur Aplikasi Modern - Faisal Henry SusantoArsitektur Aplikasi Modern - Faisal Henry Susanto
Arsitektur Aplikasi Modern - Faisal Henry Susanto
 
IBM MQ: Managing Workloads, Scaling and Availability with MQ Clusters
IBM MQ: Managing Workloads, Scaling and Availability with MQ ClustersIBM MQ: Managing Workloads, Scaling and Availability with MQ Clusters
IBM MQ: Managing Workloads, Scaling and Availability with MQ Clusters
 
Ibm mq appliance slideshare
Ibm mq appliance slideshareIbm mq appliance slideshare
Ibm mq appliance slideshare
 
Migration to IBM SmartCloud Notes
Migration to IBM SmartCloud Notes Migration to IBM SmartCloud Notes
Migration to IBM SmartCloud Notes
 
Enable business continuity and high availability through active active techno...
Enable business continuity and high availability through active active techno...Enable business continuity and high availability through active active techno...
Enable business continuity and high availability through active active techno...
 
Designing IBM MQ deployments for the cloud generation
Designing IBM MQ deployments for the cloud generationDesigning IBM MQ deployments for the cloud generation
Designing IBM MQ deployments for the cloud generation
 
Introduction to Microservices Patterns
Introduction to Microservices PatternsIntroduction to Microservices Patterns
Introduction to Microservices Patterns
 
Introduction to Microservices Patterns
Introduction to Microservices PatternsIntroduction to Microservices Patterns
Introduction to Microservices Patterns
 
Distributed Services Scheduling and Cloud Provisioning
Distributed Services Scheduling and Cloud ProvisioningDistributed Services Scheduling and Cloud Provisioning
Distributed Services Scheduling and Cloud Provisioning
 
OOP - Basing Software Development on Reusable
OOP - Basing Software Development on Reusable OOP - Basing Software Development on Reusable
OOP - Basing Software Development on Reusable
 
1480-techintrotoiib-150224130001-conversion-gate01.pptx
1480-techintrotoiib-150224130001-conversion-gate01.pptx1480-techintrotoiib-150224130001-conversion-gate01.pptx
1480-techintrotoiib-150224130001-conversion-gate01.pptx
 
Odbc and data access objects
Odbc and data access objectsOdbc and data access objects
Odbc and data access objects
 
IBM Notes in the Cloud
IBM Notes in the CloudIBM Notes in the Cloud
IBM Notes in the Cloud
 
Application Modernisation through Event-Driven Microservices
Application Modernisation through Event-Driven Microservices Application Modernisation through Event-Driven Microservices
Application Modernisation through Event-Driven Microservices
 
Beyond REST and RPC: Asynchronous Eventing and Messaging Patterns
Beyond REST and RPC: Asynchronous Eventing and Messaging PatternsBeyond REST and RPC: Asynchronous Eventing and Messaging Patterns
Beyond REST and RPC: Asynchronous Eventing and Messaging Patterns
 
Client server computing
Client server computingClient server computing
Client server computing
 

Recently uploaded

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetEnjoy Anytime
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 

Recently uploaded (20)

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 

IBM IMPACT 2014 - AMC-1882 Building a Scalable & Continuously Available IBM MQ Infrastructure

  • 1. © 2014 IBM Corporation Building a Scalable & Continuously Available IBM MQ Infrastructure AMC-1882
  • 2. Please Note IBM’s statements regarding its plans, directions, and intent are subject to change or withdrawal without notice at IBM’s sole discretion. Information regarding potential future products is intended to outline our general product direction and it should not be relied on in making a purchasing decision. The information mentioned regarding potential future products is not a commitment, promise, or legal obligation to deliver any material, code or functionality. Information about potential future products may not be incorporated into any contract. The development, release, and timing of any future features or functionality described for our products remains at our sole discretion. Performance is based on measurements and projections using standard IBM benchmarks in a controlled environment. The actual throughput or performance that any user will experience will vary depending upon many factors, including considerations such as the amount of multiprogramming in the user’s job stream, the I/O configuration, the storage configuration, and the workload processed. Therefore, no assurance can be given that an individual user will achieve results similar to those stated here.
  • 3. Introduction Article series describing one possible MQ topology as a pattern • ibm.co/1cz0MrL Why? • Make it easier to include MQ in a project • Help meet ‘five nines’ or ‘continuous’ availability via a standard approach • Help MQ admin teams do more with less through consistency • Provide config and code samples to get started quickly in a DevOps culture The approach is client/server, why? • Applications increasing have a large number of instances • Application instances come and go • MQ should be seen as critical infrastructure, similar to a Database • Provisioning and scaling MQ separately from the app gives flexibility How many ‘hubs’ of MQ could you have? • In general continue to provision MQ on a per-project basis – just like a DB • Some sharing/multi-tenancy is likely based on risk assessment – just like a DB
  • 4. MQ Cluster Workload Balancing MQ Cluster Workload Balancing Overview – architecture view Every sender/requester uses two connections Every receiver/service has two listeners Make each Queue Manager HA to recover persistent messages Simple to interoperate with co-located Queue Managers Simple to interoperate with z/OS Queue Sharing Groups Pattern discussed in detail here: http://ow.ly/vrUUV App1 QM1App1 QM1 App1 QM2 App1 QM2 App2 QM1App2 QM1 Shared QM1Shared QM1 Shared QM2Shared QM2 App1 Inst1App1 Inst1 App1 Inst2App1 Inst2 App1 Inst3App1 Inst3 App1 Inst4App1 Inst4 App2 Inst1App2 Inst1 App2 Inst2App2 Inst2 App2 Inst3App2 Inst3 App2 Inst4App2 Inst4 App2 QM2App2 QM2 App2 QM3App2 QM3 App2 QM4App2 QM4 App1 Inst1App1 Inst1 App1 Inst2App1 Inst2 App1 Inst3App1 Inst3 App1 Inst4App1 Inst4 App2 Inst1App2 Inst1 App2 Inst2App2 Inst2
  • 5. Overview – infrastructure view Principal design philosophy is active/active • Continuous availability of the service Minimum number of queue managers is 2 • Sending and receiving gateway roles can be fulfilled by the same qmgr HA failover is optional • If you have persistent messages that you need to recover quickly after a failure MQ1 Standby MQ2 Standby Machine 1 Machine 2 HA failover HA failover MQ2 (Sending & Receiving GW) MQ1 (Sending & Receiving GW) Highly available network-attached file-system MQ Hub Senders Receivers
  • 6. Overview – 2 is the magic number Every sender sends to two queue managers • No single point of failure for sending messages • Not too many places to look for messages Every receiver listens to two queue managers concurrently • Every queue manager has two app instances listening for messages • Every app instance listens to two queue managers • Note: cannot have more receiving gateways than receiving app instances No single point of failure • Any single component can fail, and all other components continue processing MQCluster Receiver 1 Receiver 2 Receiver 3 Receiver 4 Sender 1 Sender 2 Sender 3 Sender 4 Sender 5 Sender 6 Sender 7 Sender 8 MQ Gateway 1 MQ Gateway 2 MQ Gateway 3 MQ Gateway 4 MQ Gateway 5 MQ Gateway 1 MQ Gateway 2 MQ Gateway 3 MQ Gateway 4 MQ Gateway 5
  • 7. Sending messages Each app instance sends to two different queue managers Need a workload management strategy • Prioritised • Random • Round robin – my personal preference Biggest practical concern for customers: How do I create/change my app code to connect to two different remote queue managers Sending application Connection logic (CCDT or custom) Sending Gateway 1 Sending Gateway 2 MQ connection 1 MQ connection 2 MQCluster
  • 8. Sending messages – choices for multi-QM client attachment CONNAME list CCDT (multi-QMGR) Load balancer Code stub Scale of code change required for existing apps that connect to a single QM +ive MQCONN("QMNAME") to MQCONN("*QMNAME") QMName might be in JNDI config for Java EE apps. Otherwise requires a one character code-change. -ive Replace existing JMS/MQI connection logic with code stub. Support for different WLM strategies -ive Prioritized only = Prioritized + Random +ive Any, including per- connect round-robin +ive Any, including per- message round-robin. Performance overhead while primary QM is down -ive Always tries first in list +ive Remembers last good +ive Port monitoring avoids bad QMs +ive Can remember last good, and retry intelligently XA Transaction Support -ive The transaction manager needs to store recovery information that reconnects to the same QM resource. An MQCONN that resolves to different QMs generally invalidates this. e.g. in Java EE, a single Connection Factory should resolve to a single QM when using XA. +ive Code stub can meet the XA transaction manager’s requirements. e.g. multiple Connection Factories. Connection rebalancing on failback. e.g. when a QM restarts after a failure or planned outage, how long till apps use it again -ive Connection pooling in Java EE will hold onto connections indefinitely, unless connections are configured with an aged timeout. Using an aged timeout might drive exceptions in some cases. An aged timeout also introduces a performance overhead during normal operation. Conversation sharing might need to be disabled (SHARCNV=1) with an aged timeout to ensure reconnects always establish a new socket. The ‘remembers last good’ CCDT behaviour might also delay failback. +ive Code stub can handle failback flexibly, with little/no performance overhead. Admin flexibility to hide infrastructure changes from apps -ive DNS only = DNS and/or shared file- system / CCDT file push +ive Dynamic Virtual IP address (VIP) = DNS or single-QMGR CCDT entries More detail on MQDev here: http://ibm.co/MM8rMl
  • 9. Receiving messages The application needs two active listeners • Random/prioritised attachment can lead to stranded messages • AMQSCLM is an alternative - discussed in AMC-1883 For Java EE this means two MDB endpoints • EJB 2.1 style deployment descriptors – Add a second endpoint to the XML • EJB 3.0 style annotations – Create a code hierarchy EJB 2.1 & 3.0 samples on github: https://github.com/ibm-messaging/mq-wlm-client Receiving application Active Active MQ Listener 1 MQ Listener 2 MQCluster Receiving Gateway 1 Receiving Gateway 2
  • 10. Synchronous request/response Response 1 Requester application Connection logic (CCDT or custom) MQ 1 MQ 2 MQ connection 1 MQ connection 2 MQCluster Request 1 Response 2 Request 2 Use same MQ connection to receive the response • e.g. the same JMS Session MQ fills in the MQMD.ReplyToQMgr on send • Back-end app must honour this when sending the response
  • 11. Synchronous request/response – advanced case A clustered reply queue for synchronous request/response • Lets replies take a different route back from requests • Only adds resilience for highly parallel nonpersistent request/reply, where requests build up on back-end threads in business logic rather than in MQ Requires correlation logic to pass responses back to waiting threads This is not the same as two-way asynchronous messaging Code samples: https://github.com/ibm-messaging/mq-wlm-client
  • 12. Asynchronous Receiver Two-way asynchronous messaging The optimal use of messaging is fully asynchronous Requests are sent “fire & forget”, as are responses • Critical requests are sent as persistent within a transaction that updates a DB • Transactional state update + persistent send = exactly once delivery Responses are handled by any app instance at any time • No thread is left ‘hung’ in the requesting application • If responses need to be correlated with requests, then a state store is used – A Database – DB2 etc. – An elastic cache – WebSphere eXtreme Scale Must be designed into the application • Can revolutionize responsiveness • Truly decouples applications Receiving application Active Active MQ Listener 1 MQ Listener 2 MQCluster Receiving Gateway 1 Receiving Gateway 2 Fire & Forget Requester CCDT or custom Sending Gateway 1 Sending Gateway 2 MQ connection 1 MQ connection 2 MQ Listener 1 MQ Listener 2 50% requests 50% requests 50% responses 50% responses
  • 13. Publish/subscribe messaging MQ gives the same QoS for pub/sub as for P2P • Fan out messages one-to-many • WLM across multiple subscriber instances Achieved by bridging durable subscriptions to cluster queues • Define subscriptions on queue managers where publishers connect Sub1 Inst1 Sub1 Inst2Pub Inst1 Pub Inst2 QM1 QM2 QM3 QM4 Pub/SubFan-Out +MQClusterWLM Sub2 Inst1 Sub2 Inst2 QM3 QM4
  • 14. Limitations for message ordering No active/active solution is provided here for ordered messages • MQ only assures order when there is one path from producing thread to consuming thread The simplest solution, and as far as this presentation goes • Allocate individual queue managers with HA Failover for ordered messages MQ Gateway 1 MQ Gateway 2 MQ Gateway 1 MQ Gateway 2 MQ Gateway N1 MQ Gateway N2 MQ Gateway N1 MQ Gateway N2 Receiver 1 Receiver 2 Receiver 3 Receiver 4 Receiver N1 Receiver N2 Receiver N3 Receiver N4 Sender 1 Sender 2 Sender 3 Sender 4 Sender N1 Sender N2 Sender N3 Sender N4 MQClusterWorkloadManagement .. . .. . .. . .. . Sender Sending gateway Receiving gateway Receiver Can be the same queue manager. Might be in different hubs.
  • 15. Including IBM Integration Bus The architecture fits IBM Integration Bus • Option 1: Add it as a separate tier • Option 2: Compress everything into a single active/active IIB tier For more on IIB architectures, try the following link (plug): ibm.co/1a2Y2os MQ GW1 MQ GW2 Receiver 1 Receiver 2 Receiver 3 Receiver 4 Sender 1 Sender 2 Sender 3 Sender 4 Sender Sending gateway Receiving gateway Receiver MQ GW1 MQ GW2 Integration Node 1 Integration Node 2 Routing & filtering MQCluster MQCluster Can be same the queue manager
  • 17. We Value Your Feedback Don’t forget to submit your Impact session and speaker feedback! Your feedback is very important to us – we use it to continually improve the conference. Use the Conference Mobile App or the online Agenda Builder to quickly submit your survey • Navigate to “Surveys” to see a view of surveys for sessions you’ve attended 17
  • 19. Legal Disclaimer • © IBM Corporation 2014. All Rights Reserved. • The information contained in this publication is provided for informational purposes only. While efforts were made to verify the completeness and accuracy of the information contained in this publication, it is provided AS IS without warranty of any kind, express or implied. In addition, this information is based on IBM’s current product plans and strategy, which are subject to change by IBM without notice. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, this publication or any other materials. Nothing contained in this publication is intended to, nor shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement governing the use of IBM software. • References in this presentation to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates. Product release dates and/or capabilities referenced in this presentation may change at any time at IBM’s sole discretion based on market opportunities or other factors, and are not intended to be a commitment to future product or feature availability in any way. Nothing contained in these materials is intended to, nor shall have the effect of, stating or implying that any activities undertaken by you will result in any specific sales, revenue growth or other results. • If the text contains performance statistics or references to benchmarks, insert the following language; otherwise delete: Performance is based on measurements and projections using standard IBM benchmarks in a controlled environment. The actual throughput or performance that any user will experience will vary depending upon many factors, including considerations such as the amount of multiprogramming in the user's job stream, the I/O configuration, the storage configuration, and the workload processed. Therefore, no assurance can be given that an individual user will achieve results similar to those stated here. • If the text includes any customer examples, please confirm we have prior written approval from such customer and insert the following language; otherwise delete: All customer examples described are presented as illustrations of how those customers have used IBM products and the results they may have achieved. Actual environmental costs and performance characteristics may vary by customer. • Please review text for proper trademark attribution of IBM products. At first use, each product name must be the full name and include appropriate trademark symbols (e.g., IBM Lotus® Sametime® Unyte™). Subsequent references can drop “IBM” but should include the proper branding (e.g., Lotus Sametime Gateway, or WebSphere Application Server). Please refer to http://www.ibm.com/legal/copytrade.shtml for guidance on which trademarks require the ® or ™ symbol. Do not use abbreviations for IBM product names in your presentation. All product names must be used as adjectives rather than nouns. Please list all of the trademarks that you use in your presentation as follows; delete any not included in your presentation. IBM, the IBM logo, Lotus, Lotus Notes, Notes, Domino, Quickr, Sametime, WebSphere, UC2, PartnerWorld and Lotusphere are trademarks of International Business Machines Corporation in the United States, other countries, or both. Unyte is a trademark of WebDialogs, Inc., in the United States, other countries, or both. • If you reference Adobe® in the text, please mark the first use and include the following; otherwise delete: Adobe, the Adobe logo, PostScript, and the PostScript logo are either registered trademarks or trademarks of Adobe Systems Incorporated in the United States, and/or other countries. • If you reference Java™ in the text, please mark the first use and include the following; otherwise delete: Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both. • If you reference Microsoft® and/or Windows® in the text, please mark the first use and include the following, as applicable; otherwise delete: Microsoft and Windows are trademarks of Microsoft Corporation in the United States, other countries, or both. • If you reference Intel® and/or any of the following Intel products in the text, please mark the first use and include those that you use as follows; otherwise delete: Intel, Intel Centrino, Celeron, Intel Xeon, Intel SpeedStep, Itanium, and Pentium are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries. • If you reference UNIX® in the text, please mark the first use and include the following; otherwise delete: UNIX is a registered trademark of The Open Group in the United States and other countries. • If you reference Linux® in your presentation, please mark the first use and include the following; otherwise delete: Linux is a registered trademark of Linus Torvalds in the United States, other countries, or both. Other company, product, or service names may be trademarks or service marks of others. • If the text/graphics include screenshots, no actual IBM employee names may be used (even your own), if your screenshots include fictitious company names (e.g., Renovations, Zeta Bank, Acme) please update and insert the following; otherwise delete: All references to [insert fictitious company name] refer to a fictitious company and are used for illustration purposes only.