IBM Support

PK90778: CLASSCACHE LOOKUP IN REPOSITORYID CAUSES PERF DEGRADATION

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Error Message: The EJB methods deployed in different
    applications on the same server pass around heavily nested
    objects which trigger a lot of internal cache lookup. Under high
    load, the javacores reveal a bottleneck in
    com/ibm/rmi/util/RepositoryId .java's checkClassCache() method
    which result in very slow requests processing times.
    While this problem was reported on collocated EJB calls, the
    same problem might happen in the remote invocation scenario too.
    .
    This problem can be seen from Java 142 SR_11 onwards.
    
    Stack Trace: javacore thread stack showing contention:
    "WebContainer : 135" (TID:0x50BFDFC0, sys_thread_t:0x4077A528,
    state:MW, native ID:0x6B4F) prio=5
    at
    com.ibm.rmi.util.RepositoryId$ClassNameToClassCache.get(Reposito
    ryId.java(Compiled Code))
    at
    com.ibm.rmi.util.RepositoryId.checkClassCache(RepositoryId.java(
    Compiled Code))
    at
    com.ibm.rmi.util.RepositoryId.getClassFromType(RepositoryId.java
    (Compiled Code))
    at
    com.ibm.rmi.iiop.CDRInputStream.fast_read_value(CDRInputStream.j
    ava(Compiled Code))
    at
    com.ibm.rmi.iiop.CDRInputStream.fast_read_abstract_interface(CDR
    InputStream.java(Compiled Code))
    at
    com.ibm.rmi.iiop.CDRInputStream.fast_read_abstract_interface(CDR
    InputStream.java(Compiled Code))
    at
    com.ibm.rmi.io.IIOPInputStream.readObjectDelegate(IIOPInputStrea
    m.java(Compiled Code))
    at
    com.ibm.rmi.io.IIOPInputStream.readObjectOverride(IIOPInputStrea
    m.java(Compiled Code))
    at
    java.io.ObjectInputStream.readObject(ObjectInputStream.java(Comp
    iled Code))
    at java.util.ArrayList.readObject(ArrayList.java(Compiled Code))
    at sun.reflect.GeneratedMethodAccessor58.invoke(Unknown Source)
    at
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethod
    AccessorImpl.java(Compiled Code))
    at java.lang.reflect.Method.invoke(Method.java(Compiled Code))
    at
    com.ibm.rmi.io.IIOPInputStream.invokeObjectReader(IIOPInputStrea
    m.java(Compiled Code))
    at
    com.ibm.rmi.io.IIOPInputStream.inputObjectUsingClassDesc(IIOPInp
    utStream.java(Compiled Code))
    at
    com.ibm.rmi.io.IIOPInputStream.inputObjectClassDesc(IIOPInputStr
    eam.java(Compiled Code))
    at
    com.ibm.rmi.io.IIOPInputStream.readSerializable(IIOPInputStream.
    java(Compiled Code))
    at
    com.ibm.rmi.io.IIOPInputStream.simpleReadObjectInternal(IIOPInpu
    tStream.java(Compiled Code))
    at
    com.ibm.rmi.io.IIOPInputStream.simpleReadObject(IIOPInputStream.
    java(Compiled Code))
    at
    com.ibm.rmi.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java(
    Compiled Code))
    at
    com.ibm.rmi.iiop.CDRInputStream.read_value(CDRInputStream.java(C
    ompiled Code))
    at com.ibm.rmi.util.ProxyUtil.copyObject(ProxyUtil.java(Compiled
    Code))
    at
    com.ibm.rmi.util.ProxyUtil.invokeWithClassLoaders(ProxyUtil.java
    (Compiled Code))
    at
    com.ibm.CORBA.iiop.ClientDelegate.invoke(ClientDelegate.java(Com
    piled Code))
    at $Proxy155.ejbMethod(Unknown Source)
    at com.a.b.c.d._EJB_Stub.ejbMethod(_EJB_Stub.java(Compiled
    Code))
    .
    

Local fix

Problem summary

  • The slow processing of requests was caused by the prevalent
    cache design.
    

Problem conclusion

  • This defect will be fixed in:
    1.4.2 SR13-4 (Linux AMD64)
    1.4.2 SR13-4 (Windows AMD64)
    1.4.2 SR13-4 (z/OS 64-bit)
    1.4.2 SR13-4
    .
    The cache design was overhauled to allow for more concurrent
    access as also the classloading-order which was refactored to
    prevent possible repetition of searches.
    .
    To obtain the fix:
    Install build 20090816 or later
    

Temporary fix

Comments

APAR Information

  • APAR number

    PK90778

  • Reported component name

    LIN AMD 64 JAVA

  • Reported component ID

    620400103

  • Reported release

    142

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2009-07-07

  • Closed date

    2009-08-19

  • Last modified date

    2010-01-18

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

    PK90779 PK90782 PK90852

Fix information

  • Fixed component name

    LIN AMD 64 JAVA

  • Fixed component ID

    620400103

Applicable component levels

  • R142 PSN

       UP

[{"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SSCGLMF","label":"Java SDK"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"1.4.2","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
18 January 2010