IBM Support

PK88513: APPLICATION SERVER PERFORMANCE CAN DEGRADE IF A WEB SERVICE PROVIDER APP PROCESSES MANY DATE/TIME OBJECTS CONCURRENTLY.

Fixes are available

Java SDK 1.5 SR10 Cumulative Fix for WebSphere Application Server
7.0.0.7: WebSphere Application Server V7.0 Fix Pack 7 for IBM i
7.0.0.7: WebSphere Application Server V7.0 Fix Pack 7 for AIX
7.0.0.7: WebSphere Application Server V7.0 Fix Pack 7 for Windows
7.0.0.7: WebSphere Application Server V7.0 Fix Pack 7 for HP-UX
7.0.0.7: Java SDK 1.6 SR6 Cumulative Fix for WebSphere Application Server
7.0.0.7: WebSphere Application Server V7.0 Fix Pack 7 for Solaris
7.0.0.7: WebSphere Application Server V7.0 Fix Pack 7 for Linux
7.0.0.9: WebSphere Application Server V7.0 Fix Pack 9 for IBM i
7.0.0.9: WebSphere Application Server V7.0 Fix Pack 9 for Windows
7.0.0.9: WebSphere Application Server V7.0 Fix Pack 9 for AIX
7.0.0.9: WebSphere Application Server V7.0 Fix Pack 9 for HP-UX
7.0.0.9: Java SDK 1.6 SR7 Cumulative Fix for WebSphere Application Server
7.0.0.9: WebSphere Application Server V7.0 Fix Pack 9 for Solaris
7.0.0.9: WebSphere Application Server V7.0 Fix Pack 9 for Linux
7.0.0.11: WebSphere Application Server V7.0 Fix Pack 11 for IBM i
7.0.0.11: WebSphere Application Server V7.0 Fix Pack 11 for Windows
7.0.0.11: WebSphere Application Server V7.0 Fix Pack 11 for HP-UX
7.0.0.11: WebSphere Application Server V7.0 Fix Pack 11 for AIX
7.0.0.11: Java SDK 1.6 SR7 Cumulative Fix for WebSphere Application Server
7.0.0.11: WebSphere Application Server V7.0 Fix Pack 11 for Solaris
7.0.0.11: WebSphere Application Server V7.0 Fix Pack 11 for Linux
6.1.0.29: Java SDK 1.5 SR11 Cumulative Fix for WebSphere Application Server
6.1.0.31: Java SDK 1.5 SR11 FP1 Cumulative Fix for WebSphere Application Server
6.1.0.33: Java SDK 1.5 SR12 FP1 Cumulative Fix for WebSphere
7.0.0.13: WebSphere Application Server V7.0 Fix Pack 13 for AIX
7.0.0.13: WebSphere Application Server V7.0 Fix Pack 13 for HP-UX
7.0.0.13: WebSphere Application Server V7.0 Fix Pack 13 for IBM i
7.0.0.13: WebSphere Application Server V7.0 Fix Pack 13 for Linux
7.0.0.13: WebSphere Application Server V7.0 Fix Pack 13 for Solaris
7.0.0.13: WebSphere Application Server V7.0 Fix Pack 13 for Windows
7.0.0.13: Java SDK 1.6 SR8FP1 Cumulative Fix for WebSphere Application Server
6.1.0.35: Java SDK 1.5 SR12 FP2 Cumulative Fix for WebSphere
7.0.0.15: WebSphere Application Server V7.0 Fix Pack 15 for AIX
7.0.0.15: Java SDK 1.6 SR9 Cumulative Fix for WebSphere Application Server
7.0.0.15: WebSphere Application Server V7.0 Fix Pack 15 for HP-UX
7.0.0.15: WebSphere Application Server V7.0 Fix Pack 15 for IBM i
7.0.0.15: WebSphere Application Server V7.0 Fix Pack 15 for Linux
7.0.0.15: WebSphere Application Server V7.0 Fix Pack 15 for Solaris
7.0.0.15: WebSphere Application Server V7.0 Fix Pack 15 for Windows
6.1.0.37: Java SDK 1.5 SR12 FP3 Cumulative Fix for WebSphere
7.0.0.17: WebSphere Application Server V7.0 Fix Pack 17
7.0.0.17: Java SDK 1.6 SR9 FP1 Cumulative Fix for WebSphere Application Server
7.0.0.19: WebSphere Application Server V7.0 Fix Pack 19
7.0.0.21: WebSphere Application Server V7.0 Fix Pack 21
7.0.0.23: WebSphere Application Server V7.0 Fix Pack 23
7.0.0.25: WebSphere Application Server V7.0 Fix Pack 25
7.0.0.27: WebSphere Application Server V7.0 Fix Pack 27
7.0.0.29: WebSphere Application Server V7.0 Fix Pack 29
6.1.0.47: WebSphere Application Server V6.1 Fix Pack 47
7.0.0.31: WebSphere Application Server V7.0 Fix Pack 31
7.0.0.27: Java SDK 1.6 SR13 FP2 Cumulative Fix for WebSphere Application Server
7.0.0.33: WebSphere Application Server V7.0 Fix Pack 33
7.0.0.35: WebSphere Application Server V7.0 Fix Pack 35
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

  • A web service provider application which runs on WebSphere
    Application Server can experience performance degradation if the
    SOAP messages which are being parsed contain many thousands of
    date/time elements such as these:
      <p122:My_Time>2009-08-30T13:23:22.828Z</p122:My_Time>
    
    The element name 'My_Time' is given only as an example.
    
    
    Javacores taken from the running application server show that
    there is monitor contention for a synchronized method in the web
    services engine:
    
    com/ibm/ws/webservices/engine/encoding/ser/CalendarSerializer.ge
    tDateTimeValueAsString
    
    
    The monitor information from the javacore will show there are
    many threads which are waiting on a monitor:
    
    2LKMONINUSE      sys_mon_t:0x3A0B6E14 infl_mon_t: 0x3A0B6E3C:
    3LKMONOBJECT
    com/ibm/ws/webservices/engine/encoding/ser/CalendarSerializer@38
    5518F0/385518FC: owner "WebContainer : 60" (0x3BC9FA00), entry
    count 1
    3LKWAITERQ            Waiting to enter:
    3LKWAITER                "WebContainer : 0" (0x33905300)
    3LKWAITER                "WebContainer : 12" (0x377B7000)
    3LKWAITER                "WebContainer : 1" (0x3A494400)
    3LKWAITER                "WebContainer : 2" (0x3A494800)
    3LKWAITER                "WebContainer : 3" (0x3A8E2500)
    3LKWAITER                "WebContainer : 4" (0x384AE200)
    3LKWAITER                "WebContainer : 5" (0x384AEA00)
    3LKWAITER                "WebContainer : 9" (0x3AD16100)
    3LKWAITER                "WebContainer : 6" (0x3AD16500)
    3LKWAITER                "WebContainer : 8" (0x3AD16900)
    3LKWAITER                "WebContainer : 13" (0x376D8600)
    3LKWAITER                "WebContainer : 16" (0x391E1500)
    3LKWAITER                "WebContainer : 17" (0x391E1900)
    3LKWAITER                "WebContainer : 19" (0x399DFE00)
    3LKWAITER                "WebContainer : 21" (0x399E0600)
    3LKWAITER                "WebContainer : 22" (0x39FFB200)
    3LKWAITER                "WebContainer : 28" (0x3ABAF000)
    3LKWAITER                "WebContainer : 29" (0x3ABAF400)
    3LKWAITER                "WebContainer : 31" (0x3AE30300)
    
    
    The stack trace of the method which is holding the monitor will
    look something like this:
    
    "WebContainer : 60" (TID:0x3BC9FA00, sys_thread_t:0x3BBDDD90,
    state:CW, native ID:0x0060B029) prio=5
        at
    java/text/SimpleDateFormat.zeroPaddingNumber(SimpleDateFormat.ja
    va:1063(Compiled Code))
        at
    java/text/SimpleDateFormat.subFormat(SimpleDateFormat.java:1027(
    Compiled Code))
        at
    java/text/SimpleDateFormat.format(SimpleDateFormat.java:837(Comp
    iled Code))
        at
    java/text/SimpleDateFormat.format(SimpleDateFormat.java:809(Comp
    iled Code))
        at java/text/DateFormat.format(DateFormat.java:331(Compiled
    Code))
        at
    com/ibm/ws/webservices/engine/encoding/ser/CalendarSerializer.ge
    tDateTimeValueAsString(CalendarSerializer.java:197(Compiled
    Code))
        at
    com/ibm/ws/webservices/engine/encoding/ser/CalendarSerializer.ge
    tValueAsString(CalendarSerializer.java:153(Compiled Code))
        at
    com/ibm/ws/webservices/engine/encoding/ser/CalendarSerializer.se
    rialize(CalendarSerializer.java:135(Compiled Code))
        at
    com/ibm/ws/webservices/engine/encoding/SerializationContextImpl.
    serializeActual(SerializationContextImpl.java:993(Compiled
    Code))
        at
    com/ibm/ws/webservices/engine/encoding/SerializationContextImpl.
    serialize(SerializationContextImpl.java:550(Compiled Code))
        at
    com/ibm/ws/webservices/engine/encoding/ser/BeanSerializer.serial
    izeChild(BeanSerializer.java:491(Compiled Code))
    
    
    
    The thread holding the monitor could also be in this state:
    (The below stack does not correspond with the data logged above
    and is provided as an additional example)
    
    "WebContainer : 40" (TID:0x3B440800,
    sys_thread_t:0x3B3BDEE0, state:CW, native ID:0x00398059) prio=5
        at
    com/ibm/ws/webservices/engine/encoding/ser/CalendarSerializer.ge
    tDateTimeValueAsString(CalendarSerializer.java:193(Compiled
    Code))
        at
    com/ibm/ws/webservices/engine/encoding/ser/CalendarSerializer.ge
    tValueAsString(CalendarSerializer.java:153(Compiled Code))
        at
    com/ibm/ws/webservices/engine/encoding/ser/CalendarSerializer.se
    rialize(CalendarSerializer.java:135(Compiled Code))
        at
    com/ibm/ws/webservices/engine/encoding/SerializationContextImpl.
    serializeActual(SerializationContextImpl.java:993(Compiled
    Code))
        at
    com/ibm/ws/webservices/engine/encoding/SerializationContextImpl.
    serialize(SerializationContextImpl.java:550(Compiled Code))
        at
    com/ibm/ws/webservices/engine/encoding/ser/BeanSerializer.serial
    izeChild(BeanSerializer.java:491(Compiled Code))
    

Local fix

  • Reduce the amount of elements of this form:
    <p122:My_Time>2009-08-30T13:23:22.828Z</p122:My_Time>
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED:  IBM WebSphere Application Server users of   *
    *                  JAX-RPC applications with numerous          *
    *                  Calendar objects                            *
    ****************************************************************
    * PROBLEM DESCRIPTION: If a JAX-RPC application uses           *
    *                      numerous Calendar objects, you may      *
    *                      notice thread contention when the       *
    *                      messages are sent.                      *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    The JAX-RPC programming model allows you to send web messages
    derived from java.util.Calendar objects.
    
    In the following scenario, you may notice thread contention.
    The thread contention can cause performance degradation for
    the web service application.
    
    The scenario is:
      1) JAX-RPC applications that use numerous (thousands) of
    Calendar objects, and
    
      2) The applications are running on separate threads in the
    same JVM.
    
    The thread monitor information from a javacore will show
    there are many threads which are waiting for the
    CalendarSerializer object.
    
    Here is an example :
    
    2LKMONINUSE      sys_mon_t:0x3A0B6E14 infl_mon_t: 0x3A0B6E3C:
    3LKMONOBJECT
    com/ibm/ws/webservices/engine/encoding/ser/CalendarSerializer@38
    5518F0/385518FC: owner "WebContainer : 60" (0x3BC9FA00), entry
    count 1
    3LKWAITERQ            Waiting to enter:
    3LKWAITER                "WebContainer : 0" (0x33905300)
    3LKWAITER                "WebContainer : 12" (0x377B7000)
    3LKWAITER                "WebContainer : 1" (0x3A494400)
    3LKWAITER                "WebContainer : 2" (0x3A494800)
    3LKWAITER                "WebContainer : 3" (0x3A8E2500)
    3LKWAITER                "WebContainer : 4" (0x384AE200)
    3LKWAITER                "WebContainer : 5" (0x384AEA00)
    3LKWAITER                "WebContainer : 9" (0x3AD16100)
    3LKWAITER                "WebContainer : 6" (0x3AD16500)
    3LKWAITER                "WebContainer : 8" (0x3AD16900)
    3LKWAITER                "WebContainer : 13" (0x376D8600)
    3LKWAITER                "WebContainer : 16" (0x391E1500)
    3LKWAITER                "WebContainer : 17" (0x391E1900)
    3LKWAITER                "WebContainer : 19" (0x399DFE00)
    3LKWAITER                "WebContainer : 21" (0x399E0600)
    3LKWAITER                "WebContainer : 22" (0x39FFB200)
    3LKWAITER                "WebContainer : 28" (0x3ABAF000)
    3LKWAITER                "WebContainer : 29" (0x3ABAF400)
    3LKWAITER                "WebContainer : 31" (0x3AE30300)
    

Problem conclusion

  • The root of the problem is that the CalendarSerializer uses a
    single format object to write out the Calendar value.  In a
    multiple thread environment, the threads may be forced to wait
    for the format object to become available.  The wait only
    occurs if the different applications have numerous Calendar
    objects.
    
    The solution is to instantiate separate format objects for
    each thread.  This solution eliminates the thread contention
    since each thread has its own format object.
    
    The fix for this APAR is currently targeted for inclusion in
    fix pack 6.1.0.27 and 7.0.0.7.  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

    PK88513

  • Reported component name

    WEBS APP SERV N

  • Reported component ID

    5724H8800

  • Reported release

    61A

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2009-06-10

  • Closed date

    2009-06-18

  • Last modified date

    2009-06-18

  • 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

  • R61A PSY

       UP

  • R61H PSY

       UP

  • R61I PSY

       UP

  • R61P PSY

       UP

  • R61S PSY

       UP

  • R61W PSY

       UP

  • R61Z PSY

       UP

  • R700 PSY

       UP

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

Document Information

Modified date:
29 December 2021