IBM Support

PM31649: EJBREMOVE() MAY BE CALLED BEFORE START METHOD OF AN EJB HAS COMPLETED AND THROW AN ILLEGALARGUMENTEXCEPTION:

Fixes are available

7.0.0.17: Java SDK 1.6 SR9 FP1 Cumulative Fix for WebSphere Application Server
6.1.0.47: WebSphere Application Server V6.1 Fix Pack 47
7.0.0.27: Java SDK 1.6 SR13 FP2 Cumulative Fix for WebSphere Application Server
6.1.0.39: Java SDK 1.5 SR12 FP4 Cumulative Fix for WebSphere Application Server
6.1.0.41: Java SDK 1.5 SR12 FP5 Cumulative Fix for WebSphere Application Server
6.1.0.43: Java SDK 1.5 SR13 Cumulative Fix for WebSphere Application Server
6.1.0.45: Java SDK 1.5 SR14 Cumulative Fix for WebSphere Application Server
6.1.0.47: Java SDK 1.5 SR16 Cumulative Fix for WebSphere Application Server
7.0.0.19: Java SDK 1.6 SR9 FP2 Cumulative Fix for WebSphere Application Server
7.0.0.21: Java SDK 1.6 SR9 FP2 Cumulative Fix for WebSphere
7.0.0.23: Java SDK 1.6 SR10 FP1 Cumulative Fix for WebSphere
7.0.0.25: Java SDK 1.6 SR11 Cumulative Fix for WebSphere Application Server
7.0.0.27: Java SDK 1.6 SR12 Cumulative Fix for WebSphere Application Server
7.0.0.29: Java SDK 1.6 SR13 FP2 Cumulative Fix for WebSphere Application Server
7.0.0.45: Java SDK 1.6 SR16 FP60 Cumulative Fix for WebSphere Application Server
7.0.0.31: Java SDK 1.6 SR15 Cumulative Fix for WebSphere Application Server
7.0.0.35: Java SDK 1.6 SR16 FP1 Cumulative Fix for WebSphere Application Server
7.0.0.37: Java SDK 1.6 SR16 FP3 Cumulative Fix for WebSphere Application Server
7.0.0.39: Java SDK 1.6 SR16 FP7 Cumulative Fix for WebSphere Application Server
7.0.0.41: Java SDK 1.6 SR16 FP20 Cumulative Fix for WebSphere Application Server
7.0.0.43: Java SDK 1.6 SR16 FP41 Cumulative Fix for WebSphere Application Server

Subscribe

You can track all active APARs for this component.

APAR status

  • Closed as program error.

Error description

  • In WebSphere Application Server v7.0, a performance improvement
    was made to the EJB pooling behavior, to more efficiently
    handle pool management.
    
    Because of the length of time spent in the 'start' method of
    this particular EJB, the performance optimization has become
    confused, resulting in the bean instance being discarded at the
    end of the method call.  This resulted in an
    java.lang.IllegalArgumentException:
    
    Same issue was not occurring in WebSphere Application Server
    v6.1 and prior.
    
    Although the EJB Container is allowed to discard stateless bean
    instances whenever it needs to, since WebSphere Application
    Server does document support for a minimum and maximum pool
    size configuration, it seems reasonable to expect that a bean
    instance should NOT be discarded in this scenario.
    
    In this particular customer scenario, the ejbRemove method being
    called also resulted in Spring class calling close for Hibernate
    session factory, which created an additional issue.  Customer
    patched the startupbean with dummy ejbRemove() and since this
    worked fine, proved the mentioned point above.
    

Local fix

  • N/A
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED:  Users of IBM WebSphere Application          *
    *                  Server V7.0 startup beans with long         *
    *                  duration start methods.                     *
    ****************************************************************
    * PROBLEM DESCRIPTION: Stateless bean ejbRemove method may be  *
    *                      called immediately after end of start   *
    *                      method of a startup bean.               *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    In WebSphere Application Server v7.0, a performance
    improvement was made to the bean pooling behavior, to more
    efficiently handle pool management.
    
    Because of the length of time spent in the 'start' method of
    this particular bean, the performance optimization has become
    confused, resulting in the bean instance being discarded at the
    end of the method call.  This resulted in a
    java.lang.IllegalArgumentException.
    

Problem conclusion

  • Although the container is allowed to discard stateless bean
    instances whenever it needs to, since WebSphere Application
    Server does document support for a minimum and maximum pool
    size configuration, it seems reasonable to expect that a bean
    instance should not be discarded in this scenario. The bean
    pooling code has been updated to allow the pool to reach at
    least the minimum level.
    
    The fix for this APAR is currently targeted for inclusion in
    fix pack 7.0.0.17.  Please refer to the Recommended Updates
    page for delivery information:
    http://www.ibm.com/support/docview.wss?rs=180&uid=swg27004980
    

Temporary fix

Comments

APAR Information

  • APAR number

    PM31649

  • Reported component name

    WEBSPHERE APP S

  • Reported component ID

    5724J0800

  • Reported release

    700

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2011-02-01

  • Closed date

    2011-02-15

  • Last modified date

    2011-02-15

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

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

Fix information

  • Fixed component name

    WEBSPHERE APP S

  • Fixed component ID

    5724J0800

Applicable component levels

  • R700 PSY

       UP



Document information

More support for: WebSphere Application Server
General

Software version: 7.0

Reference #: PM31649

Modified date: 15 February 2011