JVM Pooling Usage Examples

In this example, consider a Oracle Forms application that has a user interface button.

When a user presses the button, Oracle Forms takes the value from a field on the screen, and passes it to Java (using the Java Importer feature) to do some complex calculation which cannot be done in PL/SQL. The result is then returned and displayed in a field in the Form. One JVM process is running to execute this Forms session.

The following figure shows how this Oracle Forms session has its own in-process JVM because JVM pooling is not enabled. In the left side of the image, there are multiple clients running their own Forms session. In the center of the image, each client makes a call to its own Forms Runtime process, which contains its own JVM process.

Figure -39 Forms Runtime with no JVM Pooling

Description of Figure -39 follows
Description of "Figure -39 Forms Runtime with no JVM Pooling"

The following figure shows the Forms Runtime processes sharing a single JVM process when JVM pooling is enabled, as shown in the right side of the image.

Figure -40 Forms Runtime with JVM Pooling Enabled

Description of Figure -40 follows
Description of "Figure -40 Forms Runtime with JVM Pooling Enabled"

In this example as shown in the above figure, five clients working in the same application through their own runtime processes are using a pooled JVM process instead of each Forms Runtime process spawning its own JVM instance. This can be a significant savings in memory usage and system resources.