On 16/05/2021 9:31 am, Andrew Rowley wrote:
On 15/05/2021 3:33 pm, David Crayford wrote:
Java is not viable on z/OS without zIIP engines.

I don't believe that is true. zIIP engines give you 3 things:


Answered below.


1) Savings in software cost.

Imperative. One of our customers, a large Austalian bank, recently undertook a significant application modernization project where they moved all of their web application servers into Websphere Liberty servers running in CICS. This was a real win/win as they could decommission distributed servers and middleware such as CTG and last but not least the management would be fully under the mainframe team. They started to run into problems when there was not enough zIIP capacity in production for the increased workload. They were already at the zIIP limit as it's pegged to the number of GCPs. Adding more GCPs would have blown the TCO and the project would have failed. Their MSU software charges increased to unacceptable levels when the Java workloads would spill over onto the GCPs. I heard that they resolved this problem after negotiating with IBM who was a partner on the project. Without zIIPs this kind of project would not be viable. With zIIPs it was touch and go. Capacity planning for zIIPs is critical.


2) Full speed CPUs, if your general purpose CPs are not full speed

The majority of our customers don't run at full capacity. IIRC, most are subcapacity.


3) Very often, they are less utilized than the general purpose CPs so you spend less time waiting for dispatch.

And very often that is not the case in a production environment. I would argue that it would be sensible for a shop to plan for what kind of zIIP capacity they need.


#3 may be significant, but nothing runs well if it isn't being dispatched - that isn't a Java problem.

The other factor that gives Java a bad reputation is that it allows you to bring applications to z/OS that were written with the assumption that they were the main thing running on the system and there is CPU to spare. This isn't how most people run their z/OS systems. I suspect this is the root of your Tomcat problem, but that is a Tomcat issue not a Java issue.


The problem was that the customer was running our Tomcat server on a kneecapped subcapacity LPAR with no zIIP. Tomcat is lightweight. Imagine if they were running a fully blown JEE stack like WAS! Almost all the open source Java software I use runs brilliantly on z/OS. I'm currently working on a project that uses Spring Boot and we have introduced Kotlin. I wouldn't advise customers  to run it on z/OS if they don't have zIIPs. One of our products (OMEGAMON for JVM on z/OS ) shows the low-level details of the JVM. Even a hello world program runs about 8 threads, 3 for JIT, 1 for OMR,  2 for GC etc. This all requires significantly more resources than the equivalent C++ code.



Java will run as well as any other work on general purpose CPs - but you lose the software cost savings.

And there is a good chance that you could introduce unacceptable software charges. I've worked on performance reporting tools for over two decades and in my experience customers measure everything, as any spike in workload can be a disaster in terms of cost. Java is a brilliant addition to z/OS and I use it a lot but I'm more than aware of the caveats of writing z/OS products that require it. Most of the time this isn't a problem as customers have zIIPs. Projects like Zowe have Java application servers in the stack. Maybe IBM will include a free zIIP in future hardware models.



Andrew Rowley
Black Hill Software

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to