Automatic shunning of Child COBOL JVM's
By Acshorten-Oracle on Apr 03, 2009
There are a series of COBOL Child JVMs created for products that support COBOL using the Oracle Utilities Application Framework for backward compatibility between the java based framework and the remaining COBOL based business objects in the product set.
There are instances when the COBOL processes hosted in “child” Java virtual machines can consume too many resources, e.g. running out of “native” memory. In the event that such a situation obtains, and cannot be resolved by e.g. identifying a problematic COBOL module, it is necessary to shutdown (“shun”) the OS process that hosts COBOL in order to reclaim the resources.
We have added a facility, in V2.2 in patch 8248566, to automatically “shun” a COBOL child JVM in order to forestall a possible situation where the process consumes too many resources. This facility allows both time-based and request-based scheduling for an automated rollover to a standby JVM.
A new, optional, facility has been created that allows for an automatic rollover from the active COBOL child JVM to a standby JVM, without disrupting any system processing. In order to allow this, the system must be configured to use at least two (2) child JVMs, to assure a near-instantaneous switchover to the standby JVM.
The feature is activated by placing either, or both, of the following properties into the spl.properties that govern the child JVM:
spl.runtime.cobol.remote.jvmMaxLifetimeSecs=[number of seconds]
spl.runtime.cobol.remote.jvmMaxRequests=[number of COBOL requests]
Set either property to zero (or leave it out) to disable the relevant rollover policy.
- If the JVM max lifetime seconds parameter is set to e.g. 3600 for one hour, then one hour after the first request is made to that child JVM, it will be automatically “shunned”, completing all in-flight requests normally, while transferring all new work to the standby child JVM.
- If the JVM max requests parameter is set to e.g. 50000, then after 50000 COBOL commands have been sent to the child JVM, it will be automatically “shunned” as above.
We recommend starting with the values of 3600/50000 if you are encountering problems with the COBOL child JVM exhausting its resources (e.g. COBOL-level memory allocation failures).
- When both parameters are provided, the child JVM will be shunned automatically when either condition obtains, e.g. shun after one hour, or 20000 COBOL commands, whichever comes first.
These policies are not active in the default configuration for backward compatibility.
The system creates log file entries when a rollover condition has been satisfied.