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