Monday, July 31, 2006

Viper – no snake in the grass

Although pre-announced months ago, and officially announced in June, IBM’s DB2 Version 9.0, code-named Viper, was globally released on the 28th July. So what’s all the excitement about? Well, there are improvements in security, ie much better control over which parts of the database are accessible to whom. There’s an updated set of developer tools. There are improvements in compression, ie smaller packets of data can be transferred resulting in better response times. The real “biggy” is DB2’s ability to work natively with XML (eXtensible Mark-up Language) files. The way this works is, DB2 stores XML files and searches them using XQuery. What’s Xquery, you say? It’s meant to be an SQL-like query language that works on XML documents. In effect, DB2 9 is able to store structured data and, importantly, unstructured data in their native formats. The alternative is to store unstructured data as a pseudo-structured record (eg a Character Large Objects – CLOBs). This results in a hybrid data server that stores structured data in rows and columns, and unstructured data in a hierarchical XML format. The new DB2 Developer Workbench (DWB) is based on the Eclipse framework (another example of IBM embracing the Open System world), which provides the environment in which users can create SQL scripts, stored procedures, XML queries, XML schema documents, and user-defined queries. It’s here that the XQueries can be generated. Additionally, for sites needing to integrate DB2 with .NET applications, there is an updated DB2 data provider plus add-ins for the Visual Studio.NET design environment. Interestingly, Viper includes self-tuning memory settings that can determine the best configuration automatically based on server usage patterns. IBM has decided to ship four versions of DB2 9 – Express, Workgroup, and Enterprise, and Express-C. Express-C is free. IBM is hoping that DB2 9 will have leapfrogged ahead of other database vendors in terms of its capabilities. I’m sure Oracle, Microsoft’s SQL Server, MySQL, and those other vendors will be responding shortly! All the latest DB2 news is published each month in DB2 Update from Xephon (

Monday, July 24, 2006

It's a jungle out there!

This month (July) saw the announcement that Mainstar has been acquired by Rocket Software ( We also had ASG ( sealing its deal to acquire Diversified Software Systems and integrating their products into its OpsCentral solutions platform. What else? Well we heard that AttachmateWRQ had completed its takeover of NetIQ – and rather than calling the new company AttachmateWRQNetIQ, or some other extended mouthful of a name, they decided that simply going back to Attachmate ( would be best. That was announced 5 July. Not to be left out, CA ( has acquired XOsoft, a company in the continuous application and information availability market. The acquisition enables CA to offer a complete recovery management solution allowing customers to minimize the risk of data loss, reduce the time spent on back-ups, and expedite recovery of critical business services – they claim. So if all this can happen in a single month, who’s going to be left in the mainframe jungle at the end of the year? Perhaps to avoid a takeover, companies like NetManage ( and Cape Clear Software ( are forming partnerships, which, in this case, they claim is intended to streamline SOA development. The two vendors' combined solutions, they said, will help move legacy and mainframe systems into a broader service-oriented architecture. NetManage brings its OnWeb and Librados Adapters to the party, while Cape Clear offers an Enterprise Service Bus (ESB) designed to enable rapid reuse of process-oriented applications within mainframe applications. Similarly, GT Software ( is also forming numerous partnerships. GT Software’s Ivory Service Architect enables mainframe developers to graphically orchestrate mainframe transaction, application, data, and Web services into multi-step, multi-operation business services. It is pushing itself in the SOA arena and has a partnership with Merlin Software, which will help it deploy its products at federal agencies. It also has a partnership with Relativity Technologies to accelerate and boost SOA-enablement. Then there’s the partnership with Relativity Technologies, which has a similar aim. And finally (in my quick look through my files, anyway) there’s a partnership with Skyway Software, who are in the SOA design and delivery market. Going back to Mainstar… they made quite a few announcements recently. They announced Version 9.01 of their FastAudit/390 Suite. The product is designed to keep z/OS environments trouble-free with high-speed, accurate, and flexible audits. They also announced Version 6.0.0E of RealTime Defrag/Extended Processing (RTD/XP), a disk space management product designed to simplify and automate the process of continuously managing the free space and datasets on each disk under its control. In the twenty plus years that I have been producing the news section for Xephon’s ( Update publications I have never seen quite such a feeding frenzy. It seems that the software giants in the mainframe jungle are safe from each other at the moment, but the successful smaller companies definitely need to form partnerships if they are to avoid being gobbled up in today’s carnivorous market place. Mainframe-related news items can be sent to Trevor Eddolls at

Wednesday, July 19, 2006

What’s going on with CICS?

What do I mean, what’s going on with CICS? Well, CICS used to be the dynamic heart of so many companies – it was the subsystem that allowed the company to make money – and as such there lots of third parties selling add-ons to CICS to make it work better for individual organizations. Now CICS is even better – it can act as a provider of Web services and it can act as a consumer of Web services. It’s now arguably the most useful subsystem a company has. It allows one company to interface directly with another. People sitting at browsers can get information about products, they can even update their own information held by the company running CICS. And yet, there seem to be fewer and fewer companies offering far fewer CICS add-ons – what’s going on? One important point to make straight away is that when CICS Update issue 1 came out in December 1985, most users were probably using CICS Version 1.6, and the more current versions of CICS out there are far more sophisticated than that earlier version (which we thought was quite special at the time!). It probably means that there are fewer “gaps” in CICS for other companies to fill with their products. It also a sign of how few mainframe software companies there are in comparison to 1985. Some have just gone out of business, but many were swallowed up by larger companies such as CA. Many recent software announcements in the CICS arena are to do with Web Services and Service-Oriented Architecture (SOA). For example, the August issue of CICS Update contains news that AttachmateWRQ ( has announced Verastream Bridge Integrator, its CICS-focused integration product that enables users to transform business-critical CICS functionality into reusable services. Basically, the product allows users to non-invasively extend existing CICS services for use in new SOA application development or integration projects. Similarly, SOA Software ( and Parasoft ( are partnering to offer an integrated governance and testing suite for Service-Oriented Architectures. Their partnership allows users to combine Web services management and error refactoring for SOA and Web service-based applications. SOA Software’s portfolio includes SOLA, a mainframe Web services solution for CICS programmers. Parasoft has SOAtest, a suite of products focused on automated error protection. So, what’s going on with CICS? It looks like the answer is definitely SOA. IBM has filled in most of the other “gaps” that existed in the product and now has something more than ready to face the brave new world of browser-based working. Those other software vendors are helping to make this SOA development as easy as possible. CICS Update is published by Xephon ( If you have a CICS-related article that you would like published or even an idea for an article, please contact the editor, Trevor Eddolls, at

Thursday, July 13, 2006

Documenting CICS programs

We have more than 2,500 CICS programs in our production environment. Many of them are very old, without proper documentation, and their authors have left our company. That’s why we write REXX procedures to generate simplified schemas from PL/I, COBOL, or Assembler source. The CICSDOC REXX procedure scans specified PDS or PDSE datasets and analyses each member in the following way: • Recognizes CICS programs that are written in one of the specified languages; other members are skipped. • Identifies program name and programming language. • Searches for all EXEC CICS LINK and EXEC CICS XCTL statements and picks up the names of the called programs and calling methods. The syntax of EXEC CICS LINK or XCTL statements enables the usage of either constants or variables to specify program names. When you use constants for program names, the report looks like: Type|PgmName |Method|SubPgm| Variable |CICS DSN ------------------------------------------------------------------------ ASM |DFH$WBSA |LINK | |'DFH$WBST'|CICSTS12.CICS.SDFHSAMP(DFH$WBSA) ------------------------------------------------------------------------ ASM |DFH$WBSC |LINK | |'DFH$WBST'|CICSTS12.CICS.SDFHSAMP(DFH$WBSC) ASM |DFH$WBSC |LINK | |'DFHWBENV'|CICSTS12.CICS.SDFHSAMP(DFH$WBSC) ------------------------------------------------------------------------ COB |DFHØBAT1.|LINK | |'DFHØBAT4'|CICSTS12.CICS.SDFHSAMP(DFHØBAT1) ------------------------------------------------------------------------ Where variables are used, the procedure finds their values in declarations or in assignment statements. In that situation, the report has the following format: --------------------------------------------------------------------------------- Type| PgmName |Method|SubPgm |Variable |CICS DSN --------------------------------------------------------------------------------- COB |DFHØBAT2.| LINK | |DPL-PROG-NAME |CICSTS12.CICS.SDFHSAMP(DFHØBAT2) COB |DFHØBAT2.| |'DFHØBAT7'|DPL-PROG-NAME |CICSTS12.CICS.SDFHSAMP(DFHØBAT2) COB |DFHØBAT2.| |'DFHØBAT5'|DPL-PROG-NAME |CICSTS12.CICS.SDFHSAMP(DFHØBAT2) --------------------------------------------------------------------------------- PLI |DFHPXCC: |LINK | |TARGET_PROGRAM|CICSTS12.CICS.SDFHSAMP(DFH$PXCC) PLI |DFHPXCC: |'DFH$AXCS'|TARGET_PROGRAM|CICSTS12.CICS.SDFHSAMP(DFH$PXCC) --------------------------------------------------------------------------------- COB |DFHØVZTR.|XCTL | |WØ1-SENDNAME |CICSTS12.CICS.SDFHSAMP(DFHØVZTR) COB |DFHØVZTR.| |'DFHØVZTS'|WØ1-SENDNAME |CICSTS12.CICS.SDFHSAMP(DFHØVZTR) --------------------------------------------------------------------------------- We can imagine that a program uses one variable and assigns different program names to it. In cases where some of these programs are called by XCTL and others by LINK, the procedure cannot resolve the calling method for each program. In this situation, users have to assign an appropriate method manually. The report about all members of the input library is placed in the dataset with the symbolic name CICSDOC. In the SYSPRINT dataset, you get the list of all scanned members classified as CICS if it contains any EXEC CICS statements, or non-CICS if there are no CICS statements. EXAMPLE JOB TO SUBMIT CICSDOC The following JCL can be used to submit a job: //useridC JOB CLASS=A,MSGCLASS=X,MSGLEVEL=(Ø,Ø),NOTIFY=&SYSUID //CICSDOC EXEC PGM=IKJEFTØ1,DYNAMNBR=5Ø,REGION=4M //SYSPROC DD DSN=userid.USER.CLIST,DISP=SHR //SYSTSPRT DD SYSOUT=* //SYSPRINT DD SYSOUT=* //CICSDOC DD DSN=userid.#CICDOC.LIST,DISP=(NEW,CATLG), // UNIT=SYSDA,DCB=(RECFM=FB,LRECL=1Ø5,BLKSIZE=Ø), // SPACE=(TRK,(1Ø,5),RLSE) //SYSTSIN DD * %CICSDOC CICSTS12.CICS.SDFHSAMP /* PROCEDURE CICSDOC /******************************* REXX *********************************/ /* Procedure forms documentation for CICS programs */ /* Input: library with CICS programs */ /* Output: Documentation in CICSDOC dataset and list of scanned */ /* members in SYSPRINT */ /* For each program report is formed with the following information: */ /* * type (PL/I, COBOL, or Assembler) */ /* * program name */ /* * calling method (xctl, link) */ /* * SubPgm */ /* * Variable */ /* * Dsname of member that contains program */ /* Trace ?R */ ARG Arg1 Arg2 userid=SYSVAR(SYSUID) prefix=SYSVAR(SYSPREF) "PROFILE NOPREFIX" rrc=Ø signal on error rrc = Make_CICS_Doc(Arg1,Arg2) error: If prefix <> '' Then "PROFILE PREFIX("prefix")" Return rrc /* Make CICS Doc */ Make_CICS_Doc: Procedure Arg DsName, Volume rrc=Ø If SYSDSN(DsName) <> 'OK' Then Do Say 'Missing dataset name' rrc=12 End To read the rest of this article, please visit Xephon's website. This complete text of this article was originally published in the July 2001 issue of CICS Update.

Welcome to Mainframe Weekly!

A new blog curated by Mainframe industy veteran, Trevor Eddolls!