On March 27th IBM announced version 3 release 2 of CICS Transaction Server. I didn't expect too much because this was a release on top of an established version. But as it turns out, this release introduces some new features for the web along with enhancements for traditional VSAM-based applications. This column deals with the changes that might be most interesting to the applications programmer. Next month's column will be for the systems programmers.
As of the deadline for this article I was unable to find the CICS/TS 3.2 Information Center, so I don't know how some of the application programming interfaces (API) changed. I also like to look at the documentation because a lot of new features lose their allure once you see the nuts and bolts of their implementation.
However, IBM is providing an interesting "open Beta" program allowing customers to download a free beta version of CICS/TS 3.2. The download will be available until June 29th, 2007 and the beta will work until August 31st, 2007. So, if you happen to have a couple of spare moments to rub together go to address http://www-306.ibm.com/software/htp/cics/tserver/v32/openbeta/ and follow the links.
Web Services, Service Oriented Architecture (SOA) and Open Standards
This release comes with hatfuls of changes supporting open standards. For the moment I'll pretend I understand what some of this means:
- Web Services Description Language (WSDL) V2 The World Wide Web Consortium (W3C) is still finalizing this standard, but including this support guarantees CICS will continue to interoperate with other SOA tools and environments.
- Web services support for SOAP Message Transmission Optimization Mechanism (MTOM) and XML Optimized Packaging (XOP). Both of these are built to streamline web message processing by including large, binary objects as attachments instead of embedded in the stream itself.
- Support for WS-Trust specification in WS-Security which simplifies exchanges between enterprises with different security domains through the use of a Security Token Service (STS).
- Integrated CICS translator for C/C++ as has been available to other languages
More intriguing, to me at least, is the ability to perform distributed program links (DPL's) over TCP/IP. According to the documentation, DPL over TCP/IP will support the same security and syncpoint functions as MRO. DPL still works by assigning a remote system ID to a program link request. Since a DPL is nothing more than a function shipped program link I wonder if we may see the same type of thing for remote files and transaction routing.
Thread-safe and non-traditional features part of the mix
Possibly the biggest news for traditional CICS applications is thread-safe file and journal commands. Now even the crustiest COBOL application can take advantage of the open transaction environment (OTE). With thread-safe programming a single region can do more things at once and achieve greater throughput and save CPU which may mean workload consolidation for your systems programmer.
Of course, as IBM warns, this is not a no-brainer. Writing thread-safe code is tricky and proving thread-safeness is even harder, but it's a step in the right direction. Note that the API's for other sorts of files (remote, BDAM and shared data tables, etc.) will remain quasi-reentrant.
In CICS/TS 3.2 shared data tables can be larger than 2GB through the use of multiple data spaces up to the limit of 100 per CICS. This doesn't entail a lot of system configuration work because CICS nicely manages the data spaces by creating on an as needed basis.
CICS/TS 3.2 introduces some 64-bit programming into the API. For instance, channels and containers can now use 64-bit storage, just in case you have that information to pass around. The problem is that there's no indication CICS will manage above the bar storage with a DSA. This means an application must get and free its own 64-bit storage, which is not something a traditional CICS application is prepared to do.
In another nod to traditional VSAM memo posting applications, CICS/TS 3.2 supports extended entry sequenced datasets (ESDS). Extended ESDS can be larger than 4G although programmers should keep in mind that direct access requires an 8 byte XRBA as opposed to the old fullword RBA. In addition, alternate indexes (AIX) are not supported. The conversion effort is even more daunting when you consider the number of fields in other files and programs that need updating to support the extra four bytes. It's not something that will change overnight.
It looks like there's enough new stuff in CICS/TS 3.2 to keep everyone busy. It is also nice to see that, while IBM continues to expand CICS to allow integration of old applications into the modern world, it also is making headway on the requirements backlog for the more traditional systems. Next month will be about system management and installation.
About the author:
Robert Crawford has been a CICS systems programmer off and on for 24 years. He is experienced in debugging and tuning applications and has written in COBOL, Assembler and C++ using VSAM, DLI and DB2.