The single-use JVM is not kept in the JVM pool for reuse. With this type of JVM, the JVM is initialized, is used to run a single Java program, and then is automatically destroyed. A single-use JVM has the option REUSE=NO (or the older option Xresettable=NO) in its JVM profile.
The single-use JVM is like the earlier JVM that was supported by CICS in CICS TS 1.3, for which support was removed in CICS TS 2.3 (see Removal of support for CICS Transaction Server for OS/390, Version 1 Release 3 JVMs). If you use a single-use JVM, you can invoke the user-replaceable program DFHJVMAT to change options in the JVM profile, as you could in CICS TS 1.3. This user-replaceable program cannot be invoked for a continuous JVM or for a resettable JVM.
The single-use JVM has the lowest performance of any of the JVM types in terms of transaction throughput, because the JVM must be initialized for each use. Some time is saved by the absence of a reset, but this is less than the time used to initialize the JVM.
The single-use JVM is not recommended for running Java applications in a production environment, and it should not be used for Java applications comprising enterprise beans or which are started by IIOP requests. It is only beneficial for Java applications that were originally designed to run in a single-use JVM, and have not been made suitable for running in a JVM that is intended for reuse. To improve performance, you should redesign these Java programs as soon as you can, so that unresettable actions are eliminated, and the programs can run in a continuous JVM or a resettable JVM.
A single-use JVM cannot use the shared class cache (that is, it cannot be a worker JVM). Because it cannot use the shared class cache, a single-use JVM has a longer startup time and higher storage requirements than a resettable or continuous JVM that is using the shared class cache, as well as incurring the startup costs each time the JVM is used.
Programming considerations for single-use JVMs explains the programming considerations for applications that run in a single-use JVM.