Link to Liberty performance conclusion
The programs that are used for this study are simple, with little application logic. They demonstrate the difference in CPU cost of the EXEC CICS LINK infrastructure within CICS® that enables calls to COBOL or Java™ CICS programs.
Linking to COBOL is the lowest cost, both in terms of total and non-zIIP eligible CPU. Linking to the Enterprise Java version of the application running in a Liberty JVM server costs just over twice the total CPU cost of the COBOL version and about half of this extra time can be offloaded to run on a zIIP processor. Using either version of the Java program costs more total CPU than the COBOL version and also costs more general processor time too.
Much of the cost of running Java is zIIP-eligible but profiling analysis has shown that the management of the extra TCBs needed in the Java cases needs increased z/OS® dispatcher time. The increased time spent in z/OS dispatching routines is not zIIP-eligible. Using JCICS also creates more calls to the CICS EXEC interface (with ASSIGN and CONTAINER management calls) which leads to a further increase in general processor time compared to the COBOL case.
Compared to the OSGi JVM server case, Java and UNIX threads are managed more efficiently in the Liberty JVM server case by employing thread reuse techniques. This improved efficiency makes the Liberty JVM server case significantly cheaper in terms of total CPU cost than using an OSGi JVM server.
The response times for the COBOL and Liberty JVM server versions were similar and CICS suspend time was the main contributor to this time. At the transaction rate used, waiting for first CICS dispatch (recorded in the CICS monitor data field DSPDELAY) accounted for most of the time the transactions were suspended. A longer response time was observed for the OSGi JVM server version. This was due to a longer dispatch time that is caused by the T8 TCB being placed into an operating wait state for much longer times by the less efficient Java and UNIX thread management of the OSGi JVM server.