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

Axis 1.4 performance

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Open
    • Priority: Critical
    • Resolution: Unresolved
    • Affects Version/s: 1.4
    • Fix Version/s: None
    • Labels:
      None
    • Environment:
      ***** Pivotal Values *****

       Reported Version: 9.8
       OSName: SUSE Linux Enterprise Server
       OSVersion:
       Hardware:
       Environment: Any Operating System
      --------------------
    • Flags:
      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

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

              Dates

              • Created:
                Updated: