wmq v7 pub/sub introduction 李慧 [email protected] ibm cdl mq l2 support, april 2011

36
WMQ V7 Pub/Sub Introduction 李李 [email protected] IBM CDL MQ L2 support , April 2011

Upload: harold-alexander

Post on 28-Dec-2015

226 views

Category:

Documents


10 download

TRANSCRIPT

Page 1: WMQ V7 Pub/Sub Introduction 李慧 lihui@cn.ibm.com IBM CDL MQ L2 support, April 2011

WMQ V7 Pub/Sub Introduction

李慧 [email protected]

IBM CDL MQ L2 support , April 2011

Page 2: WMQ V7 Pub/Sub Introduction 李慧 lihui@cn.ibm.com IBM CDL MQ L2 support, April 2011

Agenda

Pub/Sub concept MQ V7 PUB/SUB new feature Pub/Sub adminstration Pub/Sub Programming MQ distributed Pub/Sub topology

Page 3: WMQ V7 Pub/Sub Introduction 李慧 lihui@cn.ibm.com IBM CDL MQ L2 support, April 2011

What is Publish/Subscribe ?

providers of informationneed have no knowledgeof consumers

consumers of informationneed have no knowledgeof providers

new providers/consumers can be added without disruption

Publish/Subscribe is a term used to define an application model in which the provider of some information is decoupled from the

consumers of that information.

Providers of information are called publishers

Consumers of information are called subscribers

Page 4: WMQ V7 Pub/Sub Introduction 李慧 lihui@cn.ibm.com IBM CDL MQ L2 support, April 2011

The classic example

A "feed" provides a continuous flow of information which is pushed to interested parties

Traders consume this information and use it as a basis for the buying and selling stock

Traders

StockFeed

Page 5: WMQ V7 Pub/Sub Introduction 李慧 lihui@cn.ibm.com IBM CDL MQ L2 support, April 2011

Loose-coupling with Publish/Subscribe

Few-to-many: Research, news tickers

Many-to-many: Prices and Quotes

Many-to-few: Orders

Topic

Topic

Topic

Page 6: WMQ V7 Pub/Sub Introduction 李慧 lihui@cn.ibm.com IBM CDL MQ L2 support, April 2011

Publications and subscriptions

Subscribers make subscriptions with the queue manager to register their interest in information relating to specific topics. They use the MQSUB verb

Publishers provide information about specific topics by sending publications to the queue manager They use the MQPUT verb

The queue manager forwards each publication it receives to all subscribers with a subscription which matches the associated topic

Page 7: WMQ V7 Pub/Sub Introduction 李慧 lihui@cn.ibm.com IBM CDL MQ L2 support, April 2011

WebSphere MQ v7 Pub/Sub

Compatibility mode available in V7,embedded pub/sub engine

Now available on z/OS!and better performance on distributed platforms

Improved Pub/Sub adminstration

A natural part of the JMS API Combines both Publish/Subscribe and Point-to-Point patterns Now also a natural part of the native MQI

MQRFH to pub and

sub?

MQPUT + MQSUB!

v6

v7

IBM WebSphere MQ V7.0

Web 2.0Java Message Service (JMS) MQ Interface

Multi-LanguageMessage Service

Publish Subscribe

Page 8: WMQ V7 Pub/Sub Introduction 李慧 lihui@cn.ibm.com IBM CDL MQ L2 support, April 2011

Publish/Subscribe in WebSphere MQ

ConfigureMonitor

Interface

Create TOPIC objectsTopic Status

Display Connectionsand handles

Configure attributes

Topic Tree

MQSUB‘Price/Fruit/+’MQGET

MQOPEN‘Price/Fruit/Apples’

MQPUT

Page 9: WMQ V7 Pub/Sub Introduction 李慧 lihui@cn.ibm.com IBM CDL MQ L2 support, April 2011

Topic strings and topic tree

Price/Fruit/Apples

Price/Fruit/Oranges

Price/Vegetables/Potatoes

Price/Vegetables/Onions

Price

Fruit

Apples Oranges

Vegetables

Potatoes Onions

Page 10: WMQ V7 Pub/Sub Introduction 李慧 lihui@cn.ibm.com IBM CDL MQ L2 support, April 2011

Topic Objects

Not necessary for Publish/Subscribe

Provide an administrative control point for your topic tree Configuration attributes Security profiles Topic tree isolation

MY.TOPIC.OBJECT

Page 11: WMQ V7 Pub/Sub Introduction 李慧 lihui@cn.ibm.com IBM CDL MQ L2 support, April 2011

FRUIT

Defining a topic object

Price

Fruit

Apples Oranges

SYSTEM.BASE.TOPIC

Starting MQSC for queue manager TEST1.

DEFINE TOPIC(FRUIT) TOPICSTR(‘Price/Fruit’) DURSUB(NO)

DISPLAY TOPIC(FRUIT)AMQ8633: Display topic details. TOPIC(FRUIT) TYPE(LOCAL) TOPICSTR(Price/Fruit) DESCR( ) CLUSTER( ) DURSUB(NO) PUB(ASPARENT) SUB(ASPARENT) DEFPSIST(ASPARENT) DEFPRTY(ASPARENT) DEFPRESP(ASPARENT) ALTDATE(2008-02-26) ALTTIME(15.05.22) PMSGDLV(ASPARENT) NPMSGDLV(ASPARENT) PUBSCOPE(ASPARENT) SUBSCOPE(ASPARENT) PROXYSUB(FIRSTUSE) WILDCARD(PASSTHRU) MDURMDL( ) MNDURMDL( )

DEFINE TOPIC

ALTER TOPIC

DELETE TOPIC

DISPLAY TOPIC

Page 12: WMQ V7 Pub/Sub Introduction 李慧 lihui@cn.ibm.com IBM CDL MQ L2 support, April 2011

FRUIT

Resolving ASPARENT

Price

Fruit

Apples Oranges

Starting MQSC for queue manager TEST1.

DIS TPSTATUS(‘Price/Fruit’)AMQ8754: Display topic status details. TOPICSTR(Price/Fruit) ADMIN(FRUIT) MDURMDL(SYSTEM.DURABLE.MODEL.QUEUE) MNDURMDL(SYSTEM.NDURABLE.MODEL.QUEUE) DEFPSIST(NO) DEFPRTY(0) DEFPRESP(SYNC) DURSUB(NO) PUB(ENABLED) SUB(ENABLED) PMSGDLV(ALLDUR) NPMSGDLV(ALLAVAIL) RETAINED(NO) PUBCOUNT(0) SUBCOUNT(0) PUBSCOPE(ALL) SUBSCOPE(ALL)

DISPLAY TPSTATUS

Page 13: WMQ V7 Pub/Sub Introduction 李慧 lihui@cn.ibm.com IBM CDL MQ L2 support, April 2011

Alias Queues

APPLES

Price

Fruit

Apples Oranges

Starting MQSC for queue manager TEST1.

DEFINE TOPIC(APPLES) TOPICSTR(‘Price/Fruit/Apples’)

DEFINE QALIAS(PRICES) TARGTYPE(TOPIC) TARGET(APPLES)

MQPUT(PRICES)

PRICES

Page 14: WMQ V7 Pub/Sub Introduction 李慧 lihui@cn.ibm.com IBM CDL MQ L2 support, April 2011

FRUIT

Administration for Publishers

Price

Fruit

Apples Oranges

Starting MQSC for queue manager TEST1.

DIS TPSTATUS('Price/Fruit/+') TYPE(PUB) allAMQ8754: Display topic status details. TOPICSTR(Price/Fruit/Oranges) LPUBDATE(2008-02-26) LPUBTIME(16:50:44) ACTCONN(414D5143544553543120202020202020832AC44720005E02) NUMPUBS(3)AMQ8754: Display topic status details. TOPICSTR(Price/Fruit/Apples) LPUBDATE(2008-02-26) LPUBTIME(16:50:37) ACTCONN(414D5143544553543120202020202020832AC44720007601) NUMPUBS(1)

TOPIC attributes

DEFPRTYDEFPSISTDEFPRESPPUBPUBSCOPEPMSGDLVNPMSGDLV

MQOPEN‘Price/Fruit/Apples’

MQPUT

MQOPEN‘Price/Fruit/Oranges’

MQPUTMQPUTMQPUT

Connection ID links to DISPLAY CONN

Page 15: WMQ V7 Pub/Sub Introduction 李慧 lihui@cn.ibm.com IBM CDL MQ L2 support, April 2011
Page 16: WMQ V7 Pub/Sub Introduction 李慧 lihui@cn.ibm.com IBM CDL MQ L2 support, April 2011

MQOPEN‘Price/Fruit/Apples’

MQPUT

Configuring Behaviour on FailureTOPIC attributes

PMSGDLVNPMSGDLV

MQSUB‘Price/Fruit/+’

MQGET

MQSUB‘Price/Fruit/+’

MQGET

MQSUB‘Price/Fruit/+’MQSO_

DURABLE

MQGET FULL

MSGDLV Behaviour

ALL If one failure – no-one gets itALLDUR Any failure to a durable subscriber

– no-one gets it

ALLAVAIL Failures don’t affect the delivery to subscribers who can accept it

MQRC_PUBLICATION_FAILURE

TOPIC attribute defaults

PMSGDLV (ALLDUR)NPMSGDLV (ALLAVAIL)

Page 17: WMQ V7 Pub/Sub Introduction 李慧 lihui@cn.ibm.com IBM CDL MQ L2 support, April 2011

Creating administrative subscriptions

FRUIT

Price

Fruit

Apples Oranges

Starting MQSC for queue manager TEST1.

DEFINE SUB(APPLES.TO.Q1) TOPICSTR(‘Price/Fruit/Apples’) DEST(Q1)

MQGET(Q1)

DEFINE SUB

ALTER SUB

DELETE SUB

DISPLAY SUB

Page 18: WMQ V7 Pub/Sub Introduction 李慧 lihui@cn.ibm.com IBM CDL MQ L2 support, April 2011

Configuring managed destinations

FRUIT

Price

Fruit

Apples Oranges

Durable ModelDEFTYPE(PERMDYN)

Non-durable ModelDEFTYPE(TEMPDYN)

MQSUB‘Price/Fruit/+’MQSO_MANAGEDMQSO_DURABLEMQGET

TOPIC attributes

MDURMDL(SYSTEM.DURABLE.MODEL.QUEUE)MNDURMDL(SYSTEM.NDURABLE.MODEL.QUEUE)

SYSTEM.BASE.TOPIC

SYSTEM.MANAGED.DURABLE.47C42A83095D0220

Starting MQSC for queue manager TEST1.

DIS SUB(*)AMQ8096: WebSphere MQ subscription inquired. SUBID(414D5120544553543120202020202020832AC44720028105) SUB(Fruit Prices) TOPICSTR(Price/Fruit/+) DEST(SYSTEM.MANAGED.DURABLE.47C42A8304810220) DESTQMGR(TEST1) DESTCLAS(MANAGED) DURABLE(YES) SUBTYPE(API)

Page 19: WMQ V7 Pub/Sub Introduction 李慧 lihui@cn.ibm.com IBM CDL MQ L2 support, April 2011

Displaying a subscriptionMQSD.SubName

MQSD.ObjectNameMQSD.ObjectString

MQSO_WILDCARD_CHARMQSO_WILDCARD_TOPIC

MQSO_MANAGED or not

MQSUB hObj parameter

MQSD.SubCorrelId

MQSO_DURABLE or not

MQSD.SubUserData

MQSD.SelectionString

Page 20: WMQ V7 Pub/Sub Introduction 李慧 lihui@cn.ibm.com IBM CDL MQ L2 support, April 2011

Monitoring your Application subscriptions

FRUIT

Price

Fruit

Apples Oranges

DIS TPSTATUS('Price/Fruit/+') TYPE(SUB) ALLAMQ8754: Display topic status details. TOPICSTR(Price/Fruit/Oranges) SUBID(414D5120544553543120202020202020832AC44720013D07) SUBUSER(hughson) RESMDATE(2008-02-26) RESMTIME(18:53:35) LMSGDATE(2008-02-26) LMSGTIME(18:53:41) DURABLE(NO) ACTCONN(414D5143544553543120202020202020832AC44720013D05) NUMMSGS(2) SUBTYPE(API)AMQ8754: Display topic status details. TOPICSTR(Price/Fruit/Apples) SUBID(414D5120544553543120202020202020832AC44720013D07) SUBUSER(hughson) RESMDATE(2008-02-26) RESMTIME(18:53:35) LMSGDATE(2008-02-26) LMSGTIME(18:53:41) DURABLE(NO) ACTCONN(414D5143544553543120202020202020832AC44720013D05) NUMMSGS(2) SUBTYPE(API)

MQSUB‘Price/Fruit/+’MQGET

Connection ID links to DISPLAY CONN

Subscription ID links to DISPLAY SBSTATUSandDISPLAY SUB

TOPIC attributes

DURSUBSUBSUBSCOPEPROXYSUBWILDCARD

Page 21: WMQ V7 Pub/Sub Introduction 李慧 lihui@cn.ibm.com IBM CDL MQ L2 support, April 2011

Subscriptions – two perspectives

FRUIT

Price

Fruit

Apples Oranges

DIS TPSTATUS('Price/Fruit/+') TYPE(SUB) ALLAMQ8754: Display topic status details. TOPICSTR(Price/Fruit/Oranges) SUBID(414D5120544553543120202020202020832AC44720013D07) SUBUSER(hughson) DURABLE(NO) ACTCONN(414D5143544553543120202020202020832AC44720013D05) NUMMSGS(2) SUBTYPE(API)

DIS SBSTATUS SUBID(414D5120544553543120202020202020832AC44720AMQ8099: WebSphere MQ subscription status inquired. SUB(Fruit Prices) SUBID(414D5120544553543120202020202020832AC44720013D07) SUBUSER(hughson) ACTCONN(414D5143544553543120202020202020832AC44720013D05) DURABLE(NO) NUMMSGS(5) SUBTYPE(API)

MQSUB‘Price/Fruit/+’MQGET

Page 22: WMQ V7 Pub/Sub Introduction 李慧 lihui@cn.ibm.com IBM CDL MQ L2 support, April 2011

PUB/SUB API

PUB application

Topic Tree isolation

SUB application

Subscription operation options

Advanced task

Page 23: WMQ V7 Pub/Sub Introduction 李慧 lihui@cn.ibm.com IBM CDL MQ L2 support, April 2011

Publishing Application

MQOPEN a topic

MQOD describes a topic to publish to ObjectType

MQOT_Q for point-to-pointMQOT_TOPIC for publish

ObjectString/ObjectName

MQPUT a message

OpnOpts = MQOO_OUTPUT | MQOO_FAIL_IF_QUIESCING;MQOPEN( hConn, &ObjDesc, OpnOpts, &hObj, &CompCode, &Reason);MQPUT ( hConn, hObj, &MsgDesc, &pmo, strlen(pBuffer), pBuffer, &CompCode, &Reason);

MQOD ObjDesc = {MQOD_DEFAULT};

ObjDesc.ObjectType = MQOT_TOPIC;ObjDesc.Version = MQOD_VERSION_4;ObjDesc.ObjectString.VSPtr = “Price/Fruit/Apples”;ObjDesc.ObjectString.VSLength = MQVS_NULL_TERMINATED;

Page 24: WMQ V7 Pub/Sub Introduction 李慧 lihui@cn.ibm.com IBM CDL MQ L2 support, April 2011

Topic tree isolation

Price

Apples Oranges

strncpy(ObjDesc.ObjectName, “FRUIT.ANCHOR”, MQ_TOPIC_NAME_LENGTH);ObjDesc.ObjectString.VSPtr = “Apples”;ObjDesc.ObjectString.VSLength = MQVS_NULL_TERMINATED;

Price

Discount

Hursley

Market Stalls

FRUIT.ANCHOR

Fruit

Starting MQSC for queue manager TEST1.

DEFINE TOPIC(FRUIT.ANCHOR) TOPICSTR(‘Price/Fruit’)

DEFINE TOPIC(FRUIT.ANCHOR) TOPICSTR(‘Market Stalls/Hursley/Discount/Price/Fruit’)

?

Page 25: WMQ V7 Pub/Sub Introduction 李慧 lihui@cn.ibm.com IBM CDL MQ L2 support, April 2011

Subscribing Application

MQSUB verb

Subscription Descriptor (MQSD) describes the topic MQSD.ObjectString MQSD.ObjectName

Consume publications from the returned hObj when MQSO_MANAGED used

MQSUB ( hConn, &SubDesc, &hObj, &hSub, &CompCode, &Reason);

MQGET ( hConn, hObj, &MsgDesc, &gmo, strlen(pBuffer), pBuffer, &DataLength, &CompCode, &Reason);

MQSD SubDesc = {MQSD_DEFAULT};SubDesc.ObjectString.VSPtr = “Price/Fruit/Apples”;SubDesc.ObjectString.VSLength = MQVS_NULL_TERMINATED;SubDesc.Options = MQSO_CREATE | MQSO_MANAGED | MQSO_FAIL_IF_QUIESCING;

Page 26: WMQ V7 Pub/Sub Introduction 李慧 lihui@cn.ibm.com IBM CDL MQ L2 support, April 2011

Subscription operation options

Operation – choose at least one of MQSO_CREATE MQSO_RESUME MQSO_ALTER

Combining them MQSO_CREATE + MQSO_RESUME

Avoids MQRC_SUB_ALREADY_EXISTS

MQSO_CREATE + MQSO_ALTER

Page 27: WMQ V7 Pub/Sub Introduction 李慧 lihui@cn.ibm.com IBM CDL MQ L2 support, April 2011

Advanced tasks

Durable subscriptions

Subscription destinations

Wildcards

Subscription expiration

Publication Selection

Retained Publications

Security on the API

Publication Contents

Selection of specific publications

Page 28: WMQ V7 Pub/Sub Introduction 李慧 lihui@cn.ibm.com IBM CDL MQ L2 support, April 2011

Publish/Subscribe Topologies

WMQ V6 publish/subscribe networks based on hierarchies All brokers linked in parent/child tree

WMB publish/subscribe networks based on hierarchies of collectives All systems in a collective are connected to each other (mesh) Also has "clones"

New product built on hierarchies and clusters With interoperability to other pub/sub systems through hierarchies

Clusters are built on existing WMQ cluster technology Cluster can be defined independently of any existing cluster used for queuing Behaves in a similar way to WMB collective

Design gives Scalability Availability Ease of administration

Page 29: WMQ V7 Pub/Sub Introduction 李慧 lihui@cn.ibm.com IBM CDL MQ L2 support, April 2011

Hierarchies

QMA

QMB

QMC

QMD

Similar to WMQ v6 hierarchies Interoperable with them

Very scalable

Network split if middle qmgr fails Highly available hub and spokes

Definitions QMB – ALTER QMGR PARENT(QMA) QMC – ALTER QMGR PARENT(QMA) QMD – ALTER QMGR PARENT(QMC)

No child attribute specified on parent

Channels must exist Transmit queues of same name as remote queue manager

Uses TOPIC objects No cluster topics required Be careful using clusters as hierarchy transport

ALTER QMGR PSMODE(ENABLED)

PUB(/global/sports/football/news)

SUB(/global/sports/*)

PSUBQMB

PSUBQMA

PSUBQMC

Page 30: WMQ V7 Pub/Sub Introduction 李慧 lihui@cn.ibm.com IBM CDL MQ L2 support, April 2011

Pub/Sub Clusters

Similar to WebSphere Message Broker Collectives

Availability – Direct links between qmgrs

Benefits of traditional clusters Simplified administration

Useful for Pub/Sub Clusters Non-disruptive add/remove of qmgrs

Workload balancing NOT useful for Pub/Sub Clusters

Cluster channels Same CLUSSDR/CLUSRCVR model Flexible connectivity All to all connectivity Overlapping clusters

No Pub/Sub through gateway queue managers Use Hierarchies for linking Pub/Sub Clusters

Cluster topics Required for publishing to remote Pub/Sub Cluster queue managers

Cluster queues Can be used in traditional way in a Pub/Sub Cluster

PUB

SUB

SUBSUB

Page 31: WMQ V7 Pub/Sub Introduction 李慧 lihui@cn.ibm.com IBM CDL MQ L2 support, April 2011

Publish/Subscribe in Combined Hierarchy & Clusters

QM

QM QM

QM QM

QM

QMQM

QM

QM

QM

QM

QM

Page 32: WMQ V7 Pub/Sub Introduction 李慧 lihui@cn.ibm.com IBM CDL MQ L2 support, April 2011

Summary – Pub/Sub with WebSphere MQ V7

Concept What’s pub/sub

API Pub application Topic tree isolation Sub application

New Feature Pub/Sub engine Avaiable on zos Enhanced Admin Native MQ pub/sub API

ADMIN

Topic string/Topic Tree Topic,Subsription object Dis tpstatus, Dis conn

Topology

Hierarchies Cluster

Page 33: WMQ V7 Pub/Sub Introduction 李慧 lihui@cn.ibm.com IBM CDL MQ L2 support, April 2011

More Information about Pub/Sub

Info center: Publish⁄Subscribe User's Guide

Developerwork article: http://www.ibm.com/developerworks/cn/websphere/library/techarticles/0904_xuran_mq/

Page 34: WMQ V7 Pub/Sub Introduction 李慧 lihui@cn.ibm.com IBM CDL MQ L2 support, April 2011

OpenMic session introduction / Survey

Frequency: Bi-Monthly

Products:

WebSphere MQ WebSphere Message Broker WebSphere Application

Server

Candidate topics survey for year 2011

MQ

MQ Introduction MQ Cluster Deploy & running MQ client

on WAS.

WAS

Advanced security configuration Enhanced Admin

Session management Data source and connection

pooling

Page 35: WMQ V7 Pub/Sub Introduction 李慧 lihui@cn.ibm.com IBM CDL MQ L2 support, April 2011

Q & A

Page 36: WMQ V7 Pub/Sub Introduction 李慧 lihui@cn.ibm.com IBM CDL MQ L2 support, April 2011