If you are running Java™ applications
in pooled JVMs, you can move them to run in a JVM server. Because
a JVM server can handle multiple requests for Java applications in the same JVM, you can reduce
the number of JVMs that are required to run the same workload.
Before you begin
Ensure that the application is threadsafe and is packaged as one or more OSGi bundles. The OSGi
bundles must be deployed in a CICS® bundle to zFS and specify
the correct target JVMSERVER resource.
The Java developer can use the CICS SDK for Java that is included with
CICS Explorer® to repackage a Java application using OSGi. For more information on how to migrate
applications that use third party JARs, see Upgrading the Java environment.
About this task
You can either use an existing JVM server or create a
JVM server for your application. Do not move an application to a JVM
server where the thread limit and usage are already high, because
you might introduce locking contentions in the JVM server.
Procedure
- Create or update a JVM server:
- If you decide to create a JVM server, see Configuring a Liberty JVM server. Many of the settings in a JVM
profile for a pooled JVM do not apply to JVM servers. The only option
that you might want to copy from the pooled JVM profile to the DFHOSGI
profile is the LIBPATH_SUFFIX option.
- If you use an existing JVM server, you might have to increase
the THREADLIMIT attribute on the JVMSERVER resource to handle the
additional application or update the options in the JVM server profile.
If you change the JVM profile, restart the JVM server to pick up the
changes.
- Create a BUNDLE resource
that points to the deployed bundle in zFS.
When you install
the BUNDLE resource, CICS loads
the OSGi bundles into the OSGi framework in the JVM server. The OSGi
framework resolves the OSGi bundles and registers the OSGi services.
Use CICS Explorer to
check that the BUNDLE resource is enabled. You can also use the OSGi
Bundles and OSGi Services views to check the state of the OSGi bundles
and services.
- Update the PROGRAM resource for the application:
- Ensure that the EXECKEY attribute is set to CICS.
All JVM server
work runs in CICS key.
- Remove the JVM profile name and enter the name of the
JVMSERVER resource.
- Ensure that the JVMCLASS attribute matches the OSGi
service of the Java application.
- Reinstall the PROGRAM resource for the application.
The PROGRAM resource uses the OSGi service to make an
OSGi bundle available to other CICS applications
outside the JVM server.
Results
When the Java application
is called, it runs in the JVM server.
What to do next
You can use the JVM server view in CICS Explorer and CICS statistics to monitor the
JVM server. If the performance is not optimal, adjust the thread limit.