Name: md23716 Date: 04/05/2000
One of IBM and Sun's important partners, Skyva, is experiencing a Java problem in "San Francisco" ,
one of our (IBM's) largest middleware products, on a SUN E10K. San Francisco runs on the Solaris production
JVM 1.1.8 (the customer is running release 1.1.8_10).
Skyva's customer is running a high-volume process, where several thousand remote objects are created,
used briefly, and then are no longer required. The RMI weak references build up rapidly, and the garbage collector
is hopelessly inadequate in clearing them, since RMI weak references are only dealt with late on in the gc process,
and then only 200 are cleared before the whole gc cycle repeats. This is causing the whole application to stop for
several minutes - a disaster in the customer's high-volume processing environment.
This problem is preventing Skyva from deploying the application
on Solaris on a SUN E10K at Sonopress by April 17.
As part of the effort to get Skyva deployed,
we have back-ported a feature of JDK 1.2 which helps garbage collection clean up weak refs.
During the analysis for this work, we determined that the only way to effectively make the change in
JDK 1.18 was by changing some classes in the Sun JDK.
We have coded, unit tested and JCK tested a the backport. The required changes are not trivial, but they are fairly straightforward and are
wholly contained in two classes (sun.rmi.transport.ObjectTable and sun.rmi.transport.Target).
We will be raising an escalation for this problem with our licensee engineering contact in Ireland.
We will also make the changed code available to Sun engineers.
(Review ID: 103289)