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 interracts
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.