Category Archives: MVS

Need a Translate Table? – Unicode Services Edition

In an earlier post I discussed generating translate tables using CDRA and promised that I might cover doing the same using Unicode Services.  Well, here is the update. In many respects, using the Unicode Services character conversion routine CUNLCNV is quite a bit simpler than the CDRA interface. cunitbl.c The header is in SYS1.SCUNHF so… 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 »

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 »

Need a Translate Table?

Back before z/OS had Unicode Services available to do character transactions before code pages, there was something called CDRA. As of z/OS 1.13 it is still there as a part of DFHSMSdfp but it is only briefly mentioned.  There is more documentation here. IBM has been a leader in keeping track of internationalization issues, as you… Read More »

Is it time for a Syncpoint?

When you are sharing an online database with batch update jobs you don’t want batch jobs to affect online response time.  One thing that invariably delays online transactions are batch database locks.  If the batch job doesn’t take enough syncpoints, more and more of the database will be locked as the job runs. The best… Read More »

Use C Runtime Functions in Assembler

Assembler coding has it’s role to fill.  There are a lot of system services that are only available to assembler programs and when performance is key there is often nothing better.  That being said, when you are coding in assembler you want to focus on the problem at hand and not spend a lot of… Read More »