Modern mainframe application development

  • Post category:DBAOTM
  • Reading time:6 mins read

In the previous DBAOTM article on DevOps I have introduced the traditional development process, which is often still used in a mainframe environment. In this post I will present a modern approach to development on the mainframe. Modern development processes for the mainframe Requirements for the development process have changed. Applications must be built faster and it must be possible to change applications more often and quicker without impacting the quality of the application. In other words, agile development is needed. The only way to address today business needs into modern agile development processes is to automate all build and deploy processes. A set of principles can then be derived for modern mainframe develops processes. All application artefacts are managed in the (or a) Source Code Management tool.The build processes for all artefact are automated, and can be coherently executed.A build can be deployed in any environment. A build has no environment or organization-specific dependencies.The deployment process for a build is fully automated. Including the fallback procedure. The deployment process is a coherent process for all application artefacts. These principles need to be supported by tools and processes that are (re)designed for these purposes. Of course this is not something specific to z/OS applications, but is true for any modern IT solution. But with the background I have sketched in the previous section, there is a legacy of development processes and tools to take into account and in many organizations this implies significant technical and organizational changes. The modern SCM for z/OS The modern SCM tool for z/OS needs to support all kinds of application artefacts. For the mainframe this means for one thing that not only traditional MVS-type artefacts must be supported, like COBOL programs, COPYBOOKS and JCL, but also Unix type artefacts like Unix scripts and configuration files in z/OS Unix directories. The tools and processes should allow for EBCDIC type artefacts to be created or the z/OS runtime environment, as well as ASCI, Unicode and binary artefacts. Modern SCM tools that can manage z/OS artefacts, are ISPW from Compuware, RTC form IBM, and a new option nowadays is Git, or GitHub. Build automation The modern DevOps process automates the creation of a build. The build process takes the required versions of the application artefacts from the source code management repository and creates a coherent package of these artefacts. This package, also called the build, is deployed in a (test) environment. The build could be deployed in any runtime environment, even outside your organizations. This principle not only enforces standardization of processes and infrastructure in your IT organization, it also allows any future deployments in yet unknown environments – for example in the Cloud. The automated build process itself should be callable through some generic API, so it can be integrated into other automated processes when needed. Build automation on z/OS can be accomplished with a number of tools. Some of these tools are able to handle the z/OS specific needs. IBM has two solutions: Rational build engine…

Converting any file from one code page to another

  • Post category:Utilities
  • Reading time:1 min read

The easiest way on z/OS to convert a file from one code page to another is to use the standard unix iconv utility. The sample below is using a traditional batch job, but you can see it can just as easily be run from a shell environment or a shell script. //STEP1 EXEC PGM=BPXBATCH //STDERR DD SYSOUT=* //STDPARM DD * SH iconv -f UTF-8 -t IBM-1140 inputfile.utf8 outputfile.ebcdic /* // ebcdic - Windows SH iconv -f IBM-1140 -t IBM-1252 inputfile.ebcdic outputfile.ibm1252 // Windows - ebcdic SH iconv -f IBM-1252 -t IBM-1140 inputfile.ibm1252 outputfile.ibm1140 // ebcdic - utf8 SH iconv -f IBM-1140 -t UTF-8 inputfile.ebcdic outputfile.utf8 //

WTO directly from Rexx

  • Post category:Rexx
  • Reading time:1 min read

There are probably more ways do write a message in the system log - "Write to Operator" from a Rexx script. This is a very straightforward one I found some time ago somewhere on the Interweb. /* rexx */ trace r call syscalls 'ON' address syscall path='/dev/console' 'open' path O_wronly 666 if retval=-1 then do say 'file not opened, error codes' errno errnojr return end fd=retval rec= 'This is my message text to appear in the system log.' || esc_n 'write' fd 'rec' length(rec) if retval=-1 then say 'record not written, error codes' errno errnojr 'close' fd Have more solutions? Or remarks? Please let me know below.