SlideShare a Scribd company logo
Capitalware's MQ Technical Conference v2.0.1.6
MQ Service Provider for z/OS Connect
(And some other new stuff)
Matt Leming – lemingma@uk.ibm.com
MQ Development
Capitalware's MQ Technical Conference v2.0.1.62 © 2016 IBM Corporation
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.
Capitalware's MQ Technical Conference v2.0.1.63 © 2016 IBM Corporation
Agenda
 MQ Service Provider for z/OS Connect
 What is z/OS Connect?
 What is the MQ Service Provider?
 What might it look like?
 Other new stuff
 JMS enhancements
 Enhancements to sub-system connectivity
Capitalware's MQ Technical Conference v2.0.1.6
What is z/OS Connect?
Capitalware's MQ Technical Conference v2.0.1.65 © 2016 IBM Corporation
It’s about getting REST and JSON into your mainframe environment in a way that
enables you to best take advantage of the assets that exist there:
Mobile / Cloud
Ecosystem
CICS
IMS
Batch
DB2
REST – Representational State Transfer …
the use of HTTP URLs that map to a ‘service’,
such as ‘query account’ or ‘update data’
JSON – JavaScript Object Notation …
a standard of representing data as a set of
name/value pairs. This is passed back and
forth along with REST request/responses
Where z/OS
Connect fits
z/OS
Connect
Other
z/OS Connect – what is it?
 WebSphere Liberty Profile Server
 Function IBM wrote to run in Liberty
Profile
Capitalware's MQ Technical Conference v2.0.1.66 © 2016 IBM Corporation
 Original free version: z/OS Connect V1
 Available since 2014
 Provides
 Basic REST/JSON support
 A basic REST API for discovering and managing exposed services
 Capable of performing data conversion from JSON to the data format required by the
backend configured service
 Optional authorization checking using SAF to allow or deny users access to z/OS
Connect services
 Optional activity recording using SMF to track requests by date and time, bytes sent
and received, and response time
Two versions!
Capitalware's MQ Technical Conference v2.0.1.67 © 2016 IBM Corporation
 z/OS Connect EE V2
 Available since December 2015
 Chargeable
 Continuous delivery approach to enhancing product
 Based on V1 with enhancements…
 Enhancements over V1
 More advanced REST functionality
 Proper use of HTTP verb and URL to define API
 API Editor
 Define APIs, described using Swagger 2
 Map API down onto underlying service
– body, header and query parameters
– pass-through, redaction and default values
 Deploy APIs plus artefacts to runtime using single file (AAR – Api ARchive)
 Consistent tooling and API definition for backend systems: CICS, IMS etc
Two versions!
Capitalware's MQ Technical Conference v2.0.1.68 © 2016 IBM Corporation
z/OS Connect EE tooling
Capitalware's MQ Technical Conference v2.0.1.69 © 2016 IBM Corporation
Liberty Profile for z/OS
z/OS Connect
Servlet
CICS
IMS
DB2
Interceptors
Service Providers
Data Transform
1
4
RESTful
JSON
3
5
6
7
8
z/OS Connect is software function that
runs in Liberty Profile for z/OS
z/OS Connect is described and
configured in the Liberty
server.xml file
z/OS Connect is designed to accept
RESTful URIs with JSON data
payloads
A ‘Service Provider’ is software
that provides the connectivity to
the backend system
server.xml
2
One part of z/OS Connect is
a servlet that runs in Liberty
Profile z/OS.
z/OS Connect provides the ability
to transform JSON to the layout
required by backend
‘Interceptors’ are callout points
where software can be invoked to
do things such as SAF
authorization and SMF activity
recording
Backend systems supported are
CICS, IMS, Batch, and DB2
1
2
3
4
5
6
7
8
Batch
Summary in one picture
(z/OS Connect V1 shown)
Capitalware's MQ Technical Conference v2.0.1.6
What is the
MQ Service Provider?
Capitalware's MQ Technical Conference v2.0.1.611 © 2016 IBM Corporation
Statement of general direction
 IBM intends that a future release of IBM MQ for z/OS will provide support
for both z/OS Connect and z/OS Connect EE
 https://ibm.biz/MQzOSConnectSOD
Capitalware's MQ Technical Conference v2.0.1.612 © 2016 IBM Corporation
The MQ Service Provider
 Free of charge z/OS Connect service provider that allows existing services
that are fronted by MQ to be accessed via a RESTful front end
 Both V1 and EE supported
 Same capabilities in both versions
 Clients need have no knowledge of MQ
Capitalware's MQ Technical Conference v2.0.1.613 © 2016 IBM Corporation
Service types
 Each URL in z/OS Connect maps to a service
 With the MQ Service Provider there are two different types of service
 Two way services
 One way services
 A two way service provides request/reply messaging:
1. Client issues HTTP POST with some payload (JSON)
2. MQ Service Provider sends payload (optional transformation) to one MQ queue
3. Back end application processes payload and puts response on reply queue
4. MQ Service Provider gets response (optional transformation) and sends it to client as
the body of the HTTP POST response
 A one way service exposes standard MQ verbs against a single destination
 HTTP POST == MQPUT (queue and topic)
 HTTP DELETE == MQGET (queue)
 HTTP GET == MQGET (browse) (queue)
 Allows more advanced interactions with MQ
Capitalware's MQ Technical Conference v2.0.1.614 © 2016 IBM Corporation
Two way example
 HTTP POST to https://<hostname>:<port>/mq40
 All MQ related information is held in mqzOSConnectService element
 Sensible defaults
 Overridable via HTTP headers, e.g. ibm-mq-gmo-waitInterval
 Builds on the MQ messaging provider in Liberty. Uses JMS
<zosConnectService id="zosconnMQ40"
invokeURI="/mq40"
serviceName="mq40"
serviceRef="mq40" />
<mqzOSConnectService id="mq40"
connectionFactory="jms/cf1"
destination="jms/twoWayRequestQ"
waitInterval="10000"
replyDestination="jms/twoWayResponseQ"/>
Provided by
z/OS Connect
server.xml
Provided by MQ
Service Provider
Capitalware's MQ Technical Conference v2.0.1.615 © 2016 IBM Corporation
Example two-way service
 Insurance quote service which takes a request from an MQ queue and
sends a response to another queue
 COBOL request
 COBOL response
 So COBOL -> JSON conversion needed using built in tooling
Capitalware's MQ Technical Conference v2.0.1.616 © 2016 IBM Corporation
Example two-way service - configuration
<zosConnectDataXform id="xformJSON2Byte"
bindFileLoc="${XFORM_ROOT}/bindfiles"
bindFileSuffix=".bnd"
requestSchemaLoc="${XFORM_ROOT}/json"
requestSchemaSuffix=".json"
responseSchemaLoc="${XFORM_ROOT}/json"
responseSchemaSuffix=".json" />
<zosConnectService id="zosconnIQ"
invokeURI="/iq"
serviceName=“iq"
serviceRef=“iq"
dataXformRef="xformJSON2Byte" />
<mqzOSConnectService id=“iq"
connectionFactory="jms/cf1"
destination="jms/iqRequestQ"
waitInterval="10000"
replySelection=“msgIDToCorrelID"
replyDestination=“iqResponseQ"
receiveTextCCSID="37" />
Capitalware's MQ Technical Conference v2.0.1.617 © 2016 IBM Corporation
Example two-way service – request
Capitalware's MQ Technical Conference v2.0.1.618 © 2016 IBM Corporation
Example two-way service – request on
queue
Message on queue
MQ Service Provider
waiting for response
Capitalware's MQ Technical Conference v2.0.1.619 © 2016 IBM Corporation
Example two-way service – response on
queue
Capitalware's MQ Technical Conference v2.0.1.620 © 2016 IBM Corporation
Example two-way service – response
Capitalware's MQ Technical Conference v2.0.1.621 © 2016 IBM Corporation
Delivery plans
 MQ Service Provider for z/OS Connect
 Will be provided in USS component of a future version of MQ
 Will be supported with MQ 8 and later queue managers
 Will also be made available on Fix Central
 In case you don’t have the latest version of MQ available
 Only contains the MQ Service Provider function. You need to provide z/OS
Connect (V1 or V2)
 Code consists of a jar file, and a Liberty feature manifest
Capitalware's MQ Technical Conference v2.0.1.622 © 2016 IBM Corporation
Beta version available now
 If you want to join the MQ beta then please let me know
Capitalware's MQ Technical Conference v2.0.1.6
JMS Enhancements
Capitalware's MQ Technical Conference v2.0.1.624 © 2016 IBM Corporation
What is JMS and why do I want it?
 Java Message Service
 Standard API for interacting with messaging middleware such as MQ
 Simple support for interacting with both queues and topics
 Widely adopted and used throughout the industry
 Most recent version is JMS 2
 Released in 2013
 Mainly focused on ease of use (new JMSContext API)
 Backwards compatible
 Some minor functionality added
 Delivery delay being the most notable
Capitalware's MQ Technical Conference v2.0.1.625 © 2016 IBM Corporation
What Java support was there for MQ on z until recently?
 JMS 1.* supported since MQ v5
 JMS 2.0 support added in MQ v8
 Supported on z/OS in
 z/WAS, including Liberty
 Batch
 In CICS
 MQ base classes for Java supported in OSGi JVM Server
 MQ specific Java API
 In IMS
 No Java support with MQ at all
Capitalware's MQ Technical Conference v2.0.1.626 © 2016 IBM Corporation
What has been added?
 Support for MQ JMS in CICS 5.3 and 5.2 OSGi environments
 Works with MQ 7.1 and later
 Depending on environment some APARs needed
 Since 1Q 2015
 Support for MQ JMS in IMS 13
 Works with MQ 8 and later
 Requires MQ APARs if using MQ 8
 Since 4Q 2015
 Support for MQ JMS in CICS 5.3 Liberty environments New!
Capitalware's MQ Technical Conference v2.0.1.627 © 2016 IBM Corporation
What is CICS Liberty JVM Server?
 For a number of CICS release support has been provided for running
Liberty inside the CICS address space
 Only a subset of JEE capability supported
 Integration provided with native CICS capabilities
 In some cases slight adjustments to programming model/the way things work
 CICS V5.3 +PI58375 changes things, two sorts of CICS Liberty introduced
 Liberty Standard
 Liberty Integrated
 Liberty Standard: FULL Liberty support. No CICS integration
 Perfect for ‘lift and shift’
 Liberty Integrated: Same capability as provided before, subset of JEE
integrated with CICS capabilities
 Perfect when needing to integrate JEE with CICS transactions
 Subset continuing to expand
Capitalware's MQ Technical Conference v2.0.1.628 © 2016 IBM Corporation
CICS Liberty
JVM
JMS
MQ
RA
What does this mean with MQ?
 Allow CICS Liberty to use MQ resource adapter
 Just like normal Liberty
 Run existing Liberty messaging apps (eg MDBs) inside CICS
 Connections to MQ supported using either client or bindings mode
 Some restrictions depending on environment
 Prereqs CICS V5.3 +PI58375 + MQ 9.0.1 RA
MSTR
CHIN
External
MQ
Capitalware's MQ Technical Conference v2.0.1.629 © 2016 IBM Corporation
CICS Liberty
JVM
JMS
MQ
RA
CICS Liberty Standard JMS Support
 Bindings (RRS) and/or client (XA) connections supported
 Bindings not allowed to CICS connected MQ
MSTR
CHIN
External
MQ
Client
Client
Bindings
Capitalware's MQ Technical Conference v2.0.1.630 © 2016 IBM Corporation
CICS Liberty
JVM
JMS
MQ
RA
CICS Liberty Integrated JMS Support
 Client (XA) connections only
MSTR
CHIN
External
MQ
Client
Client
Capitalware's MQ Technical Conference v2.0.1.631 © 2016 IBM Corporation
Where can I find out more?
 CICS
 MQ 8 KC: https://ibm.biz/MQJMSinCICSOSGiKC8
 MQ 7.1 KC: https://ibm.biz/MQJMSinCICSOSGiKC71
 Blog articles:
 http://ibm.biz/MQJMSinCICSOSGiBlog
 http://ibm.biz/MQJMSinCICSOSGiJNDI
 https://developer.ibm.com/cics/2016/07/12/java-ee-7-in-cics/
 IMS
 MQ 8 KC: https://ibm.biz/MQJMSinIMSKC
 Blog article: https://ibm.biz/MQJMSinIMSBlog
Capitalware's MQ Technical Conference v2.0.1.632 © 2016 IBM Corporation
CICS Liberty
JVM
JMS
MQ
RA
What is still to come?
 Statement of direction: IBM intends to deliver additional Java EE 7
components and technologies for the CICS TS hosted WebSphere Liberty
profile through continuous delivery of new features in the coming months.
These additional components and technologies are intended to include
support for Java EE 7 Web Profile features, support for JMS 2.0 with IBM
MQ for z/OS, and the ability to LINK from a CICS TS COBOL program to a
CICS TS hosted Liberty application
 https://ibm.biz/MQCICSWLPSOD
MSTR
CHIN
External
MQ
Bindings
Capitalware's MQ Technical Conference v2.0.1.6
Enhanced sub-system
connectivity
Capitalware's MQ Technical Conference v2.0.1.634 © 2016 IBM Corporation
MQ Explorer is now part of Aqua
 https://developer.ibm.com/mainframe/products/downloads/
Capitalware's MQ Technical Conference v2.0.1.635 © 2016 IBM Corporation
CICS Adapter enhancements
 New in CICS 5.4, currently in open beta
Capitalware's MQ Technical Conference v2.0.1.636 © 2016 IBM Corporation
What we have today
 CICS CKQC transaction controls the MQCONN definition and CKTI
transactions
 E.g. “CKQC START” – start connection to MQ
 Use the INITQNAME parameter on the MQCONN definition to automatically
start a single instance of CKTI
 In order to start more than one instance of the CKTI transaction the user
enters
 “CKQC STARTCKTI CSQ4SAMP.INITIATION.QUEUE”
 At
 A CICS terminal
 An MVS console
 Alternatively write an application program that links to program DFHMQSSQ
 etc
Capitalware's MQ Technical Conference v2.0.1.637 © 2016 IBM Corporation
Problems with today’s environment
 If the MQCONN is restarted all transactions accessing MQ queues are
terminated
 When the connection is re-established the transaction associated with the
INITPARM parameter on the MQCONN is restarted automatically
 Any user initiated CKTI transactions must be manually restarted
 The userid associated with the new CKTI transaction is that of the user
issuing the restart request not the original user
 The default userid associated with the transaction retrieving the application
message is now that of the user that issued the restart request.
 Cannot stop the MQ Bridge transaction without stopping / restarting the MQ
connection
Capitalware's MQ Technical Conference v2.0.1.638 © 2016 IBM Corporation
What is changing?
 New MQMONITOR resource added
 Allows an associated transaction which monitors/services an MQ queue to
be started/restarted automatically when the connection to the queue
manager is made
 The transaction is automatically stopped when the queue manager is
disconnected
 Useful for
 CICS trigger monitor/bridge transactions
 Any other transaction that is dependant on MQ connectivity
 An MQMONITOR resource is dynamically created if you specify the
MQCONN INITQNAME attribute
 So same approach used throughout
Capitalware's MQ Technical Conference v2.0.1.639 © 2016 IBM Corporation
Resource definition
 Autostart: whether started automatically when connected to MQ
 Transaction: monitoring transaction to start, defaults to CKTI
 MONUserid: userid used to start the monitoring transaction
 MONData: is arbitrary data that can be passed to the monitoring transaction
 Userid: used by the monitoring transaction for any application transactions that it starts (e.g.
when CKTI starts another transaction)
Capitalware's MQ Technical Conference v2.0.1.640 © 2016 IBM Corporation
MQMONITOR
Autostart(YES)
Transaction(CKTI)
Qname(MY.INITQ)
MONUserid(MATTL)
Userid(PETES)
MQMONITOR
Autostart(YES)
Transaction(CKTI)
Qname(MY.INITQ)
MONUserid(MATTL)
Userid(PETES)
A pictorial explanation!
MQCONN
MQMONITOR
Autostart(YES)
Transaction(CKTI)
Qname(MY.INITQ)
MONUserid(MATTL)
Userid(PETES)
CKTI
MQ
MY.INITQ MY.REALQ
UTRN
1) Connects
2) Starts
3) EXEC CICS START
TRANSID(CKTI)
USERID(MATTL)
4) Get
message
6) Get
message
5) EXEC CICS START
TRANSID(UTRN)
USERID(PETES)
The monitor
transaction
The application
transaction
Capitalware's MQ Technical Conference v2.0.1.642 © 2016 IBM Corporation
CEMT SET MQCONN CONNECTED
Capitalware's MQ Technical Conference v2.0.1.643 © 2016 IBM Corporation
IMS MQ Connection
 IMS V13 added Destination descriptor of type MQSERIES
 Use on ALT IOPCB
 Configure in OTMA descriptor in DFSYDTx IMS PROCLIB instead of coding
DFSYPRX0 or DFSYDRU0 exits
 TYPE=MQSERIES contains parms to set MQMD values such as
 MQRTQ ReplyToQueue
 MQMSGID
 MQCORREL
 MQPERST
 MQFORMAT
 APAR PI62339 (V13) PI64588 (V14) add MQSTR to allowable formats
Capitalware's MQ Technical Conference v2.0.1.644 © 2016 IBM Corporation
DB2 MQ Connection
 DB2 Stored Procedure Address Spaces (SPAS) connect to MQ using RRS
as a transaction coordinator
 Each MQ operation uses a new RRS context
 Each RRS context has a separate thread information anchored from ACE
 ECSA footprint of ~2kB per thread
 MQ introduced ACELIM ZPARM to limit the number of ACEs and so ECSA
consumed
 Initial implementation: ‘protect the LPAR’
 Not MQ applications, which will get connection failures
 PI48417 MQ V8, PI55066 MQ V7.1 substantially improve queue manager
toleration and recovery when the limit is reached
Capitalware's MQ Technical Conference v2.0.1.645 © 2016 IBM Corporation
Summary
 MQ Service Provider for z/OS Connect
 What is z/OS Connect?
 What is the MQ Service Provider?
 What might it look like?
 Other new stuff
 JMS enhancements
 Enhancements to sub-system connectivity
Capitalware's MQ Technical Conference v2.0.1.646 © 2016 IBM Corporation
Questions & Answers

More Related Content

PDF
VMware vSphere5.1 Training
PPTX
IBM MQ Series For ZOS
PDF
z/OS 2.3 HiperSockets Converged Interface (HSCI) support
PPTX
.Net platform .Net core fundamentals
PPTX
Virtual desktop infrastructure
PPTX
REST APIs and MQ
PDF
Websphere MQ (MQSeries) fundamentals
PDF
Docker 101
VMware vSphere5.1 Training
IBM MQ Series For ZOS
z/OS 2.3 HiperSockets Converged Interface (HSCI) support
.Net platform .Net core fundamentals
Virtual desktop infrastructure
REST APIs and MQ
Websphere MQ (MQSeries) fundamentals
Docker 101

What's hot (20)

PDF
IBM MQ Basics
PDF
BizTalk Server- Schema
PPTX
SpringBoot with MyBatis, Flyway, QueryDSL
PDF
Infrastructure as Code
PDF
What's new in MQ 9.1.* on z/OS
PPTX
IBM MQ Overview (IBM Message Queue)
PDF
Dissecting the rabbit: RabbitMQ Internal Architecture
PDF
Alphorm.com Support de la formation Vmware Esxi 6.0
PPT
IBM Websphere MQ Basic
PPTX
VMware vSphere technical presentation
PPT
IBM WebSphere MQ Introduction
PPTX
VMware Advance Troubleshooting Workshop - Day 5
PDF
Secure Kafka at scale in true multi-tenant environment ( Vishnu Balusu & Asho...
PDF
Java spring framework
PPTX
IBM DataPower Gateways - What's new in 2016 v7.5.2
PPTX
Introduction to Spring Boot
PDF
z/OS V2.4 Preview: z/OS Container Extensions - Running Linux on Z docker cont...
PDF
An Introduction to the Message Queuing Technology & IBM WebSphere MQ
PPTX
Deploying and managing IBM MQ in the Cloud
PPTX
Dependency injection ppt
IBM MQ Basics
BizTalk Server- Schema
SpringBoot with MyBatis, Flyway, QueryDSL
Infrastructure as Code
What's new in MQ 9.1.* on z/OS
IBM MQ Overview (IBM Message Queue)
Dissecting the rabbit: RabbitMQ Internal Architecture
Alphorm.com Support de la formation Vmware Esxi 6.0
IBM Websphere MQ Basic
VMware vSphere technical presentation
IBM WebSphere MQ Introduction
VMware Advance Troubleshooting Workshop - Day 5
Secure Kafka at scale in true multi-tenant environment ( Vishnu Balusu & Asho...
Java spring framework
IBM DataPower Gateways - What's new in 2016 v7.5.2
Introduction to Spring Boot
z/OS V2.4 Preview: z/OS Container Extensions - Running Linux on Z docker cont...
An Introduction to the Message Queuing Technology & IBM WebSphere MQ
Deploying and managing IBM MQ in the Cloud
Dependency injection ppt
Ad

Viewers also liked (7)

PPTX
CICS Transaction Gateway V9.1 Overview
PDF
HHM-3481: IBM MQ for z/OS: Enhancing Application and Messaging Connectivity ...
PDF
Understanding and Using Client JBoss A-MQ APIs
PPTX
New Tools and Interfaces for Managing IBM MQ
PDF
Where is My Message
PPTX
z/OS Connect Enterprise Edition V2.0.0.0 Technical Overview
PPS
Systemz Security Overview (for non-Mainframe folks)
CICS Transaction Gateway V9.1 Overview
HHM-3481: IBM MQ for z/OS: Enhancing Application and Messaging Connectivity ...
Understanding and Using Client JBoss A-MQ APIs
New Tools and Interfaces for Managing IBM MQ
Where is My Message
z/OS Connect Enterprise Edition V2.0.0.0 Technical Overview
Systemz Security Overview (for non-Mainframe folks)
Ad

Similar to MQ Support for z/OS Connect (20)

PDF
IBM MQ for z/OS The Latest and Greatest Enhancements
PPTX
Biztalk Server 2010: Introdução
PDF
What's New in IBM MQ - Version 8
DOCX
Wmq wmb dist migration v1 030310
DOC
WCF tutorial
PPT
Session 1: The SOAP Story
PDF
What's New in IBM Messaging
PDF
MQ Guide France - What's new in ibm mq 9.1.4
PPT
20090213 Friday Food Croslocis
PPT
20090213 Friday Food croslocis
PDF
What's new in MQ 9.1 on z/OS
PPTX
What's new with MQ on z/OS 9.3 and 9.3.1
PPT
Enterprise Software Architecture
PDF
SoCal User Group Meeting 2013-05-06
ODP
SHARE 2014, Pittsburgh IBM Mobile Pricing
ODP
SHARE 2014, Pittsburgh IBM Mobile Pricing
PDF
Pivotal Cloud Foundry 2.5: A First Look
DOCX
Integration Approach for MES
PPTX
Net Services
PDF
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
IBM MQ for z/OS The Latest and Greatest Enhancements
Biztalk Server 2010: Introdução
What's New in IBM MQ - Version 8
Wmq wmb dist migration v1 030310
WCF tutorial
Session 1: The SOAP Story
What's New in IBM Messaging
MQ Guide France - What's new in ibm mq 9.1.4
20090213 Friday Food Croslocis
20090213 Friday Food croslocis
What's new in MQ 9.1 on z/OS
What's new with MQ on z/OS 9.3 and 9.3.1
Enterprise Software Architecture
SoCal User Group Meeting 2013-05-06
SHARE 2014, Pittsburgh IBM Mobile Pricing
SHARE 2014, Pittsburgh IBM Mobile Pricing
Pivotal Cloud Foundry 2.5: A First Look
Integration Approach for MES
Net Services
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...

More from Matt Leming (10)

PDF
533-MigratingYourMQIApplicationsToJMS.pdf
PPTX
IBM MQ Whats new - up to 9.3.4.pptx
PPTX
Going Deep with MQ
PPTX
Connecting mq&amp;kafka
PPTX
What's New In MQ 9.2 on z/OS
PDF
Building a resilient and scalable solution with IBM MQ on z/OS
PPTX
Where is my MQ message on z/OS?
PPTX
The enterprise differentiator of mq on zos
PDF
HHM-2833: Where is My Message?: Using IBM MQ Tools to Work Out What Applicati...
PDF
HHM-3540: The IBM MQ Light API: From Developer Laptop to Enterprise Data Cen...
533-MigratingYourMQIApplicationsToJMS.pdf
IBM MQ Whats new - up to 9.3.4.pptx
Going Deep with MQ
Connecting mq&amp;kafka
What's New In MQ 9.2 on z/OS
Building a resilient and scalable solution with IBM MQ on z/OS
Where is my MQ message on z/OS?
The enterprise differentiator of mq on zos
HHM-2833: Where is My Message?: Using IBM MQ Tools to Work Out What Applicati...
HHM-3540: The IBM MQ Light API: From Developer Laptop to Enterprise Data Cen...

Recently uploaded (20)

PPTX
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
PPTX
Odoo POS Development Services by CandidRoot Solutions
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PPTX
ManageIQ - Sprint 268 Review - Slide Deck
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PPTX
Online Work Permit System for Fast Permit Processing
PDF
medical staffing services at VALiNTRY
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
System and Network Administration Chapter 2
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
System and Network Administraation Chapter 3
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PDF
Understanding Forklifts - TECH EHS Solution
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PPTX
ai tools demonstartion for schools and inter college
PPTX
L1 - Introduction to python Backend.pptx
PDF
Design an Analysis of Algorithms II-SECS-1021-03
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
Odoo POS Development Services by CandidRoot Solutions
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
ManageIQ - Sprint 268 Review - Slide Deck
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
Online Work Permit System for Fast Permit Processing
medical staffing services at VALiNTRY
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
How to Choose the Right IT Partner for Your Business in Malaysia
Internet Downloader Manager (IDM) Crack 6.42 Build 41
System and Network Administration Chapter 2
Navsoft: AI-Powered Business Solutions & Custom Software Development
Odoo Companies in India – Driving Business Transformation.pdf
System and Network Administraation Chapter 3
2025 Textile ERP Trends: SAP, Odoo & Oracle
Understanding Forklifts - TECH EHS Solution
Which alternative to Crystal Reports is best for small or large businesses.pdf
ai tools demonstartion for schools and inter college
L1 - Introduction to python Backend.pptx
Design an Analysis of Algorithms II-SECS-1021-03

MQ Support for z/OS Connect

  • 1. Capitalware's MQ Technical Conference v2.0.1.6 MQ Service Provider for z/OS Connect (And some other new stuff) Matt Leming – lemingma@uk.ibm.com MQ Development
  • 2. Capitalware's MQ Technical Conference v2.0.1.62 © 2016 IBM Corporation 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. Capitalware's MQ Technical Conference v2.0.1.63 © 2016 IBM Corporation Agenda  MQ Service Provider for z/OS Connect  What is z/OS Connect?  What is the MQ Service Provider?  What might it look like?  Other new stuff  JMS enhancements  Enhancements to sub-system connectivity
  • 4. Capitalware's MQ Technical Conference v2.0.1.6 What is z/OS Connect?
  • 5. Capitalware's MQ Technical Conference v2.0.1.65 © 2016 IBM Corporation It’s about getting REST and JSON into your mainframe environment in a way that enables you to best take advantage of the assets that exist there: Mobile / Cloud Ecosystem CICS IMS Batch DB2 REST – Representational State Transfer … the use of HTTP URLs that map to a ‘service’, such as ‘query account’ or ‘update data’ JSON – JavaScript Object Notation … a standard of representing data as a set of name/value pairs. This is passed back and forth along with REST request/responses Where z/OS Connect fits z/OS Connect Other z/OS Connect – what is it?  WebSphere Liberty Profile Server  Function IBM wrote to run in Liberty Profile
  • 6. Capitalware's MQ Technical Conference v2.0.1.66 © 2016 IBM Corporation  Original free version: z/OS Connect V1  Available since 2014  Provides  Basic REST/JSON support  A basic REST API for discovering and managing exposed services  Capable of performing data conversion from JSON to the data format required by the backend configured service  Optional authorization checking using SAF to allow or deny users access to z/OS Connect services  Optional activity recording using SMF to track requests by date and time, bytes sent and received, and response time Two versions!
  • 7. Capitalware's MQ Technical Conference v2.0.1.67 © 2016 IBM Corporation  z/OS Connect EE V2  Available since December 2015  Chargeable  Continuous delivery approach to enhancing product  Based on V1 with enhancements…  Enhancements over V1  More advanced REST functionality  Proper use of HTTP verb and URL to define API  API Editor  Define APIs, described using Swagger 2  Map API down onto underlying service – body, header and query parameters – pass-through, redaction and default values  Deploy APIs plus artefacts to runtime using single file (AAR – Api ARchive)  Consistent tooling and API definition for backend systems: CICS, IMS etc Two versions!
  • 8. Capitalware's MQ Technical Conference v2.0.1.68 © 2016 IBM Corporation z/OS Connect EE tooling
  • 9. Capitalware's MQ Technical Conference v2.0.1.69 © 2016 IBM Corporation Liberty Profile for z/OS z/OS Connect Servlet CICS IMS DB2 Interceptors Service Providers Data Transform 1 4 RESTful JSON 3 5 6 7 8 z/OS Connect is software function that runs in Liberty Profile for z/OS z/OS Connect is described and configured in the Liberty server.xml file z/OS Connect is designed to accept RESTful URIs with JSON data payloads A ‘Service Provider’ is software that provides the connectivity to the backend system server.xml 2 One part of z/OS Connect is a servlet that runs in Liberty Profile z/OS. z/OS Connect provides the ability to transform JSON to the layout required by backend ‘Interceptors’ are callout points where software can be invoked to do things such as SAF authorization and SMF activity recording Backend systems supported are CICS, IMS, Batch, and DB2 1 2 3 4 5 6 7 8 Batch Summary in one picture (z/OS Connect V1 shown)
  • 10. Capitalware's MQ Technical Conference v2.0.1.6 What is the MQ Service Provider?
  • 11. Capitalware's MQ Technical Conference v2.0.1.611 © 2016 IBM Corporation Statement of general direction  IBM intends that a future release of IBM MQ for z/OS will provide support for both z/OS Connect and z/OS Connect EE  https://ibm.biz/MQzOSConnectSOD
  • 12. Capitalware's MQ Technical Conference v2.0.1.612 © 2016 IBM Corporation The MQ Service Provider  Free of charge z/OS Connect service provider that allows existing services that are fronted by MQ to be accessed via a RESTful front end  Both V1 and EE supported  Same capabilities in both versions  Clients need have no knowledge of MQ
  • 13. Capitalware's MQ Technical Conference v2.0.1.613 © 2016 IBM Corporation Service types  Each URL in z/OS Connect maps to a service  With the MQ Service Provider there are two different types of service  Two way services  One way services  A two way service provides request/reply messaging: 1. Client issues HTTP POST with some payload (JSON) 2. MQ Service Provider sends payload (optional transformation) to one MQ queue 3. Back end application processes payload and puts response on reply queue 4. MQ Service Provider gets response (optional transformation) and sends it to client as the body of the HTTP POST response  A one way service exposes standard MQ verbs against a single destination  HTTP POST == MQPUT (queue and topic)  HTTP DELETE == MQGET (queue)  HTTP GET == MQGET (browse) (queue)  Allows more advanced interactions with MQ
  • 14. Capitalware's MQ Technical Conference v2.0.1.614 © 2016 IBM Corporation Two way example  HTTP POST to https://<hostname>:<port>/mq40  All MQ related information is held in mqzOSConnectService element  Sensible defaults  Overridable via HTTP headers, e.g. ibm-mq-gmo-waitInterval  Builds on the MQ messaging provider in Liberty. Uses JMS <zosConnectService id="zosconnMQ40" invokeURI="/mq40" serviceName="mq40" serviceRef="mq40" /> <mqzOSConnectService id="mq40" connectionFactory="jms/cf1" destination="jms/twoWayRequestQ" waitInterval="10000" replyDestination="jms/twoWayResponseQ"/> Provided by z/OS Connect server.xml Provided by MQ Service Provider
  • 15. Capitalware's MQ Technical Conference v2.0.1.615 © 2016 IBM Corporation Example two-way service  Insurance quote service which takes a request from an MQ queue and sends a response to another queue  COBOL request  COBOL response  So COBOL -> JSON conversion needed using built in tooling
  • 16. Capitalware's MQ Technical Conference v2.0.1.616 © 2016 IBM Corporation Example two-way service - configuration <zosConnectDataXform id="xformJSON2Byte" bindFileLoc="${XFORM_ROOT}/bindfiles" bindFileSuffix=".bnd" requestSchemaLoc="${XFORM_ROOT}/json" requestSchemaSuffix=".json" responseSchemaLoc="${XFORM_ROOT}/json" responseSchemaSuffix=".json" /> <zosConnectService id="zosconnIQ" invokeURI="/iq" serviceName=“iq" serviceRef=“iq" dataXformRef="xformJSON2Byte" /> <mqzOSConnectService id=“iq" connectionFactory="jms/cf1" destination="jms/iqRequestQ" waitInterval="10000" replySelection=“msgIDToCorrelID" replyDestination=“iqResponseQ" receiveTextCCSID="37" />
  • 17. Capitalware's MQ Technical Conference v2.0.1.617 © 2016 IBM Corporation Example two-way service – request
  • 18. Capitalware's MQ Technical Conference v2.0.1.618 © 2016 IBM Corporation Example two-way service – request on queue Message on queue MQ Service Provider waiting for response
  • 19. Capitalware's MQ Technical Conference v2.0.1.619 © 2016 IBM Corporation Example two-way service – response on queue
  • 20. Capitalware's MQ Technical Conference v2.0.1.620 © 2016 IBM Corporation Example two-way service – response
  • 21. Capitalware's MQ Technical Conference v2.0.1.621 © 2016 IBM Corporation Delivery plans  MQ Service Provider for z/OS Connect  Will be provided in USS component of a future version of MQ  Will be supported with MQ 8 and later queue managers  Will also be made available on Fix Central  In case you don’t have the latest version of MQ available  Only contains the MQ Service Provider function. You need to provide z/OS Connect (V1 or V2)  Code consists of a jar file, and a Liberty feature manifest
  • 22. Capitalware's MQ Technical Conference v2.0.1.622 © 2016 IBM Corporation Beta version available now  If you want to join the MQ beta then please let me know
  • 23. Capitalware's MQ Technical Conference v2.0.1.6 JMS Enhancements
  • 24. Capitalware's MQ Technical Conference v2.0.1.624 © 2016 IBM Corporation What is JMS and why do I want it?  Java Message Service  Standard API for interacting with messaging middleware such as MQ  Simple support for interacting with both queues and topics  Widely adopted and used throughout the industry  Most recent version is JMS 2  Released in 2013  Mainly focused on ease of use (new JMSContext API)  Backwards compatible  Some minor functionality added  Delivery delay being the most notable
  • 25. Capitalware's MQ Technical Conference v2.0.1.625 © 2016 IBM Corporation What Java support was there for MQ on z until recently?  JMS 1.* supported since MQ v5  JMS 2.0 support added in MQ v8  Supported on z/OS in  z/WAS, including Liberty  Batch  In CICS  MQ base classes for Java supported in OSGi JVM Server  MQ specific Java API  In IMS  No Java support with MQ at all
  • 26. Capitalware's MQ Technical Conference v2.0.1.626 © 2016 IBM Corporation What has been added?  Support for MQ JMS in CICS 5.3 and 5.2 OSGi environments  Works with MQ 7.1 and later  Depending on environment some APARs needed  Since 1Q 2015  Support for MQ JMS in IMS 13  Works with MQ 8 and later  Requires MQ APARs if using MQ 8  Since 4Q 2015  Support for MQ JMS in CICS 5.3 Liberty environments New!
  • 27. Capitalware's MQ Technical Conference v2.0.1.627 © 2016 IBM Corporation What is CICS Liberty JVM Server?  For a number of CICS release support has been provided for running Liberty inside the CICS address space  Only a subset of JEE capability supported  Integration provided with native CICS capabilities  In some cases slight adjustments to programming model/the way things work  CICS V5.3 +PI58375 changes things, two sorts of CICS Liberty introduced  Liberty Standard  Liberty Integrated  Liberty Standard: FULL Liberty support. No CICS integration  Perfect for ‘lift and shift’  Liberty Integrated: Same capability as provided before, subset of JEE integrated with CICS capabilities  Perfect when needing to integrate JEE with CICS transactions  Subset continuing to expand
  • 28. Capitalware's MQ Technical Conference v2.0.1.628 © 2016 IBM Corporation CICS Liberty JVM JMS MQ RA What does this mean with MQ?  Allow CICS Liberty to use MQ resource adapter  Just like normal Liberty  Run existing Liberty messaging apps (eg MDBs) inside CICS  Connections to MQ supported using either client or bindings mode  Some restrictions depending on environment  Prereqs CICS V5.3 +PI58375 + MQ 9.0.1 RA MSTR CHIN External MQ
  • 29. Capitalware's MQ Technical Conference v2.0.1.629 © 2016 IBM Corporation CICS Liberty JVM JMS MQ RA CICS Liberty Standard JMS Support  Bindings (RRS) and/or client (XA) connections supported  Bindings not allowed to CICS connected MQ MSTR CHIN External MQ Client Client Bindings
  • 30. Capitalware's MQ Technical Conference v2.0.1.630 © 2016 IBM Corporation CICS Liberty JVM JMS MQ RA CICS Liberty Integrated JMS Support  Client (XA) connections only MSTR CHIN External MQ Client Client
  • 31. Capitalware's MQ Technical Conference v2.0.1.631 © 2016 IBM Corporation Where can I find out more?  CICS  MQ 8 KC: https://ibm.biz/MQJMSinCICSOSGiKC8  MQ 7.1 KC: https://ibm.biz/MQJMSinCICSOSGiKC71  Blog articles:  http://ibm.biz/MQJMSinCICSOSGiBlog  http://ibm.biz/MQJMSinCICSOSGiJNDI  https://developer.ibm.com/cics/2016/07/12/java-ee-7-in-cics/  IMS  MQ 8 KC: https://ibm.biz/MQJMSinIMSKC  Blog article: https://ibm.biz/MQJMSinIMSBlog
  • 32. Capitalware's MQ Technical Conference v2.0.1.632 © 2016 IBM Corporation CICS Liberty JVM JMS MQ RA What is still to come?  Statement of direction: IBM intends to deliver additional Java EE 7 components and technologies for the CICS TS hosted WebSphere Liberty profile through continuous delivery of new features in the coming months. These additional components and technologies are intended to include support for Java EE 7 Web Profile features, support for JMS 2.0 with IBM MQ for z/OS, and the ability to LINK from a CICS TS COBOL program to a CICS TS hosted Liberty application  https://ibm.biz/MQCICSWLPSOD MSTR CHIN External MQ Bindings
  • 33. Capitalware's MQ Technical Conference v2.0.1.6 Enhanced sub-system connectivity
  • 34. Capitalware's MQ Technical Conference v2.0.1.634 © 2016 IBM Corporation MQ Explorer is now part of Aqua  https://developer.ibm.com/mainframe/products/downloads/
  • 35. Capitalware's MQ Technical Conference v2.0.1.635 © 2016 IBM Corporation CICS Adapter enhancements  New in CICS 5.4, currently in open beta
  • 36. Capitalware's MQ Technical Conference v2.0.1.636 © 2016 IBM Corporation What we have today  CICS CKQC transaction controls the MQCONN definition and CKTI transactions  E.g. “CKQC START” – start connection to MQ  Use the INITQNAME parameter on the MQCONN definition to automatically start a single instance of CKTI  In order to start more than one instance of the CKTI transaction the user enters  “CKQC STARTCKTI CSQ4SAMP.INITIATION.QUEUE”  At  A CICS terminal  An MVS console  Alternatively write an application program that links to program DFHMQSSQ  etc
  • 37. Capitalware's MQ Technical Conference v2.0.1.637 © 2016 IBM Corporation Problems with today’s environment  If the MQCONN is restarted all transactions accessing MQ queues are terminated  When the connection is re-established the transaction associated with the INITPARM parameter on the MQCONN is restarted automatically  Any user initiated CKTI transactions must be manually restarted  The userid associated with the new CKTI transaction is that of the user issuing the restart request not the original user  The default userid associated with the transaction retrieving the application message is now that of the user that issued the restart request.  Cannot stop the MQ Bridge transaction without stopping / restarting the MQ connection
  • 38. Capitalware's MQ Technical Conference v2.0.1.638 © 2016 IBM Corporation What is changing?  New MQMONITOR resource added  Allows an associated transaction which monitors/services an MQ queue to be started/restarted automatically when the connection to the queue manager is made  The transaction is automatically stopped when the queue manager is disconnected  Useful for  CICS trigger monitor/bridge transactions  Any other transaction that is dependant on MQ connectivity  An MQMONITOR resource is dynamically created if you specify the MQCONN INITQNAME attribute  So same approach used throughout
  • 39. Capitalware's MQ Technical Conference v2.0.1.639 © 2016 IBM Corporation Resource definition  Autostart: whether started automatically when connected to MQ  Transaction: monitoring transaction to start, defaults to CKTI  MONUserid: userid used to start the monitoring transaction  MONData: is arbitrary data that can be passed to the monitoring transaction  Userid: used by the monitoring transaction for any application transactions that it starts (e.g. when CKTI starts another transaction)
  • 40. Capitalware's MQ Technical Conference v2.0.1.640 © 2016 IBM Corporation MQMONITOR Autostart(YES) Transaction(CKTI) Qname(MY.INITQ) MONUserid(MATTL) Userid(PETES) MQMONITOR Autostart(YES) Transaction(CKTI) Qname(MY.INITQ) MONUserid(MATTL) Userid(PETES) A pictorial explanation! MQCONN MQMONITOR Autostart(YES) Transaction(CKTI) Qname(MY.INITQ) MONUserid(MATTL) Userid(PETES) CKTI MQ MY.INITQ MY.REALQ UTRN 1) Connects 2) Starts 3) EXEC CICS START TRANSID(CKTI) USERID(MATTL) 4) Get message 6) Get message 5) EXEC CICS START TRANSID(UTRN) USERID(PETES) The monitor transaction The application transaction
  • 41. Capitalware's MQ Technical Conference v2.0.1.642 © 2016 IBM Corporation CEMT SET MQCONN CONNECTED
  • 42. Capitalware's MQ Technical Conference v2.0.1.643 © 2016 IBM Corporation IMS MQ Connection  IMS V13 added Destination descriptor of type MQSERIES  Use on ALT IOPCB  Configure in OTMA descriptor in DFSYDTx IMS PROCLIB instead of coding DFSYPRX0 or DFSYDRU0 exits  TYPE=MQSERIES contains parms to set MQMD values such as  MQRTQ ReplyToQueue  MQMSGID  MQCORREL  MQPERST  MQFORMAT  APAR PI62339 (V13) PI64588 (V14) add MQSTR to allowable formats
  • 43. Capitalware's MQ Technical Conference v2.0.1.644 © 2016 IBM Corporation DB2 MQ Connection  DB2 Stored Procedure Address Spaces (SPAS) connect to MQ using RRS as a transaction coordinator  Each MQ operation uses a new RRS context  Each RRS context has a separate thread information anchored from ACE  ECSA footprint of ~2kB per thread  MQ introduced ACELIM ZPARM to limit the number of ACEs and so ECSA consumed  Initial implementation: ‘protect the LPAR’  Not MQ applications, which will get connection failures  PI48417 MQ V8, PI55066 MQ V7.1 substantially improve queue manager toleration and recovery when the limit is reached
  • 44. Capitalware's MQ Technical Conference v2.0.1.645 © 2016 IBM Corporation Summary  MQ Service Provider for z/OS Connect  What is z/OS Connect?  What is the MQ Service Provider?  What might it look like?  Other new stuff  JMS enhancements  Enhancements to sub-system connectivity
  • 45. Capitalware's MQ Technical Conference v2.0.1.646 © 2016 IBM Corporation Questions & Answers