Java

Java

Java

Topics on Semeru (Java) on IBM Z

 View Only

Mainframe Modernization with Java and JZOS

By Gregory Lambert posted Tue February 10, 2026 10:28 AM

  

In today's rapidly evolving digital landscape, enterprises face a critical challenge: how to modernize their IT infrastructure while preserving the massive investments they've made in mainframe technology. For decades, IBM z/OS mainframes have been the backbone of global commerce, processing billions of transactions daily for banking, insurance, healthcare, and retail industries. Yet as the technology landscape shifts toward Java, cloud-native architectures, and agile development practices, organizations find themselves at a crossroads. 

IBM Z mainframes represent the gold standard for enterprise computing, delivering unparalleled reliability, security, and exceptional scalability capable of processing billions of transactions daily. These amazing qualities are the result of years of innovation and evolution of a system that originated over sixty years ago. As a result, today’s IBM Z systems are an amalgamation of modern interfaces and services that work together with low-level parts of the system that have been its core for decades. One of the frustrations for customers has been that often much of that core of Z services is only accessible via languages that do not have a deep pool of developer talent, e.g. HLASM, REXX, PL/X. This is where JZOS comes in. 

The Java™ Batch Launcher and Toolkit for z/OS® (JZOS) is a bridge between the well-known, modern Java programming language and low-level, yet reliable and powerful, legacy service on Z mainframes. The JZOS Batch Launcher is a native launcher for running Java applications directly as batch jobs or started tasks, allowing customers to manage new Java workloads the same way that they have for years with other core business workloads. Java applications can be fully integrated, using Job Control Language (JCL) as job steps to augment existing batch applications.  

In addition, the JZOS Toolkit is a set of Java classes that give Java applications direct access to traditional z/OS data and key z/OS system services. Some of the largest financial institutions and enterprise customers have decades of accumulated business logic, terabytes of critical data stored in MVS data sets and VSAM files, and countless batch jobs that form the operational heartbeat of the businesses. With JZOS, customers can write new applications in Java - leveraging the vast ecosystem of modern frameworks, tools, and developer talent - while maintaining direct, native access to existing mainframe resources.  

With JZOS on the mainframe, customer data stays exactly where it is, protected by the same security and reliability mechanisms that have proven themselves over decades. There's no need for expensive data replication, no synchronization headaches, and no risk of data inconsistency. JZOS give Java applications the ability to read and write MVS data sets as naturally as they would access any other file system, using familiar Java I/O patterns with capabilities such as: 

  • Accessing MVS data sets using a data set or DD name. 
  • A high-performance interface for reading and writing sequential data sets in record mode. 
  • Low-level wrappers for the z/OS C library I/O functions. 
  • A factory class for creating portable Readers and Writers to text files, including MVS data sets. 
  • Methods for allocating, deleting, and renaming MVS data sets. 
  • An interface to z/OS DFSMS Catalog Search (IGGCSI00). 
  • Reading partitioned data set directories. 

 

In addition, the JZOS Toolkit allows many types of traditional mainframe activities to be done in Java, such as: 

  • Reading, writing, and deleting z/OS log streams. 
  • Submitting z/OS batch jobs. 
  • Invoking z/OS Access Method Services (IDCAMS). 
  • Communicating with the MVS system console with methods for issuing single and multi-line write-to-operator (WTO) messages. 
  • Creating callback interfaces for handling MVS Start, Modify, and Stop commands. 
  • Methods for passing condition codes between Java and non-Java job steps. 
  • Accessing z/OS Workload Manager (WLM) services. 
  • Serializing and releasing z/OS resources by using the ISGENQ service. 
  • Converting COBOL and Assembler data types to Java objects. 
  • A utility class, which contains APIs for many z/OS functions, for example: 
  • Obtaining job, step, usernames, process IDs, and so on. 
  • Reading environment variables. 
  • Reading OS Memory. 
  • An interface for running the DFSORT program and directing I/O into or from Java applications. 
  • Java interfaces to the z/OS System management facility (SMF). SMF collects statistical data for each task when certain events occur in the life of the task and formats the information that it gathers into system-related (or job-related) records. JZOS SMF services include: 
  • Creating SMF record type 121 (X'79') — Java runtime performance statistics, which is written by the IBM JZOS batch launcher for z/OS and is used to record z/OS Java runtime performance statistics collected from the JVM.  
  • The ZUtil smfRecord() method which allows callers to write their own custom SMF records. 

 

As capable as JZOS is, we are always working to make it even better for customers. Recent enhancements include: 

If you have an enhancement you would like to see in JZOS please visit our ideas portal to submit your suggestions. 

0 comments
27 views

Permalink