IBM Support

PM54432: Improve search time for classes during JAXBContext creation.

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • The optimum path for creating a JAXBContext is for all
    the packages in the context to have either an ObjectFactory
    or package-info class.  If that were the case, we would not
    be searching the jars.  Here is an example trace line logged
    when we encounter a package without one of these classes:
    
    [11/10/11 13:46:34:401 PST] 0000003c JAXBUtils     1
    org.apache.axis2.jaxws.message.databinding.JAXBUtils
    createJAXBContextValue Package com.acompany.apackage does not
    contain an  ObjectFactory or package-info class.  Searching
    for JAXB classes
    
    So, the most performant JAXBContext creation is to ensure
    your packages in the context have an ObjectFactory or
    package-info class.
    
    Once we find a package without either of the mentioned
    classes, we enter the path of searching for classes and
    getClassesForJarFile.  Time required to collect this package
    information may be improved.
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED:  All administrators of IBM WebSphere         *
    *                  Application Server V6.1.0 Feature Pack for  *
    *                  Web Services.                               *
    ****************************************************************
    * PROBLEM DESCRIPTION: Improve search time for classes         *
    *                      during JAXBContext creation within a    *
    *                      JAX-WS application.                     *
    ****************************************************************
    * RECOMMENDATION:  Install a fixpack that contains this APAR.  *
    ****************************************************************
    If a package used in the creation of a JAXBContext does not
    contain either an ObjectFactory or package-info class, a
    search for classes is performed.  Improve the search time for
    the classes.
    

Problem conclusion

  • Packages could be searched for classes more than one time and
    so there is now an option to cache the class list once it is
    created.  This new caching option must be enabled by setting
    the following JVM property to true:
    com.ibm.ws.websvcs.getJAXBContext.cacheClassList
    
    The default value of the JVM property is false.
    
    APAR PM54432 requires changes to documentation.
    
    NOTE: Periodically, we refresh the documentation on our
    Web site, so the changes might have been made before you
    read this text. To access the latest on-line
    documentation, go to the product library page at:
    
    http://www.ibm.com/software/webservers/appserv/library
    
    The following changes to the z/OS version of the WebSphere
    Application Server Version 6.1 Information Center will be
    made available in September, 2012.
    
    The topic "Java Virtual Machine custom properties" will be
    updated to include the following description of the new
    com.ibm.ws.websvcs.getJAXBContext.cacheClassList
    JVM custom property
    
    com.ibm.ws.websvcs.getJAXBContext.cacheClassList
    
    Set this property to true to enable the caching of a list
    of the JAXB classes contained in a package.
    
    Typically, when building a JAXBContext, if a package does
    not contain either a ObjectFactory or package-info class
    file, the package is searched for all potential JAXB
    classes. This search process can be time consuming and can
    be delayed by JAR file locking. If you set this property to
    true, the class list for each package is cached, eliminating
    the need for subsequent searches of the same package. Later
    JAXBContext creation requests retrieve the cached version of
    the class list instead of initiating a new search.
    
    Because the class list cache is created using a SoftReference,
    the cache can be released if available memory becomes low.
    
    The default value for this property is false.
    
    If you decide to use this custom property, you must specify
    it as an application server JVM custom property.
    
    APAR PM54432 is currently targeted for inclusion in Fix Pack
    6.1.0.45 of the IBM WebSphere Application Server V6.1 Feature
    Pack for Web Services on z/OS.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PM54432

  • Reported component name

    WEBSPHERE FOR Z

  • Reported component ID

    5655I3500

  • Reported release

    610

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2011-12-15

  • Closed date

    2012-01-30

  • Last modified date

    2012-10-01

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

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

    PM56170 UK81614

Fix information

  • Fixed component name

    WEBSERVICE FEAT

  • Fixed component ID

    5655I3550

Applicable component levels

  • R610 PSY UK81614

       UP12/09/23 P F209

[{"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SS7K4U","label":"WebSphere Application Server for z\/OS"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"6.1","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
01 October 2012