If you want to terminate the shared class cache without restarting it,
use either of the following two commands:
- CEMT PERFORM CLASSCACHE PHASEOUT, PURGE or FORCEPURGE
(or the equivalent EXEC CICS command). This command terminates the shared
class cache and any worker JVMs that are dependent on it. If the shared class
cache is not restarted (either by a command or by the autostart feature),
JVMs that need to use the shared class cache cannot run. JVMs that are not
using the shared class cache are not affected by this command.
- CEMT SET JVMPOOL PHASEOUT, PURGE or FORCEPURGE
(or the equivalent EXEC CICS command). This command terminates all the JVMs
in the JVM pool, both those sharing the class cache and those running independently
as standalone JVMs, and terminates the shared class cache. Standalone JVMs
can restart as needed, but if the shared class cache is not restarted (either
by a command or by the autostart feature), JVMs that need to use the shared
class cache cannot run.
With both of these commands, you can choose to purge or forcepurge the
JVMs, or allow them to finish running their current Java programs before they
are deleted.
When you enter these commands, if autostart is enabled for the shared class
cache, a new shared class cache is created as soon as a JVM requests its use.
If you want to prevent this—that is, you want to terminate the shared
class cache without restarting it—then you need to disable autostart.
You can disable autostart in three ways:
- When you are entering a CEMT PERFORM CLASSCACHE PHASEOUT, PURGE or FORCEPURGE command (or the equivalent EXEC CICS command)
to terminate the shared class cache, use the AUTOSTARTST option to disable
autostart. (This option is not available if you are using the CEMT SET JVMPOOL
PHASEOUT, PURGE or FORCEPURGE command.)
- Before you enter a command to terminate the shared class cache, use the CEMT SET CLASSCACHE AUTOSTARTST command (or the equivalent
EXEC CICS command) to disable autostart.
- To disable autostart for the next CICS execution, set the JVMCCSTART system initialization parameter to NO.
Remember that if a Java program needs to run in a JVM that uses the shared
class cache, and the shared class cache has been terminated and not restarted,
and autostart is disabled, then the program cannot run.
You can use the CEMT INQUIRE CLASSCACHE command
(or the equivalent EXEC CICS command) to find out the current status of autostart
for the shared class cache. When you change the autostart status of the shared
class cache while CICS is running, subsequent CICS restarts use the most recent
setting that you made using the CEMT SET CLASSCACHE command or the CEMT PERFORM
CLASSCACHE command (or the equivalent EXEC CICS commands), unless the system
is INITIAL or COLD started, or the JVMCCSTART system initialization parameter
is specified as an override at startup. In these cases, the setting from the
system initialization parameter is used.
If you do not want to restart the shared class cache, and the worker JVMs
that are dependent on it remain active for too long, you can repeat the CEMT
PERFORM CLASSCACHE PURGE or FORCEPURGE command, or the CEMT SET JVMPOOL PURGE
or FORCEPURGE command (or the equivalent EXEC CICS commands), to attempt to
purge the tasks that are using the JVMs. You should only repeat these commands
if autostart for the shared class cache is disabled.
The commands operate on both the most recent shared class cache, and any old
shared class caches in the system that still have JVMs dependent on them.
If autostart is enabled, and you repeat the command to terminate the shared
class cache, the command could operate on the new shared class cache that
has been started by the autostart facility, and terminate it.