开发者

Axis2 getSOAPEnvelope() performance issue

Using axis2 on solaris I've noticed that the message.getSOAPEnvelope() call is maxing out the server processing to 0.0 idle. The call takes about 10 seconds and then processing load goes back to normal. This is crazy for a single method especially something built into Axis.

Can anyone suggest a solution to this, I've not been able to find anything similar online.

// get message for sending
Message message = getSOAPMessage();
...
message=signSOAPEnvelope(message.getSOAPEnvelope()); //problem
...
SOAPEnvelope retMsg = (SOAPEnvelope) call.invoke(message.getSOAPEnvelope()); //problem

--ADDITIONAL INFORMATION---

Ok so the issue lies in teh SAXParser.parse() method called by axis (not axis2 btw). So I've done some further tests with other messages.

My application builds the SoapEnvelope and the message body is added to it. I've taken a message from another application that I know is working and following the soap envelope build I've overridden the message string with this older xml. So the SoapEnvelope is identical in both cases, however the xml I took from the other project works well whilst my new xml doesn't. The crazy thing is the older xml is larger so should take longer. Below are the examples of the re开发者_StackOverflowlevant xml as I can't work out why one should work and the other not.

WORKS OK: large older xml

    <ns2:applicationDetailSearchQuery 
   xmlns:ns2="http://www.company.com.au/wib/ID/schema/query" 
xmlns:ns3="http://www.company.com.au/wib/Counterparty/schema/query"
xmlns:tns="http://www.company.com.au/wib/icc/schema/query">

<tns:queryID scheme="http://www.company.com.au/treasury/idbb/queryid">44051</tns:queryID>
<tns:queryType>ApplicationDetailSearch</tns:queryType>
<tns:pageSize>10000</tns:pageSize>
<ns2:parameters>
    <ns2:tradeIdList>
        <ns2:tradeId>111111</ns2:tradeId>
    </ns2:tradeIdList>
    <ns2:queryByHeadDealId>N</ns2:queryByHeadDealId>
    <ns2:retrieveSchedule>N</ns2:retrieveSchedule>
    <ns2:retrieveCashFlowDeals>Y</ns2:retrieveCashFlowDeals>
    <ns2:dealType>BOND</ns2:dealType>
 </ns2:parameters>
</ns2:applicationDetailSearchQuery>

REALLY SLOW: small xml???

<ns5:querySetRequest setId="1" xmlns:ns2="http://schemas.company.com.au/ttt/icc/common/header-V2-0" xmlns:ns4="http://schemas.company.com.au/ttt/icc/Services/FXC/TradeEnquiryServiceEnvelope" xmlns:ns3="http://schemas.company.com.au/ttt/icc/common/envelopemsg-V2-0" xmlns:ns5="http://webservice.common.ttt/queryservice/types">
<ns5:query queryName="RemainingBalanceQuery" queryID="1">
    <ns5:parameter value="FWD:169805" type="String" name="KondorId"/>
    <ns5:parameter value="0.9592" type="Decimal" name="ExchgRate"/>
    <ns5:parameter value="USD" type="String" name="CurrencyCode"/>
    <ns5:parameter value="09/08/2011" type="String" name="MatDate"/>
</ns5:query>
</ns5:querySetRequest>

Any ideas what might be causing excessive cpu for this second set of xml?


This was an issue with excessive logging from the SAXParser. When I set logging to warn for the relevent packages it ran in milliseconds. Crazy stuff!

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜