For system administrators keen to squeeze every bit of performance out of the JVM server, additional fine-tuning and low-level configuration of both the JVM and the underlying Language Environment (LE) enclave can be achieved using the LE run-time options and JVM profile artifacts. Each time the JVMSERVER resource is enabled, it rereads configuration from these files, allowing changes to the enclave characteristics or JVM settings. Typically, users may want to generate LE storage reports, or tune the JVM heap size, garbage collection model, or Just in Time (JIT) settings.
The resource also provides a convenient way to view the workload and other metrics. Thread count, maximum and current heap sizes, heap occupancy, cumulative thread count, and garbage collection are all displayed when you inquire on the resource (see Figure 2).
Finally, there’s the added benefit of standard Java debugging. Eclipse can attach a debugger to the JVM server. The single JVM makes it significantly easier to debug than the pooled model because all workloads appear as threads in the JVM. Previously, even identifying which JVM in the pool you needed was challenging.
CICS Development Environment
Anyone who has tried to write Java for CICS in the past deserves a medal. The lack of a proper development environment is quite irksome. Editing Java code on zFS (the z/OS Distributed File Service zSeries File System), if you've ever tried, is as cumbersome as eating a bar of chocolate with a fork while wearing gloves, and if you write Java code on the client, then you have File Transfer Protocol (FTP) and codepage conversion pitfalls to worry about. There’s no standard deployment mechanism, and no easy way to track what versions of code you might have uploaded to CICS. When you come from a world of code completion, syntax checking, error highlighting, color coding, dependency checking, background compiles, module outlines, and so on, how could you ever manage without it? Why should you ever manage without it?
There’s good news. CICS has provided the CICS Explorer SDK; it’s free to download and plugs right into Eclipse. You can have all the power of Eclipse while writing code to the Java CICS (JCICS) API, which provides access to CICS resources and data.
The Javadoc for the JCICS API is built-in and readily available. Moreover, the code is compiled in situ, right there in Eclipse. You don't need to worry about deploying your code to CICS; there's a wizard for that. The wizard can create and upload application code directly to the JVM server. There's a wizard in the SDK for just about any operation you want to perform.
The CICS Explorer SDK is a super-set of the CICS Explorer client, so you get all of Explorer's functionality plus the fantastic “development” benefits (see Figure 3); we'll come back to CICS Explorer SDK later.