CICS V5.4 open beta and beyond Alexander David Brown IBM UK Ltd. Date of presentation (01/10/2016) Session GB
Preface IBM s statements regarding its plans, directions and intent are subject to change or withdrawal 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. Content Authority. The workshops, sessions and materials have been prepared by IBM or the session speakers and reflect their own views. They are provided for informational purposes only, and are neither intended to, nor shall have the effect of being, legal or other guidance or advice to any participant. While efforts were made to verify the completeness and accuracy of the information contained in this presentation, it is provided AS-IS, without warranty of any kind, express or implied. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, this presentation or any other materials. Nothing contained in this presentation is intended to, nor shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement governing the use of IBM software. Performance. 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. Customer Examples. All customer examples described are presented as illustrations of how those customers have used IBM products and the results they may have achieved. Actual environmental costs and performance characteristics may vary by customer. Nothing contained in these materials is intended to, nor shall have the effect of, stating or implying that any activities undertaken by you will result in any specific sales, revenue growth or other results. Availability. References in this presentation to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates.
Important Disclaimer THE INFORMATION CONTAINED IN THIS PRESENTATION IS PROVIDED FOR INFORMATIONAL PURPOSES ONLY. WHILST EFFORTS WERE MADE TO VERIFY THE COMPLETENESS AND ACCURACY OF THE INFORMATION CONTAINED IN THIS PRESENTATION, IT IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED. IN ADDITION, THIS INFORMATION IS BASED ON IBM S CURRENT PRODUCT PLANS AND STRATEGY, WHICH ARE SUBJECT TO CHANGE BY IBM WITHOUT NOTICE. IBM SHALL NOT BE RESPONSIBLE FOR ANY DAMAGES ARISING OUT OF THE USE OF, OR OTHERWISE RELATED TO, THIS PRESENTATION OR ANY OTHER DOCUMENTATION. NOTHING CONTAINED IN THIS PRESENTATION IS INTENDED TO, OR SHALL HAVE THE EFFECT OF: CREATING ANY WARRANTY OR REPRESENTATION FROM IBM (OR ITS AFFILIATES OR ITS OR THEIR SUPPLIERS AND/OR LICENSORS); OR ALTERING THE TERMS AND CONDITIONS OF THE APPLICABLE LICENSE AGREEMENT GOVERNING THE USE OF IBM SOFTWARE.
In this open beta Java EE 7, now in CICS! Parallel services with async calls Provision CICS microservices in minutes And a lot more! ibm.biz/cics54openbeta
Open Beta Requirements The hardware and software prerequisites are as follows: The minimum required level of operating system is z/os V2.1. The minimum required hardware prerequisite is z Systems z10 or subsequent 64-bit z/architecture processors. The minimum required level of Java is IBM 64-bit SDK for z/os, Java Technology Edition, V7.0 SR1.
Java EE 7 and beyond Integrated Java EE 7 web profile Enables the integration for modern Java web applications with CICS units-of-work, security, management, and APIs Java EE 7 full platform as standard Liberty Java EE 7 Full Platform is now supported via a new standard mode using Java EE transactions, security, and APIs Allows developers to exploit JEE Full Platform capabilities whilst remaining in the easily managed CICS address space ibm.biz/cicsjavaee7
Java EE 7 and beyond Enhanced DB2 Support Access CICS DB2CONNs from JPA 2.0 and Session Database features, not just JDBC New IBM MQ access Connect to MQ using JMS in Liberty JVM servers Develop for CICS remotely through JCA Rapidly prototype and test applications using JCA on a local workstation with the new remote JCA Liberty feature
Java EE 7 and beyond Increased ziip offload in Liberty Benefit from over 90% ziip offload eligibility 90% in CICS Liberty JVM servers (ibm.biz/cicswlpziip) Updated Java New Java 8 supports adds a whole host of language features, including lambda expressions and improved type checking Connect to z/os enterprise systems With additional support in CICS, you can now use z/os Connect Enterprise Edition natively
Simple async services Access services in parallel Minimise idle time waiting for responses when calling services through a new CICS API for issuing parallel requests Issue and manage requests using simple yet powerful EXEC CICS commands Open samples Find great samples on the CICSDev GitHub supported with detailed articles on the CICS developer centre
Simple async services Using EXEC CICS RUN TRANID and EXEC CICS FETCH, external services can be called without delay FETCH can be used in any order, allowing faster services to be processed first Bridges the gap between START and LINK
Simple async services >>-RUN--TRANSID(name)----------------------------> >--CHILD(token)--+---------------+--------------->< '-CHANNEL(name)-' >>-FETCH---CHILD(token)---+---------------+---> '-CHANNEL(name)-' >--COMPSTATUS(cvda)-------+---------------+--->< '-ABCODE(code)--'
Simple async services Track transactions through asynchronous calls Follow asynchronous requests through regions with enhancements to the previous transaction SMF records The new previous transaction field, combined with existing fields of previous transaction hop count and previous task ID complete the ability to trace calls Monitor the performance of async calls New SMF counters and timers collect data for running and completed Tasks.
Simple async services
Provision CICS in minutes CICS Provisioning Toolkit Provision CICS environments using a Docker-like tool from USS Spin up microservices in minutes with base images for CICS webservices, Liberty JVM servers and z/os connect Customise and manage CICS lifecycles through z/osmf workflows
Provision CICS in minutes > ls images/myapp Cicsptfile imageapps.xml myapp.war > cicspt built t myapp images/myapp 2016-10-06 14:49:44 CICS provisioning toolkit Beta Version 2 2016-10-06 14:49:44 Building /u/user/images/myapp/cicsptfile into image myapp. 2016-10-06 14:49:44 Step 0 : FROM cics_liberty 2016-10-06 14:49:44 Step 1 : COPY imageapps.xml ${LIBERTY_DIR}/imageApps.xml 2016-10-06 14:49:44 File name=imageapps.xml, path=rootfs/workdir/dfhwlp/wlp/usr/servers/defaultserver/imageapps.xml 2016-10-06 14:49:44 Step 2 : COPY myapp.war ${LIBERTY_DIR}/apps/myapp.war 2016-10-06 14:49:44 File name=myapp.war, path=rootfs/workdir/dfhwlp/wlp/usr/servers/defaultserver/apps/myapp.war 2016-10-06 14:49:44 Successfully built /u/user/images/myapp/cicsptfile into image myapp.
Provision CICS in minutes > cicspt images 2016-10-06 14:52:48 CICS provisioning toolkit Beta Version 2 IMAGE NAME CREATED SIZE cics_json Mon Oct 03 11:07:47 BST 2016 10240 cics_liberty Mon Oct 03 11:07:47 BST 2016 10240 cics_soap Mon Oct 03 11:07:47 BST 2016 10240 cics_zosconnect Mon Oct 03 11:07:47 BST 2016 10240 myapp Thu Oct 06 14:49:44 BST 2016 30720
Provision CICS in minutes > cicspt run myapp MYAPPLID 1490 80 443 2016-10-06 14:55:55 CICS provisioning toolkit Beta Version 2 Enter your password: 2016-10-06 14:55:58 Running image myapp on CICS region MYAPPLID. 2016-10-06 14:55:59 Created workflow provision_myapplid 2016-10-06 14:55:59 Started workflow provision_myapplid 2016-10-06 14:56:00 Validating CICS data sets exist 2016-10-06 14:56:11 Validating CICS region configuration 2016-10-06 14:56:40 Creating CICS region data sets 2016-10-06 14:56:52 Creating CICS log stream model 2016-10-06 14:57:04 Creating CICS CSD definitions 2016-10-06 14:58:08 Creating zfs directories 2016-10-06 14:58:19 Creating JVM profile 2016-10-06 14:58:49 Creating Liberty server.xml 2016-10-06 14:59:01 Adding image into zfs file system 2016-10-06 14:59:14 Creating the CICS region JCL
Provision CICS in minutes 2016-10-06 14:59:26 Starting the CICS region 2016-10-06 14:59:39 Checking CICS is starting 2016-10-06 15:00:09 Your image myapp has been started on system MVS1. 2016-10-06 15:00:09 The provisioned port(s) will be: 2016-10-06 15:00:09 CICS CMCI = 1490 2016-10-06 15:00:09 CICS http = 80 2016-10-06 15:00:09 CICS https = 443
Provision CICS in minutes Configuring the microservice The provisioned image is controlled by a special file, the Cicsptfile, which works similar to how a Dockerfile works Unlike Docker, nothing is virtualised in a separate container, but is mounted on USS Images can inherit other images, using the FROM statement e.g. FROM cics_liberty would inherit a CICS-supplied image which provisions a CICS Liberty JVM server.
Provision CICS in minutes Example Cicsptfile: FROM cics_liberty # Copy the application configuration COPY imageapps.xml ${LIBERTY_DIR}/imageApps.xml # Copy the application COPY myapp.war ${LIBERTY_DIR}/apps/myapp.war
Improved MQ in CICS MQ TRUE on Key 8 TCBs Benefit from better performance with by staying on a T8 TCB in Java programs using MQ base classes and JMS Start/stop facilities for MQ applications Control MQ triggering with the new MQMONITOR resource No more manual steps when the MQ connection restarts
Java Free JSON End-to-end non-java JSON Natively transform JSON to language structures (and vice versa) with extensions to EXEC CICS TRANSFORM DATATOJSON and JSONTODATA Shipped in V5.3 APAR PI54841 Free JSON webservices from Java with the native pipeline terminal handler DFHPIJT Shipped in V5.3 APAR PI56897 Completely removes the need for a JVM server when using CICS webservices
Java Free JSON Example pipeline.xml configuration: <?xml version="1.0" encoding="ebcdic-cp-us"?> <provider_pipeline xmlns="http://www.ibm.com/software/htp/cics/pipeline"> <service> <terminal_handler> <handler> <program>dfhpijt</program> <handler_parameter_list /> </handler> </terminal_handler> </service> </provider_pipeline>
Safer Debugging Read only debugging transactions CEDF and CEDX are considered harmful due to a risk of accidental or malicious changes made to storage during program execution New read-only versions of these transactions (CEDG and CEDY) are provided to mitigate these concerns
EXCI Channels External CICS Interface (EXCI) Pass more data from z/os programs to CICS with support for channels and containers APIs in EXCI APIs supported: UT, GET, MOVE and DELETE CONTAINER DELETE CHANNEL Not only does this remove the 32K limit of a COMMAREA, these Channels and Containers also support code page conversion A Channel can be specified on both the EXEC API and the call level API
And more! New event format for CICS events Emit CICS events in the Decision Server Insights Events (DSIE) format for use with ODM Decision Server Insights Shipped in V5.3 APAR PI55134 Shipped in V5.2 and V5.1 APAR PI55133 Process z13 vector registers in LE Exploit SIMD in C/C++, COBOL, PL/1 and JVM language features Requires LE APAR PI53833 Shipped in V5.3 APAR PI59322
Beyond the beta Taking Java further (continuous delivery!) Harness the full power of Java EE 7 with CICS; features, including batch processing, will be able to access DB2 in bindings mode, run CICS API commands and integrate with CICS transactions Take Java EE outside of the web container, with Link to Liberty you can call applications running in a Liberty JVM server as CICS programs
Beyond the beta Early access CICS Designed Partnership and Business partner program, actively participate in ideas and proposals CICS betas to learn about and access the latest functionality even earlier CICS open betas, which come with documentation and CICSDev articles Feedback Your feedback is important to us!
Session feedback Please submit your feedback at http://conferences.gse.org.uk/2016/feedback/gb Session is GB