Showing posts with label CICS. Show all posts
Showing posts with label CICS. Show all posts

Friday, 16 June 2017

Streaming from CICS 5.4

So today (16th June 2017) marks the general availability of CICS TS v5.4.  So considering it was a Friday I thought I would take some time to build a quick project using the latest release of CICS and CICS explorer.

Earlier in the week Fraser Bohm and Andy Bates had been involved in a webcast outlining the new technology in the latest release.  After a brief prompt by colleague David Harris and some conversation with Chris Philips we decided to see how easy it would be for the latest version of CICS to stream a video about itself. 

We grabbed the recording of the CICS 5.4 web cast and stored it in a zfs file on the mainframe, started a CICS region and the explorer and started to build



For those interested the small bundle project that I created here is available on github.

Friday, 24 April 2015

Difference between load and stress - using a metaphor

Load or stress testing a component are two different test techniques that often get confused.  Here is an analogy which I have modified from a conversation I had with James O'Grady

A load test is driving the car for 874 miles at an average speed of 60mph, in 5th gear, while using the air conditioning, cruise control and CD player.  Using lots of the capabilities of the car at expected limits for a length of time.  During and at the end of the journey we would expect the car to still be operational and all the dials on the dashboard to be reading nominal values.  A stress test is a completely different type of test.

In a stress test we want to push the system beyond its limits.  Often the limits will not be clear and so often the test becomes exploratory or iterative in nature as the tester is pushing the system toward the limits.  If we reuse the driving analogy we might start the same journey but now drive at 70mph in 3rd gear.  Initially we think this might be enough to stress the car.  After 60 minutes we increase the stress by removing some of the car oil and deflating the tyres.  Now some of the dashboard lights are showing us that some of the car components are stressed.  We then remove some of the coolant fluid and remove a spark plug.  Now the car is seriously under stress.  All the lights are on and eventually the car gracefully stops operating and we are forced to steer to the hard shoulder.  Once safe we re-fill all the fluid and oil, re-inflate the tyres and repair the spark plug.  Now we are able to restart the car and resume our journey driving properly.

A stress test is pushing the system beyond the limits it is designed to run at either by restricting resources or by increasing the workload (or often both).  This is done until the system either gracefully shuts down or restricts further input until it is now longer under stress conditions.

Both tests are heavily contextual as it relies on a deep understanding on how the software will be used in the wild.  Will a customer use the software for a long period of time under a load condition or do they just use it in short bursts.  This question is more important when you consider software built in the cloud.

If your software is built in the cloud and you are re-deploying every 2 weeks then your view of load and stress testing will be different to testing an on prem application as the operational realities of using that software are contextually different.


Tuesday, 23 April 2013

Just another milestone on a journey


31st December 2015 is a sad day. On the first day of 2016 CICS version 3 will go out of service. For more information see here:

CICS version 3 will always be a special release for me as it was the first CICS release I ever worked on. I was a member of the functional test team for the web services functionality. I spent many a day (and a few nights) building and executing test cases to try and find fault with the product. Looking back at the release it is important to note the amazing technology that CICS version 3 brought to the party.

We allowed existing customer applications to be exposed as web services. Not startling in itself but when you consider that the customer didn't even need to recompile any of their source code in order to exploit this capability. This allowed customers valued assets to be exploited by any process running on any platform in any language.

Since its inception CICS programs have been forced to share data through a 32kb area of memory known as the commarea. This area of data could be passed between programs running in different address spaces. Several customers had requested that we increase this limit to something larger as for them 32kb was becoming a constraint. Version 3 delivered channel and container technology that allowed programs to share blocks of data in named containers within a named channel. Not only did this alleviate the data limit constraint it also allowed that data to be functionally divided into separate pieces. No longer would the error code be at a certain offset into the commarea it could now be in it's own container.

We also extended our TCP/IP support to allow CICS systems to communicate over TCP/IP as a replacement for ISC connections over SNA. CICS programs could now be called over a TCP/IP network using an IPIC connection thus reducing the requirement for SNA networks. Each release since we have been adding capability to this feature, allowing function shipping over IPIC etc.

As the release of 3.1 marked the start of my CICS career it was also the start of a journey for CICS. Each release we have created capability that allows our customers to drive further value from their CICS installations. Developing new applications or deriving new value from existing programs CICS has shown that it is a modern, flexible and High quality transaction processor ready to meet the demands of a modern enterprise.

That journey continues today with the announcement of some feature packs for CICS that extend current releases of the product into new and exciting areas. For more information see:

These announcements excite me (although I have known about them for a while). Once released these capabilities will allow customers to easily integrate mobile application development with CICS resources. It will also allow them to integrate batch workload with existing transactional workloads. If you are a CICS customer why not have a look at the announcements and start thinking about where the new technology could take your business.

Tuesday, 16 April 2013

CICS in Slovenia

Last month I was invited to attend a CICS conference in Slovenia as the guest speaker.  I will be honest and say that I didn't know where slovenia was so here is a helpful google map of the area:



The wonderful local team in Slovenia had organised a range of CICS customers to attend and listen to the awesome stuff we added into CICS 5.1.  Over the day I introduced the new release to them, extolled the virtues of cloud based application deployment, Gave them the news that we had removed JVM Pool support but replaced it with our JVMServer.  We finished with the history of CICS Connectivity and DUMP analysis.

The local IBM team were magnificent hosts and kept us well supplied with food and drinks throughout the day.   They also hosted a 3 course lunch which was enjoyed by everyone there.  So a big thank you to Peter Pavkovic and his team for all his hard work in organising the event.

During the conference I heard a lot of stories from CICS customers about which technologies they liked in CICS and which ones they were looking forward to.  All the customers were on CICS 4.2 which is fantastic!  There is an awful lot of value in keeping with the current version of CICS.  If you stay current then you will find it easier to migrate release to release, exploit the new technology as it comes along and so increase you business value.  Finally it will help you to understand the strategic direction of the product.  The reason why these customers hadn't migrated to V5.1 (released Dec 2012) was that it required a z/OS upgrade to v1.13.

The customers that I spoke to were very forward looking and like the rest of the CICS team see CICS not just as the backend processor but as an integral part of the enterprise.  Transactions flow through CICS, and permeate the whole enterprise.  They understood that modern access to CICS applications and data was how they were going to be able to support their business in the future.  These customers were avid web services users, were planning to move java code off of other application servers and embed it into CICS.  Finally were interested in moving their applications to be deployed and consumed in a much more agile way.

One question that I did get asked but could not answer was if there was a developer trial of CICS 5.1.  I am glad to say that there is.

CICS Developer Trial V5.1. Operational Efficiency and Service Agility with Cloud Enablement

The CICS developer trial allows you to (for free) download and install an evaluation copy of CICS 5.1.  It's fully functional and you can 'play' with all of the new functionality and see how this version of CICS will transform the way you think about your applications.  For more information you will need this link:

Thanks again to the lovely customers and IBMrs I met in Slovenia.  I had a lovely time and wish you all the best in your CICS work

The bat phone

"Holy smokes batman, CICS has a problem what should we do"
"Easy robin ... ... Call the bat phone"

This is the CICS out of hours support phone.   CICS is a high quality product and doesn't have a lot of problems. Getting a problem happen out of hours is fairly rare.  However since CICS powers most financial institutions businesses when this phone rings the problem could be very urgent.  IBM provides 24x7 support to our customers. This week I will be the person answering this phone.  There are 2 ways this could go:
  1. I end up with no sleep and am very grouchy (no change there then)
  2. No one rings! 

Actually the most interesting thing that I have learnt is that older phones have an INCREDIBLE battery life.  I have had this for 4 days now and it has not needed a charge!  

Wednesday, 28 April 2010

Web 2.0 & CICS

Just been putting the finishing touches to a demo that I want to present at Impact 2010. I'm presenting a piece about web 2.0 and how it relates to CICS. Once part of the web2.0 story is the ability to render data as ATOM feeds and expose that feed to external consumers.

I wanted to show how easy it was to expose a CICS file as a ATOM feed and then consume it within a AJAX web page. This would allow me to respond to a users request via a web page without having to reload the entire page. Making the UI cleaner, more efficient and well 'sexier'!

The demo took very little time to create. I took the CICS File A sample and quickly created the necessary CICS resources to allow CICS to expose it as a ATOM feed. A quick test in the browser showed me that all was working well and that I now had a REST style interface for my file. CICS still handled the file and ensured that authentication was properly handled. My existing demos that use that file didn't have to change, BUT I had managed to levarge this file to new consumers. Ah my next point - writing that AJAX web page.

I am not an AJAX (Asynchronous JavaScript and XML) programmer. To be honest I haven't written anything 'webby' for quite a while so my skills were a little rusty. However I had a quick google and found lots of snippets of code that I could use to allow me to make a asynchronous call to CICS to get some data:

The nice thing was a I was able to use standard AJAX calls to interact with CICS. I didn't need any special IBM framework just standard Javascript. Also I didn't need to be an amazing javascript programmer. I just bolted some code snippets together and got something really cool to work.

In a real company this would mean that we would be able to create web 2.0 components that connected directly to CICS. This would provide a up to date interface that customers expect. You wouldn't even think that CICS was involved.