Compiling a java Program for CICS

You might want to use JCL to compile java programs for your CICS environment. Probably, you already have standard procedures for compiling other language types. Java source programs compile into class files which must be in the Unix file system instead in load libraries. So, just as you would have separate libraries for separate development… Read More »

RxRandom Revisited — Metal C

Continuing the Writing a Rexx Function in C and the follow-on Updated RxRandom External Rexx Function (in C) discussion, can I convert RxRandom to Metal C? I originally worked on writing Rexx external function in C using the System Programmer C facility; this was before Metal C existed. There should be some performance benefit to… Read More »

Using Metal C to Learn Assembler Techniques

By comparing the output from the XL C/C++ Compiler that is generated for a sample piece of C code and varying the ARCHITECTURE and TUNE compiler options, we can both learn some new assembler opcodes for newer hardware and also learn some optimization techniques. Currently (September 2013), the ARCHITECTURE value can vary from 0 to… Read More »


What good are regular sockets when, in today’s environment of complex compliance requirements, we need to encrypt data in flight?  Building on my early post on COBOL POSIX Sockets, let’s show how to convert it to use SSL. Since we are acting as an SSL client and not a server (and no client certificates will… Read More »

Processing a GDG in Any Order Using IGGCSI00 in COBOL

We know we can process an entire set of GDG datasets by allocating the GDG base name in the JCL So, for example, if we have a GDG with three generations, GDG Base: XXXXXXXX.TEST.GDG Generations: XXXXXXXX.TEST.GDG.G0001V00 XXXXXXXX.TEST.GDG.G0002V00 XXXXXXXX.TEST.GDG.G0003V00 We can refer to the most current generation with XXXXXXXX.TEST.GDG(0) or XXXXXXXX.TEST.GDG.G0003V00, the second with XXXXXXXX.TEST.GDG(-1), the… Read More »

Updated RxRandom External Rexx Function (in C)

The Rexx external function RXRANDOM I wrote about before is not very compatible with the IBM provided (and standard Rexx) RANDOM internal function. The one I wrote initially took no arguments, and so did not demonstrate how to handle arguments, whereas the built-in function takes min, max and seed arguments. I can handle the min… Read More »


What good is it to have the relatively new COBOL verbs XML-PARSE and XML-GENERATE without a web client or server? Well, I am being a little facetious.  You could use an MQ request-reply model, but, for instance, you probably wouldn’t use the native COBOL XML support in a CICS program since CICS has it’s own… Read More »

X34 – Update with Path Support

I’m working on updating X34 to support Unix directory paths in addition to datasets. X34 lists all datasets for high-level qualifiers FOO.BAR X34 SYS%.**.H any 3.4 mask will work X34 /path lists Unix directory /path NEW X34 ~/path referencing from home directory works, too NEW X34 uses the dataset or Unix path name at… Read More »

Catalog Search (IGGCSI00) From COBOL

IGGCSI00 is a callable subroutine to search the catalog. It is provided by DFHSMS and documented in Managing Catalogs.  It can be used to search for dataset names, tape libraries and volumes (as cataloged in the DFSMS catalog, not CA-1 or some other catalog). There are some assembler and REXX samples in SYS1.SAMPLIB demonstrating how… Read More »