Uploaded image for project: 'Axis'
  1. Axis
  2. AXIS-2912

Axis 1.4 performance

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Critical
    • Resolution: Unresolved
    • 1.4
    • None
    • None
    • ***** Pivotal Values *****

       Reported Version: 9.8
       OSName: SUSE Linux Enterprise Server
       OSVersion:
       Hardware:
       Environment: Any Operating System
      --------------------
    • Patch, Important

    Description

      On serialization process we saw lots of threads blocked executing org.apache.axis.encoding.ser.CalendarSerializer.getValueAsString (20 times in 5 dumps, 6 times max). This method seems to access to a static SimpleDateFormat object in a synchronized block, so it's shaded for any thread serializing SOAP response. They presume this code is used to serialize date attibutes on SOAP response. It is affecting the overall performance while forming the SOAP response with the increase in the number of threads.

      Below is the thread stack for the blocked threads :
      =========================
      "qtp124606801-507" #507 prio=5 os_prio=0 tid=0x0000000000e44800 nid=0x6c84 waiting for monitor entry [0x00002af16048c000]
      java.lang.Thread.State: BLOCKED (on object monitor)
      at org.apache.axis.encoding.ser.CalendarSerializer.getValueAsString(CalendarSerializer.java:67)

      • waiting to lock <0x00000000a25f8c98> (a java.text.SimpleDateFormat)
        at org.apache.axis.encoding.ser.CalendarSerializer.serialize(CalendarSerializer.java:58)
        at org.apache.axis.encoding.SerializationContext.serializeActual(SerializationContext.java:1504)
        at org.apache.axis.encoding.SerializationContext.serialize(SerializationContext.java:980)
        at org.apache.axis.encoding.SerializationContext.serialize(SerializationContext.java:734)
        at org.apache.axis.encoding.ser.BeanSerializer.serialize(BeanSerializer.java:230)
        at org.apache.axis.encoding.SerializationContext.serializeActual(SerializationContext.java:1504)
        at org.apache.axis.encoding.SerializationContext.serialize(SerializationContext.java:980)
        at org.apache.axis.encoding.SerializationContext.outputMultiRefs(SerializationContext.java:1055)
        at org.apache.axis.message.SOAPBody.outputImpl(SOAPBody.java:145)
        at org.apache.axis.message.SOAPEnvelope.outputImpl(SOAPEnvelope.java:478)
        at org.apache.axis.message.MessageElement.output(MessageElement.java:1208)
        at org.apache.axis.SOAPPart.writeTo(SOAPPart.java:315)
        at org.apache.axis.SOAPPart.getAsString(SOAPPart.java:632)
        at org.apache.axis.handlers.SOAPMonitorHandler.invoke(SOAPMonitorHandler.java:69)
        at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
        at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
        at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
        at org.apache.axis.server.AxisServer.invoke(AxisServer.java:296)
        at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)
        .
        .(Thread stack skipped)
        ================================

      Could you please help providing some insight on it. Let me know if you need any further details.

      Regards
      Rahul

      Attachments

        1. ser.patch
          3 kB
          Rahul Mourya

        Activity

          People

            Unassigned Unassigned
            rahul_mourya Rahul Mourya
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: