ame 2287 using-wmq_with_was_and_liberty

43
© 2015 IBM Corporation Using WMQ with WAS and Liberty Lohitashwa Thyagaraj email: [email protected] twitter: @lohitashwa linkedin: lohitashwa

Upload: lohit-t

Post on 17-Jul-2015

74 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Ame 2287 using-wmq_with_was_and_liberty

© 2015 IBM Corporation

Using WMQ with WAS and LibertyLohitashwa Thyagarajemail: [email protected]: @lohitashwa

linkedin: lohitashwa

Page 2: Ame 2287 using-wmq_with_was_and_liberty

1

IBM® WebSphere® Application Server

Enterprise standard Java™ Application Server

Highly scalable: single server up to massive network deployment

Web gui and command line interface (wsadmin)

Page 3: Ame 2287 using-wmq_with_was_and_liberty

2

Liberty

Using WebSphere MQ with WebSphere Application Server and the Liberty Profile

Lightweight, Developer focussed

Eclipse based: server.xml and WAS Developer Tools

wasdev.net

Bundled in WebSphere Application Server version 8.5.5

Page 4: Ame 2287 using-wmq_with_was_and_liberty

WAS’ messaging in a slide

• WebSphere Application Server (WAS) is a JEE application server, JEE includes support for asynchronous messaging using JMS (Java Message Service)

• Allows Java application interactions to be loosely coupled• Temporal and transactional decoupling of applications

• A standardised programming interface• Implemented by a JMS provider

• JMS applications can be coded to be ignorant of the underlying JMS provider– Provider specific configuration, such as how to connect to a messaging provider, is contained

within JMS resources held in JNDI, defined at application deployment time

• JMS is not a transport protocol– No standardised ability to couple different JMS providers

• JMS Supports two messaging models• Point-to-point – using queues

• Publish/subscribe – using topics

• WebSphere Application Server provides first class support for two JMS messaging providers

• An embedded messaging provider, the Default Messaging provider (or Service Integration Bus)

• WebSphere MQ as an external messaging provider

Page 5: Ame 2287 using-wmq_with_was_and_liberty

IBM MQ in a slide

• IBM MQ (WMQ)

• WMQ is IBM’s flagship asynchronous messaging product

• Queues are managed by queue managers

• Queue Managers can be connected together to form a network, or cluster

• Messaging applications connect to queue managers to access queues– Applications can send messages to any queue in the network from their queue

manager

– Applications can receive messages from queues on their queue manager

• WMQ supports the point-to-point and publish/subscribe messaging models

• WMQ as the JMS provider in WAS

• WMQ supports the JMS programming interface for Java applications.

• Applications in WAS can use JMS to interact with WMQ queues (and topics)– WAS V6 and V6.1 contains a WMQ JMS client to enable this

– WAS V7 contains the WMQ V7 JCA resource adaptor

• WAS applications connect to a queue manager using:– Bindings – when application and queue manager are on the same server

– Client – when application server and queue manager are on separate, networked, servers - using a TCP/IP socket

Page 6: Ame 2287 using-wmq_with_was_and_liberty

Service integration bus in a slide

• Service Integration Bus (SIBus)

• SIBus is a native component of WAS, forming the asynchronous messaging platform for application server based products

• Logically:– A bus is a logical entity that contains destinations (e.g. queues/topic spaces)

– Messaging applications connect to the bus to access the destinations

– A bus is location transparent, all destinations and their messages are available from anywhere in the bus

• Physically:– A WAS cell contains application servers, or clusters of application servers

– These can optionally be made a member of a bus

– Destinations are assigned to bus members

– Bus members run messaging engines within the application server JVMs

– Messaging engines manage the runtime and persistent state of messages in the bus

– Messaging applications form a connection to a messaging engine

– Messages are routed from any messaging engine in the bus to the application

• SIBus as the JMS provider in WAS

• SIBus supports the JMS programming interface for Java applications.– Natively supporting both point-to-point and publish/subscribe messaging models

• SIBus is the default JMS provider in WAS – hence the “Default messaging provider”

Page 7: Ame 2287 using-wmq_with_was_and_liberty

Options for accessing your WMQ backbone

• Three key options

1. Use WMQ as the JMS provider in WAS

2. Use the service integration bus in WAS and connect that

messaging system with your WMQ backbone

3. Use SIBus for intra-WAS messaging, use WMQ for inter-system

messaging

Page 8: Ame 2287 using-wmq_with_was_and_liberty

Option 1

WMQQMgr

ApplicationServer

Application Server

WMQQMgr

WMQQMgr

Application Application

WebSphere MQ as the JMS provider in WAS

WMQQMgr

Existing WMQ

applicationCICS

application

WAS

WMQ backbone

Applications connect

directly into the

WMQ backbone

Page 9: Ame 2287 using-wmq_with_was_and_liberty

8

Version 6 Messaging Architecture

Using WebSphere MQ with WebSphere Application Server and the Liberty Profile

Page 10: Ame 2287 using-wmq_with_was_and_liberty

9

The solution now

Picture courtesy: public domain

Source: http://www.livescience.com/20404-gallery-sun-gods-goddesses.html

Using WebSphere MQ with WebSphere Application Server and the Liberty Profile

RA

Page 11: Ame 2287 using-wmq_with_was_and_liberty

10

Introducing the IBM® WebSphere® MQ JMS Resource Adapter

Using WebSphere MQ with WebSphere Application Server and the Liberty Profile

wmq.jmsra.rar

Page 12: Ame 2287 using-wmq_with_was_and_liberty

11

Why have a Resource Adapter?

Java Enterprise Edition(Java EE)

Java Connector Architecture(JCA)

Using WebSphere MQ with WebSphere Application Server and the Liberty Profile

Page 13: Ame 2287 using-wmq_with_was_and_liberty

12

Harnessing the Resource Adapter: WAS

Using WebSphere MQ with WebSphere Application Server and the Liberty Profile

Deployed inside WebSphere Application Server

WAS is shipped with a validated RA

RA can be a different version to the Queue Manager

Page 14: Ame 2287 using-wmq_with_was_and_liberty

13

Harnessing the Resource Adapter: Liberty

Supported from Liberty version 8.5.5

Download from IBM Fix Central – search 'Resource Adapter'

Using WebSphere MQ with WebSphere Application Server and the Liberty Profile

<server description="new server">

<!-- Enable features -->

<featureManager><feature>jsp-2.2</feature><feature>localConnector-1.0</feature><feature>ejbLite-3.1</feature>

<feature>jmsMdb-3.1</feature><feature>jndi-1.0</feature>

<feature>wmqJmsClient-1.1</feature>

</featureManager>

<variable name="wmqJmsClient.rar.location"value="C:\MY_RA_FOLDER\wmq.jmsra.rar"/>

</server>

Page 15: Ame 2287 using-wmq_with_was_and_liberty

14

Managing the Resource Adapter

Using WebSphere MQ with WebSphere Application Server and the Liberty Profile

Client mode – no configuration necessary

Bindings mode:

WAS: set 'native library path' on Resource Adapter

Liberty: <wmqJmsClient nativeLibraryPath="/opt/mqm/java/lib64"/>

Updates to RA:

WAS: WAS Fix Packs and iFixes

Liberty: updated download from Fix Central

Page 16: Ame 2287 using-wmq_with_was_and_liberty

15

Version 7 onwards Messaging Architecture

Using WebSphere MQ with WebSphere Application Server and the Liberty Profile

Page 17: Ame 2287 using-wmq_with_was_and_liberty

16

Practical benefits: standardised, well-versioned connections

Photo courtesy: public domain

Source: http://pixabay.com/en/industrial-mess-electric-power-69750/

Using WebSphere MQ with WebSphere Application Server and the Liberty Profile

Photo courtesy: public domain

Source: http://pixabay.com/en/communication-connection-113613/

Page 18: Ame 2287 using-wmq_with_was_and_liberty

17

Bindings mode architecture

Using WebSphere MQ with WebSphere Application Server and the Liberty Profile

Page 19: Ame 2287 using-wmq_with_was_and_liberty

18

Practical benefits

Using WebSphere MQ with WebSphere Application Server and the Liberty Profile

Simplified maintenance

Ease of migration

Easier consumption of Multi-Version WMQ

Page 20: Ame 2287 using-wmq_with_was_and_liberty

19

Multi-instance queue manager

Using WebSphere MQ with WebSphere Application Server and the Liberty Profile

Page 21: Ame 2287 using-wmq_with_was_and_liberty

20

Multi-instance queue manager

Using WebSphere MQ with WebSphere Application Server and the Liberty Profile

Page 22: Ame 2287 using-wmq_with_was_and_liberty

21

Multi-instance queue manager

Using WebSphere MQ with WebSphere Application Server and the Liberty Profile

Page 23: Ame 2287 using-wmq_with_was_and_liberty

22

High availability with Multi-Instance Queue Managers

Using WebSphere MQ with WebSphere Application Server and the Liberty Profile

WebSphere MQ Automatic Client Reconnect is NOT supported with

Java EE Application Servers

Configure WAS to automatically reconnect instead

Page 24: Ame 2287 using-wmq_with_was_and_liberty

23

High availability with Multi-Instance Queue Managerswith Activation Specifications

Using WebSphere MQ with WebSphere Application Server and the Liberty Profile

Connection Factory

Connection Name List – host(port) for Active instance, host(port) for standby instance

CCDT (Client Channel Definition Table)

Resource Adapter

Reconnection Retry Count – default is 5

Reconnection Retry Interval – default is 5 minutes

Activation Specification

Connection Name List – host(port) for Active instance, host(port) for standby instance

Stop endpoint if message delivery fails

Number of sequential delivery failures before suspending endpoint

Page 25: Ame 2287 using-wmq_with_was_and_liberty

24

High availability with Multi-Instance Queue Managerswith Listener Ports

Using WebSphere MQ with WebSphere Application Server and the Liberty Profile

Connection Factory

Connection Name List – host(port) for Active instance, host(port) for standby instance

CCDT (Client Channel Definition Table)

Message Listener Service

Maximum Retries (on listener port) – default is 0

Custom property: MAX.RECOVERY.RETRIES – default is 5

Custom property: RECOVERY.RETRY.INTERVAL – default is 60 seconds

Page 26: Ame 2287 using-wmq_with_was_and_liberty

Let’s look at other 2 Options !!!

Page 27: Ame 2287 using-wmq_with_was_and_liberty

WMQQMgr

Application Server

ApplicationServer

WMQQMgr

WMQQMgr

Application Application

MessagingEngine

SIBus for WAS application messaging,

An SIBus interacts with WMQ to access the messaging backbone

SIBus

WMQ backbone

WAS

Existing WMQ

applicationCICS

application

Messages flow between

SIBus and WMQ where

interactions with the WMQ

backbone are necessary

ApplicationServer

MessagingEngine

Application

Option 2

Page 28: Ame 2287 using-wmq_with_was_and_liberty

Asynchronous connectivity to WMQ

through the SIBus

Page 29: Ame 2287 using-wmq_with_was_and_liberty

Asynchronous connectivity to WMQWMQ-to-WMQ

• WMQ queue managers can be networked together, allowing messages to be asynchronously sent from applications connected to one queue manager to queues located on other queue managers

• Store and forward of routed messages

• Network connections using channels

• Message routing using remote queue managers and remote queues

Queue

Manager

app

app

WMQ network

Queue

Manager

Page 30: Ame 2287 using-wmq_with_was_and_liberty

Asynchronous connectivity to WMQSIBus-to-WMQ

• So, it’s just a matter of joining the two together…

• The WMQ queue manager sees the connected SIBus as another remote

queue manager, connected via a sender and receiver channel, allowing

messages to be routed through to the SIBus as for any other connected queue

manager.

• The SIBus sees the connected queue manager as another bus, connected via

a foreign bus connection, allowing messages to be routed through to the queue

manager as for any other connected bus.

• Messaging applications on either side are not aware of the transition.

AppServer AppServer

MEapp

Bus

SIBus network

app

WMQ network

Queue

Manager

Queue

Manager

Page 31: Ame 2287 using-wmq_with_was_and_liberty

Asynchronous connectivity with WMQ

• What does this add?• Ability to asynchronously queue messages in the WAS system

while connectivity with the WMQ backbone is unavailable

• All JMS resources defined are SIBus resources, referring to SIBus objects.– Fine grain authorisation access to those resources can be managed

using SIBus authorisation, within the WAS configuration domain.

– WMQ configuration is restricted to the SIBus configuration domain.

– WMQ topology is hidden from JMS resource configuration

• What does it cost?• Extra latency

• Only able to send messages to WMQ queues,unable to receive from WMQ queues– WMQ applications must send to queues located

in the SIBus (using remote WMQ queues)

• Additional configuration

• Additional runtime management

SIBus network

WMQ network

Page 32: Ame 2287 using-wmq_with_was_and_liberty

Synchronous connectivity to WMQ

through the SIBus

Page 33: Ame 2287 using-wmq_with_was_and_liberty

Synchronous connectivity with WMQ

• When WMQ is the JMS provider in WAS, a JMS application will connect

directly to a queue manager

• This requires a WMQ JMS ConnectionFactory, defining where the queue

manager is and how to connect to it.

• The embedded WMQ JMS client in WAS is then used to synchronously

connect to the queue manager.

• The application will also require a WMQ JMS Queue which defines the

actual queue located on that queue manager.

• This allows synchronous style messaging with WMQ

WMQ JMS client

AppServer

app

WMQ network

Queue

Manager

WAS config

JNDI

ConnectionFactory<QMgr location>

JMS Queue<WMQ queue name>

WMQ JMS

Page 34: Ame 2287 using-wmq_with_was_and_liberty

SIBus synchronous connectivity with WMQ

• It is possible to insert the SIBus runtime between the application and the queue manager,

such that the JMS application actually connects to the SIBus runtime and the bus manages

the synchronous connection to a queue manager when required.

• This requires an SIBus JMS ConnectionFactory, defining which bus to connect to, and an

SIBus JMS Queue, defining which SIBus queue to send or receive messages from.

• The configuration detailing which queues are available on which queue managers, and how to

connect to those queue managers is contained in the SIBus configuration.

• A connection will then be made to a messaging engine in the bus, which will then make a

synchronous connection to the correct queue manager.

• This allows synchronous style messaging with WMQ

AppServer

WMQ network

Queue

Manager

WAS config

SIBus config

WMQ bus member<QMgr location>

JNDI

SIBus queue<WMQ queue>

app

ME

ConnectionFactory<SIBus name>

JMS Queue<SIBus queue name>

SIBus JMS

WM

Q

Page 35: Ame 2287 using-wmq_with_was_and_liberty

SIBus synchronous connectivity with WMQ

• What does this add?

• All JMS resources defined are SIBus resources, referring to SIBus

objects within the WAS configuration domain.

– WMQ configuration is restricted to the SIBus configuration domain.

• WMQ shared queue on z/OS can be fully utilised from WAS

– Supports transaction recovery across multiple members of the queue

sharing group, enabling full shared queue workload balancing and high

availability.

• What does it cost?

• Extra code path, slower performance

• Additional overall configuration complexity

• Additional runtime management

WMQ network

WAS config

SIBus config

JNDI

Page 36: Ame 2287 using-wmq_with_was_and_liberty

WMQQMgr

Application Server

ApplicationServer

WMQQMgr

Application

SIBus for WAS-WAS application messaging,

WMQ for WAS-‘other’ messaging

SIBus

WMQ backbone

WAS

Existing WMQ

applicationCICS

application

WMQQMgr

Application Server

Application

MessagingEngine

ApplicationMessaging

Engine

Application

Option 3

Page 37: Ame 2287 using-wmq_with_was_and_liberty

37

Product Connectivity Scenarios Information Centre

Hands on, scenario based education for MQ:WAS and MQ:Liberty

inter-operation

Using WebSphere MQ with WebSphere Application Server and the Liberty Profile

Page 38: Ame 2287 using-wmq_with_was_and_liberty

38

IBM Product Information

Using WebSphere MQ with WebSphere Application Server and the Liberty Profile

See the new IBM Knowledge Center – No more infocenters from 2014!

Page 39: Ame 2287 using-wmq_with_was_and_liberty

39

Summary

Different options to connect to WMQ from WAS

WebSphere MQ JMS RA provides MQ messaging to WAS

Easier maintenance and upgrading

MuIti Instance Queue Managers – configure your Application

Server

Using WebSphere MQ with WebSphere Application Server and the Liberty Profile

Page 40: Ame 2287 using-wmq_with_was_and_liberty

Questions?

Page 41: Ame 2287 using-wmq_with_was_and_liberty

Notices and Disclaimers

Copyright © 2015 by International Business Machines Corporation (IBM). No part of this document may be reproduced or

transmitted in any form without written permission from IBM.

U.S. Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with

IBM.

Information in these presentations (including information relating to products that have not yet been announced by IBM) has been

reviewed for accuracy as of the date of initial publication and could include unintentional technical or typographical errors. IBM

shall have no responsibility to update this information. THIS DOCUMENT IS DISTRIBUTED "AS IS" WITHOUT ANY WARRANTY,

EITHER EXPRESS OR IMPLIED. IN NO EVENT SHALL IBM BE LIABLE FOR ANY DAMAGE ARISING FROM THE USE OF

THIS INFORMATION, INCLUDING BUT NOT LIMITED TO, LOSS OF DATA, BUSINESS INTERRUPTION, LOSS OF PROFIT

OR LOSS OF OPPORTUNITY. IBM products and services are warranted according to the terms and conditions of the

agreements under which they are provided.

Any statements regarding IBM's future direction, intent or product plans are subject to change or withdrawal without

notice.

Performance data contained herein was generally obtained in a controlled, isolated environments. Customer examples are

presented as illustrations of how those customers have used IBM products and the results they may have achieved. Actual

performance, cost, savings or other results in other operating environments may vary.

References in this document to IBM products, programs, or services does not imply that IBM intends to make such products,

programs or services available in all countries in which IBM operates or does business.

Workshops, sessions and associated materials may have been prepared by independent session speakers, and do not

necessarily reflect the views of IBM. All materials and discussions are provided for informational purposes only, and are neither

intended to, nor shall constitute legal or other guidance or advice to any individual participant or their specific situation.

It is the customer’s responsibility to insure its own compliance with legal requirements and to obtain advice of competent legal

counsel as to the identification and interpretation of any relevant laws and regulatory requirements that may affect the customer’s

business and any actions the customer may need to take to comply with such laws. IBM does not provide legal advice or

represent or warrant that its services or products will ensure that the customer is in compliance with any law.

Page 42: Ame 2287 using-wmq_with_was_and_liberty

Notices and Disclaimers (con’t)

Information concerning non-IBM products was obtained from the suppliers of those products, their published

announcements or other publicly available sources. IBM has not tested those products in connection with this

publication and cannot confirm the accuracy of performance, compatibility or any other claims related to non-IBM

products. Questions on the capabilities of non-IBM products should be addressed to the suppliers of those products.

IBM does not warrant the quality of any third-party products, or the ability of any such third-party products to

interoperate with IBM’s products. IBM EXPRESSLY DISCLAIMS ALL WARRANTIES, EXPRESSED OR IMPLIED,

INCLUDING BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A

PARTICULAR PURPOSE.

The provision of the information contained herein is not intended to, and does not, grant any right or license under any

IBM patents, copyrights, trademarks or other intellectual property right.

• IBM, the IBM logo, ibm.com, Bluemix, Blueworks Live, CICS, Clearcase, DOORS®, Enterprise Document

Management System™, Global Business Services ®, Global Technology Services ®, Information on Demand,

ILOG, Maximo®, MQIntegrator®, MQSeries®, Netcool®, OMEGAMON, OpenPower, PureAnalytics™,

PureApplication®, pureCluster™, PureCoverage®, PureData®, PureExperience®, PureFlex®, pureQuery®,

pureScale®, PureSystems®, QRadar®, Rational®, Rhapsody®, SoDA, SPSS, StoredIQ, Tivoli®, Trusteer®,

urban{code}®, Watson, WebSphere®, Worklight®, X-Force® and System z® Z/OS, are trademarks of

International Business Machines Corporation, registered in many jurisdictions worldwide. Other product and

service names might be trademarks of IBM or other companies. A current list of IBM trademarks is available on

the Web at "Copyright and trademark information" at: www.ibm.com/legal/copytrade.shtml.

Page 43: Ame 2287 using-wmq_with_was_and_liberty

Thank YouYour Feedback is

Important!

Access the InterConnect 2015

Conference CONNECT Attendee

Portal to complete your session

surveys from your smartphone,

laptop or conference kiosk.