On Tue, Apr 15, 2025 at 11:22 PM Kirk Wolf <[email protected]> wrote:
> I wouldn't think that there would be much of a performance issue between > using: > > - the "java" shell command launcher > - the JZOS batch launcher > - a custom Java JVM launcher. > > They would all use the JVM launcher API to start the JVM and kick off a > class method. The choice comes down to the features and interface that > your product wants. > > I had not considered that messages written by the JVM to it's stdout would > be piped through another process (BPXBATCH) that would not run on zIIP. > Seems like minor stuff to me, but I guess that it might not always be. > I'm actually surprised to hear that the JZOS batch launcher load module is > itself zIIP enabled. I know that the JVM and the JZOS toolkit native > library DLLs are. > There is a small amount of CPU used to start the JZOS launcher, but after that it runs entirely on zIIP. We have a Java program that tails the SMF logstream, formats the CMF records into JSON, and writes to STDOUT, either to the spool or to a data set. There can be a LOT of data. Previously, when using other batch launchers, we noticed significant general purpose CPU usage. I profiled the behavior using IBM APA, and the histogram showed that 90 percent of the time was spent in pause element pause and resume. I assume this reflects frequent context switching between a zIIP and a general purpose processor. After switching to JZOS, that issue disappeared, which suggests that the zIIP bit is set for the entire process. With Python, we have observed that whenever native code is called, Python does not re-dispatch back to a zIIP. We reported this to IBM. > BTW: The JZOS Console support is not actually part of the JZOS Batch > Launcher. There is a com.ibm.jzos.MvsConsole class in the JZOS Toolkit. > If you invoke the startMvsCommandListener() static method, you can have > console support in any z/OS Java application. The JZOS Batch launcher > just starts this after initializing the JVM, although that can be disabled > with an environment variable. The MvsConsole class also allows you to > customize a callback so that you can have whatever command language you > want. > That is interesting. When I run a batch Java program using COZBATCH that listens for events with com.ibm.jzos.MvsConsole, and I issue a STOP command, I get the message IEE341I <jobname> NOT ACTIVE. I must be missing something or doing it wrong? > > Kirk Wolf > Dovetailed Technologies > https://coztoolkit.com > > On Tue, Apr 15, 2025, at 9:09 AM, David Crayford wrote: > > We use JZOS. There are some advantages. For example, everything is > offloaded to a zIIP. If you use BPXBATCH every time you write a log message > to STDOUT it will context switch back to a GP. There are also important > features for started tasks such as STOP and MODIFY commands. > > > > > On 15 Apr 2025, at 17:40, Colin Paice < > [email protected]> wrote: > > > > > > Does anyone have any experience of using jzos over Unix Services? > > > > > > I've used it in the past and it worked fine. I wonder why it is not > more > > > generally used (eg by Liberty, zOSMF, Zowe etc). > > > > > > Does it have better performance? > > > > > > Colin > > > > > > ---------------------------------------------------------------------- > > > For IBM-MAIN subscribe / signoff / archive access instructions, > > > send email to [email protected] with the message: INFO IBM-MAIN > > > > ---------------------------------------------------------------------- > > For IBM-MAIN subscribe / signoff / archive access instructions, > > send email to [email protected] with the message: INFO IBM-MAIN > > > > ---------------------------------------------------------------------- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to [email protected] with the message: INFO IBM-MAIN > ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN
