MQ Dist and zOS
MQ Dist and zOS
Insert
Custom
Session
QR if
Desired.
Introduction
• So there are differences, and that is what this presentation will cover
• Will base this on V8
Code Streams
• In the early days, some code was written for one and then “ported”
‒ In particular, the channel code
‒ Meant double-fixing, and re-porting for each release
• Setting up
• Application Programming
• Administration
How this presentation works
• A z/OS-unique feature
‒ Multiple queue managers can see the same queue
‒ Continuous processing of messages from a queue even when one LPAR fails
• MQCONN/MQCONNX
‒ Verbs not required for CICS transactions
MQHC_DEF_HCONN can be used for subsequent verbs in applications
‒ ConnTag is available to control serialization
An application (especially an MCA) can tell if another instance of itself is already running
On either the same local qmgr or any other in the QSG
‒ Group connection to QSG
• MQDISC
‒ Always recommended
• MQOPEN
‒ Default dynamic queue names begin with CSQ.* or AMQ.*
‒ Distributed can open multiple queues simultaneously via Distribution List
Publish/Subscribe preferred cross-platform model
• MQCLOSE
‒ No platform differerences in practice
• MQSET
‒ Follows the same rules as MQSC attributes for platforms
• MQINQ
‒ Follows the same rules as MQSC attributes for platforms
API - Messages
• MQPUT/MQPUT1
‒ Messages can be automatically segmented
But Message groups are cross-platform
‒ Distributed supports "Reference messages" which can avoid putting large
amounts of data on a queue
• MQGET
‒ z/OS has "get with signal" to asyncronously notify app when messages appear
MQCB is now preferred cross-platform model
‒ z/OS has MARK_SKIP_BACKOUT for simpler processing of poison messages
Bad messages can be moved to an application-specific DLQ while backing out other
resource changes
‒ Distributed can get portions of messages via segmentation
• MQSUB
‒ No platform differences
• MQSUBRQ
‒ No platform differences
API – Flow control
• MQCB
‒ Definition of the callback function in MQCBD varies by environment
‒ eg C function pointer, CICS program name
• MQCTL
‒ Not in IMS adapter
‒ On z/OS, apps must be authorized to use USS
• MQSTAT
‒ Client applications only
‒ But usable regardless of server platform
API - Properties
• MQDLTMP
• MQBUFMH
• MQCRTMH
• MQDLTMH
• MQMHBUF
• MQSETMP
• MQINQMP
• No platform differences
API - Transactions
• MQBEGIN
‒ Only available on Distributed
‒ z/OS always has a transaction manager available
• MQCMIT
‒ On all platforms when not running under external TM
• MQBACK
‒ On all platforms when not running under external TM
• Startup
‒ CSQZPARM is assembled/linked and other inputs run during startup
Reset configuration, define default objects etc
‒ On Distributed, standard objects are created by qmgr creation and updated
during migration
Object Attributes – Queue Manager
• z/OS only
‒ ACTCHL, MAXCHL
‒ ADOPTCHK/ADOPTMCA
‒ CHIDISPS, CHIADAPS
‒ DNSGROUP, DNSWLM
‒ EXPIRYINT
‒ GROUPUR
‒ IGQ, IGQAUT, IGQUSER
‒ LSTRTMR,LU62ARM, LU62CHL, OPORTMIN, OPORTMAX, RCVTMIN, RCVTTYPE, TCPNAME,
TCPKEEP, TCPSTACK
‒ SCYCASE
‒ SSLTASKS
‒ TRAXSTR, TRAXTBL
• Distributed only
‒ ACCTCONO, ACCTINT, ACCTMQI, ACCTQ
‒ ACTIVREC
‒ CCSID
‒ CERTVPOL
‒ CHAD
‒ SCHINIT, SCMDSERV
Object Attributes – Queues and Channels
• Channel
‒ CONNAME 48 characters on z/OS, 264 elsewhere
‒ Format of exit names and exit data is platform-specific
‒ STATCHL Distributed only before V8
Queue Manager operations
• Message Expiry
‒ z/OS has explicit config for timing of task to remove expired messages
‒ Distributed has a similar task but no documented configuration
• Storage Scavengers
‒ z/OS has tasks to release bufferpool and pageset storage
‒ Distributed will release queue file storage at intervals
• Queue Indexing
‒ z/OS has explicit indexes on queues to assist with retrieval patterns
‒ Distributed has hashing to perform similar role but no documented configuration
Intercommunication and Clusters
• SSL/TLS configuration
‒ Distributed (mostly) qmgr uses gskit toolkit
‒ z/OS qmgr uses System SSL
‒ Can lead to discrepancies in crypto algorithms supported
‒ Different versions support different algorithms
‒ And there may also be client-related discrepancies
Java programs rely on JSSE implementations
.Net programs (from V8) can use Microsoft inbuilt implementations
NSS client uses OpenSSL
‒ There is a good common overlap between all of these, but not identical sets
Security (2) – Access Control
• z/OS
‒ Uses system-provided interface for authorization
SAF is common API to RACF, Top Secret, ACF2
‒ Has to work with the 4 permissions available in SAF
‒ No distinction between PUT and GET
Often alias queues are used to isolate permissions
‒ Granular control of "impersonation" (setting context, alt-user)
‒ One operation may result in several authorization queries
• Distributed
‒ MQ-provided authorisation interface
Implemented in the OAM
‒ Many permissions on objects
‒ Global controls on impersonation
If you have authority to use alt-user, there are no constraints on which user
‒ Well-known "mqm" id for full authority
Commands
• DISPLAY SYSTEM
• MOVE QLOCAL
‒ V8 has dmpmqmsg
• DISPLAY QMSTATUS
‒ Some items have z/OS specific commands like DISPLAY CMDSERV
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.
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.
Monday Tuesday Wednesday Thursday Friday
17060: Understanding MQ 17051: Application Programming 16544: Why Shouldn't I Be Able
08:30
Deployment Choices and Use with MQ Verbs [z/OS & Distributed] To Open This Queue? MQ and
Cases CICS Security Topics
Room: Willow B
17036: Introduction to MQ - 17052: MQ Beyond the Basics - 17054: Nobody Uses Files Any 17057: Not Just Migrating, but
Can MQ Really Make My Advanced API and Internals More do They? New Technologies Picking up New Enhancements
Life Easier? [z/OS & Overview [z/OS & Distributed] for Old Technology, File Processing as You Go - We've Given You
Distributed] in MQ MFT and IIB [z/OS & the Shotgun, You Know Where
10:00
17041: First Steps with IBM 16732: MQ V8 Hands- on Labs! 17046: Paging Dr. MQ - Health 17053: MQ & DB2 – MQ Verbs
Integration Bus: Application MQ V8 with CICS and COBOL! Check Your Queue Managers to in DB2 & InfoSphere Data
11:15
Integration in the New MQ SMF Labs! Ensure They Won't Be Calling in Replication (Q Replication)
World [z/OS & Distributed] Room: Redwood Sick! [z/OS] Performance [z/OS]
17037: All About the New 17034: MQ Security: 17040: Using IBM WebSphere 17062: End to End Security of My
MQ V8 [z/OS & Distributed] New V8 Features Deep Application Server and IBM MQ Queue Manager on z/OS [z/OS]
01:45
17042: What's New in IBM 17065: Under the hood 17043: The Do’s and Don’ts of 17039: Clustering Queue Managers
Integration Bus [z/OS & of IBM Integration Bus IBM Integration Bus Performance - Making Life Easier by Automating
03:15
Distributed] on z/OS - WLM, SMF, [z/OS & Distributed] Administration and Scaling for
AT-TLS, and more Performance [z/OS & Distributed]
[z/OS]
17059: IBM MQ: Are z/OS 17055: What's the Cloud 17044: But Wait, There's More 17068: Monitoring and Auditing MQ
& Distributed Platforms like Going to Do to My MQ MQ SMF Data Now?!?! - [z/OS & Distributed]
04:30
Oil & Water? [z/OS & Network? Monitoring your Channels Using
Distributed] V8's New Chinit SMF Data [z/OS]