IBM Support

PI25888: EJB CONTAINER ERROR SCENARIOS SHOULD BE IMPROVED

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • An unnecessarily large number of FFDC incident reports are
    generated if an error occurs during transaction processing.
    
    An exception occurs if an error occurs while starting an EJB
    module:
    [ERROR   ] CNTR0035E: EJB container caught
    java.lang.NullPointerException
        at
    com.ibm.ejs.container.HomeOfHomes.updateAppLinkData(HomeOfHomes.
    java:996)
    
    The dev/api/spec/com.ibm.ws.javaee.ejb.3.1 jar does not resolve
    as an OSGi bundle:
    BundleException: Could not resolve module:
    com.ibm.ws.javaee.ejb.3.1 [26]
      Unresolved requirement: osgi.wiring.package;
    filter:="(&(osgi.wiring.package=javax.xml.rpc.handler)(version>=
    1.1.0))"
    
    An exception occurs of the mdb-3.1 feature is enabled, the
    ejbLite-3.2 feature is not enabled, and a module contains a
    startup singleton session bean:
    [4/15/14 13:42:29:029 EDT] 00000037
    com.ibm.ws.ejbcontainer.osgi.internal.EJBRuntimeImpl         E
    CNTR4002E: The ERWWBaseEJBLite.jar EJB module in the ERWW_Lite
    application failed to start. Exception:
    com.ibm.ws.exception.RuntimeWarning: CNTR0201E: The
    EJBNPTimerStatsBean startup singleton session bean in the
    ERWWBaseEJBLite.jar module failed initialization.
    Caused by: java.lang.NullPointerException
    at
    com.ibm.ejs.csi.EJBApplicationMetaData.createStartupBeans(EJBApp
    licationMetaData.java:991)
    
    Misleading error messages are printed if a nonexistent class is
    specified with the <ejb-class> element in the ejb-jar.xml
    deployment descriptor file:
    [ERROR   ] CNTR0131E: The TestEJB bean in the testejb.jar module
    does not have any configured productive interfaces.
    
    EJB container threads continue to run in the background after
    the ejbLite-3.2 feature is removed.
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED:  All users of Enterprise Java Beans in IBM   *
    *                  WebSphere Application Server Liberty        *
    *                  Profile                                     *
    ****************************************************************
    * PROBLEM DESCRIPTION: EJB container error scenarios need to   *
    *                      be improved                             *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    In general, FFDC incidents should be generated for every catch
    block.  However, if an exception is caught, handled, and
    rethrown by the same component many times in a single code flow,
    it is unnecessary to generate an FFDC incident for each catch
    block.
    The EJB container will attempt to internally stop a module if it
    fails to fully start.  If an error occurs while starting the
    module before JNDI binding information is gathered, then the
    stop module processing will fail with a NullPointerException.
    The dev/api/spec/com.ibm.ws.javaee.ejb.3.1 jar depends on an
    internal javax.xml.rpc.handler package that is not exposed as an
    API.  If this jar is used in isolation, then this package will
    not be present, and the jar will fail to resolve as an OSGi
    bundle.
    The EJB container unconditionally attempts to start all startup
    singleton session beans declared in a module when the
    application starts.  Starting a singleton session bean relies on
    metadata processing that will not be performed if the ejbLite-
    3.1 feature is not enabled.
    The EJB container uses a class introspection service during
    module start to introspect EJB classes without loading the
    classes. If a nonexistent class is specified in the ejb-jar.xml
    deployment descriptor file, then a fake introspection object
    that returns empty data is used, which results in error messages
    that do not suggest that the EJB class is incorrect.
    The EJB container shutdown did not call a method to stop
    background threads.
    

Problem conclusion

  • Some unnecessary FFDC incidents were removed from the EJB
    container transaction error code paths.
    The EJB container code path to stop a module was changed to
    protect against modules that were not started enough to gather
    JNDI binding information.
    The dev/api/spec/com.ibm.ws.javaee.ejb.3.1 jar was changed to
    optionally depend on the internal javax.xml.rpc.handler package,
    which allows the jar to be used in isolation.
    The EJB container was changed to not attempt to start singleton
    session beans unless the ejbLite-3.1 feature is enabled.
    The EJB container was changed to recognize fake introspection
    objects and to print a clear error message:
    CNTR4115E: The com.ibm.test.TestEJB class name was specified by
    the <ejb-class> element in the ejb-jar.xml file for the TestEJB
    enterprise bean, but the class file could not be found.
    The EJB container shutdown was changed to call a method to stop
    background threads.
    The fix for this APAR is currently targeted for inclusion in fix
    pack 8.5.5.4.  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

    PI25888

  • Reported component name

    WAS LIBERTY COR

  • Reported component ID

    5725L2900

  • Reported release

    855

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2014-09-18

  • Closed date

    2014-10-04

  • Last modified date

    2014-10-13

  • 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

    WAS LIBERTY COR

  • Fixed component ID

    5725L2900

Applicable component levels

  • R855 PSY

       UP

[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSD28V","label":"WebSphere Application Server Liberty Core"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"855","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
28 April 2022