IBM Support

PH52005: THIS APAR IS TO ADD A CACHE IN EMF OF THE SAXPARSERFACTORY

Subscribe to this APAR

By subscribing, you receive periodic emails alerting you to the status of the APAR, along with a link to the fix after it becomes available. You can track this item individually or track all items by product.

Notify me when this APAR changes.

Notify me when an APAR for this component changes.

 

APAR status

  • Closed as program error.

Error description

  • Client's upgrade from WebSphere 8.5.5.19 to 8.5.5.22 caused
    significant performance regression
    
    This APAR is to add a cache in EMF of the SAXParserFactory.
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED:  All users of IBM WebSphere                  *
    *                  Application Server who also use IBM         *
    *                  Business Automation Workflow                *
    ****************************************************************
    * PROBLEM DESCRIPTION: Performance might be impacted after     *
    *                      upgrading to WebSphere Application      *
    *                      Server 8.5.5.21 due a security APAR     *
    *                      PH38310.                                *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    PH38310 has a minor performance impact on the creation of a
    SAXParser.  Some usages of Business Automation Workflow,
    presumably applications needing to process a large number of
    xml files, might cause repeated creation of a SAXParser, which
    can cause a noticeable slow down.  Most users should not see
    any noticeable impact after installing PH38310 or upgrading to
    8.5.5.21 or higher.
    Performance problems are typically investigated by taking java
    thread dumps over regular intervals during the period of time
    when the program seems to be slow.   The following is an
    example stack trace from a thread dump for the reported
    problem. Note the inclusion of XMLLoadImpl.makeParser. This
    indicates that the thread is exercising code which creates a
    SAXParser. In the reported problem most thread dumps contain a
    stack similar to this.
    Java callstack:
    at
    com/ibm/ws/classloader/CompoundClassLoader.loadClass(CompoundCla
    ssLoader.java:556(Compiled Code))
    (entered lock:
    com/ibm/ws/classloader/CompoundClassLoader@0x0000000106B5A268,
    entry count: 1)
    at
    java/lang/ClassLoader.loadClass(ClassLoader.java:876(Compiled
    Code))
    at
    org/apache/xerces/impl/dv/ObjectFactory.findProviderClass(Byteco
    de PC:55(Compiled Code))
    at
    org/apache/xerces/impl/dv/ObjectFactory.newInstance(Bytecode
    PC:3(Compiled Code))
    at org/apache/xerces/impl/dv/DTDDVFactory.getInstance(Bytecode
    PC:5(Compiled Code))
    ...
    at
    org/apache/xerces/parsers/ObjectFactory.createObject(Bytecode
    PC:3(Compiled Code))
    ...
    at org/apache/xerces/jaxp/SAXParserImpl.<init>(Bytecode
    PC:4(Compiled Code))
    at
    org/apache/xerces/jaxp/SAXParserFactoryImpl.newSAXParserImpl(Byt
    ecode PC:9(Compiled Code))
    at
    org/apache/xerces/jaxp/SAXParserFactoryImpl.setFeature(Bytecode
    PC:109(Compiled Code))
    at
    org/eclipse/emf/ecore/xmi/impl/XMLLoadImpl.makeParser(XMLLoadImp
    l.java:379(Compiled Code))
    at
    org/eclipse/emf/ecore/xmi/impl/XMLLoadImpl.load(XMLLoadImpl.java
    :188(Compiled Code))
    at
    org/eclipse/emf/ecore/xmi/impl/XMLResourceImpl.doLoad(XMLResourc
    eImpl.java:179(Compiled Code))
    at
    org/eclipse/wst/common/internal/emf/resource/CompatibilityXMIRes
    ourceImpl.basicDoLoad(CompatibilityXMIResourceImpl.java:180(Comp
    iled Code))
    at
    org/eclipse/wst/common/internal/emf/resource/CompatibilityXMIRes
    ourceImpl.doLoad(CompatibilityXMIResourceImpl.java:173(Compiled
    Code))
    at
    org/eclipse/emf/ecore/resource/impl/ResourceImpl.load(ResourceIm
    pl.java:1094(Compiled Code))
    at
    org/eclipse/emf/ecore/resource/impl/ResourceImpl.load(ResourceIm
    pl.java:900(Compiled Code))
    at
    org/eclipse/wst/common/internal/emf/resource/CompatibilityXMIRes
    ourceImpl.load(CompatibilityXMIResourceImpl.java:259(Compiled
    Code))
    at
    com/ibm/websphere/resource/WASResourceImpl.load(WASResourceImpl.
    java:286(Compiled Code))
    (entered lock:
    com/ibm/websphere/resource/WASResourceImpl@0x0000000654B90078,
    entry count: 1)
    at
    org/eclipse/emf/ecore/resource/impl/ResourceSetImpl.demandLoad(R
    esourceSetImpl.java:249(Compiled Code))
    at
    org/eclipse/emf/ecore/resource/impl/ResourceSetImpl.demandLoadHe
    lper(ResourceSetImpl.java:264(Compiled Code))
    at
    org/eclipse/emf/ecore/resource/impl/ResourceSetImpl.getResource(
    ResourceSetImpl.java:390(Compiled Code))
    at
    com/ibm/websphere/resource/WASResourceSetImpl.getResource(WASRes
    ourceSetImpl.java:325(Compiled Code))
    (entered lock:
    com/ibm/websphere/resource/WASResourceSetImpl@0x0000000654B22280
    , entry count: 2)
    at
    com/ibm/websphere/resource/WASResourceSetImpl.getResource(WASRes
    ourceSetImpl.java:298(Compiled Code))
    (entered lock:
    com/ibm/websphere/resource/WASResourceSetImpl@0x0000000654B22280
    , entry count: 1)
    at
    com/ibm/ws/runtime/service/ConfigRootImpl.getResource(ConfigRoot
    Impl.java:351(Compiled Code))
    at
    com/ibm/ws/runtime/service/ConfigRootImpl.getResource(ConfigRoot
    Impl.java:321(Compiled Code))
    at
    com/ibm/bpm/config/model/wccm/util/RuntimeWCCMHelper$3.run(Runti
    meWCCMHelper.java:383(Compiled Code))
    at
    com/ibm/bpm/config/model/wccm/util/RuntimeWCCMHelper$3.run(Runti
    meWCCMHelper.java:375(Compiled Code))
    at
    java/security/AccessController.doPrivileged(AccessController.jav
    a:747(Compiled Code))
    at
    com/ibm/bpm/config/model/wccm/util/RuntimeWCCMHelper.getConfigOb
    jects(RuntimeWCCMHelper.java:374(Compiled Code))
    at
    com/ibm/bpm/config/model/wccm/util/RuntimeWCCMHelper.getConfigOb
    ject(RuntimeWCCMHelper.java:410(Compiled Code))
    at
    com/ibm/bpm/config/model/wccm/util/RuntimeWCCMHelper.getDeployme
    ntEnvironments(RuntimeWCCMHelper.java:181(Compiled Code))
    at
    com/ibm/bpm/config/model/wccm/util/RuntimeWCCMHelper.getDeployme
    ntEnvironments(RuntimeWCCMHelper.java:214(Compiled Code))
    at
    com/ibm/bpm/config/model/wccm/util/RuntimeWCCMHelper.getDeployme
    ntEnvironment(RuntimeWCCMHelper.java:200(Compiled Code))
    at
    com/ibm/bpm/config/spi/ConfigurationSpi.getBPMURLByScenario(Conf
    igurationSpi.java:1603(Compiled Code))
    at
    com/ibm/bpm/config/spi/WSConfigurationSpi.getBPMURLByScenario(WS
    ConfigurationSpi.java:869(Compiled Code))
    at
    com/ibm/bpm/endpoint/impl/EndpointServiceUtils.getBpmUrl(Endpoin
    tServiceUtils.java:115(Compiled Code))
    at
    com/ibm/bpm/endpoint/impl/EndpointServiceImpl.getEndpointUrl(End
    pointServiceImpl.java:222(Compiled Code))
    at
    com/ibm/bpm/endpoint/impl/EndpointServiceImpl.getEndpointUrl(End
    pointServiceImpl.java:119(Compiled Code))
    at
    com/lombardisoftware/server/ejb/clientservices/FavoriteSupport.g
    etExposedURL(FavoriteSupport.java:1055(Compiled Code))
    at
    com/lombardisoftware/server/ejb/clientservices/ClientServicesCor
    e.getExposedURL(ClientServicesCore.java:1978(Compiled Code))
    at sun/reflect/GeneratedMethodAccessor432.invoke(Bytecode
    PC:50(Compiled Code))
    at
    sun/reflect/DelegatingMethodAccessorImpl.invoke(DelegatingMethod
    AccessorImpl.java:55(Compiled Code))
    at java/lang/reflect/Method.invoke(Method.java:508(Compiled
    Code))
    at
    org/springframework/aop/support/AopUtils.invokeJoinpointUsingRef
    lection(AopUtils.java:317(Compiled Code))
    at
    org/springframework/aop/framework/ReflectiveMethodInvocation.inv
    okeJoinpoint(ReflectiveMethodInvocation.java:190(Compiled
    Code))
    at
    org/springframework/aop/framework/ReflectiveMethodInvocation.pro
    ceed(ReflectiveMethodInvocation.java:157(Compiled Code))
    at
    com/lombardisoftware/utility/spring/TransactionInterceptor.invok
    e(TransactionInterceptor.java:76(Compiled Code))
    at
    org/springframework/aop/framework/ReflectiveMethodInvocation.pro
    ceed(ReflectiveMethodInvocation.java:179(Compiled Code))
    at
    com/lombardisoftware/utility/spring/CoreEntryInterceptor.invoke(
    CoreEntryInterceptor.java:44(Compiled Code))
    at
    com/lombardisoftware/utility/spring/PSCoreEntryInterceptor.invok
    e(PSCoreEntryInterceptor.java:14(Compiled Code))
    at org/springframework/aop/framework ...
    

Problem conclusion

  • The code has been updated to cache the SAXParser to avoid
    creating it repeatedly.
    
    The fix for this APAR is targeted for inclusion in fix pack
    8.5.5.24 and 9.0.5.15 . For more information, see 'Recommended
    Updates for WebSphere Application Server':
    https://www.ibm.com/support/pages/node/715553
    

Temporary fix

Comments

APAR Information

  • APAR number

    PH52005

  • Reported component name

    WEBS APP SERV N

  • Reported component ID

    5724H8800

  • Reported release

    850

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2023-01-18

  • Closed date

    2023-03-17

  • Last modified date

    2023-03-28

  • 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

    WEBS APP SERV N

  • Fixed component ID

    5724H8800

Applicable component levels

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

Document Information

Modified date:
28 March 2023