|
Problem |
Customer experiences crash of WebSphere®
Application Server. After reviewing Application Server's standard out log,
customer sees java.lang.OutOfMemory errors.
Analysis by IBM® Support indicates a memory leak when calling
ClientDelegate method of
com.ibm.corba.ClientDelegate package. |
|
Cause |
The original code pre-Java build 20020613 had a hashtable
in ClientDelegate used to cache the servant IOR. This caused a leak in
CICS® applications. Java™ SDK 1.3.1 removed the hashtable and stored a
reference of the IOR inside the ORB directly. The getServantIOR() method
was moved from ClientDelegate to com.ibm.rmi.corba.ORB.
Removing the hashtable caused getServatIOR() to always be invoked to
calculate the IOR by creating a tie and calling orb.connect(tie). The side
effect of this is that the tie is stored each time but it is not cached
(no check is made to see if there already is one). Here is the leak.
The new fix is to return to the initial complex solution. Now it is the
ORB containing the reference for the IOR, and even if the logic of the
getServantIOR method is inside the ORB class, the method is kept in the
ClientDelegate that invokes the one in the ORB.
|
|
Solution |
There are two solutions to this problem:
- Apply PQ69054.
- The fix for this code is delivered in every 1.3.1 Java SDK, built
after 20021230.
Using ./java -version in the WebSphere/java/jre/bin directory,
the version must be
"J2RE 1.3.1 IBM Windows 32 build cn131w-20030129 ORB130" or greater.
WebSphere Application Server V4.0, fix pack 4, requires a upgrade of the
Java SDK.
WebSphere Application Server V4.0.4 prerequisites remain unchanged.
Please open a PMR to request assistance with a JDK upgrade. |
|
|
|
|
|
|
|