Considerations Working with the Java Garbage Collector
Memory is managed in
the JRE by the Java garbage collector. Because PeopleTools has no
control over when the Java garbage collector runs (apart from a user
in their Java program calling it using system.gc()
),
PeopleTools interacts dynamically with the Java runtime garbage collector.
In particular, PeopleCode objects created from a Java program (such
as records, fields, and so on,) are in effect peer objects of real
PeopleCode objects in PeopleTools. The release of these objects must
be linked. Using the weak reference mechanism in Java, PeopleTools
dynamically interacts with the Java garbage collector each time the
execution thread passes through the JNI. This allows long-running
Java applications in a PeopleTools context to function without having
to wait for an "end of service" event for object cleanup.
There might be occasions where a Java application creates many application classes and wants to force the PeopleTools garbage collector to run. That can be achieved by calling the CollectGarbage function. This is not normally necessary.