0

現在、非常に大きな応答を返す SOAP Web サービスを呼び出しています。

Spring-WS (WebServiceTemplate を使用)、JAX-WS クライアントを使用して Web サービスを呼び出し、アプリケーションは Jboss EAP 6.0 で実行されます。

現在、SaajSoapMessageFactory も使用しています。読み取りパフォーマンスを向上させるには、SaajSoapMessageFactory ( http://docs.spring.io/spring-ws/site/reference/html/common.html )ではなく AxiomSoapMessageFactory を使用する必要があることをフォーラムから読みました。

次の変更を行いました。

交換済み

<bean id="messageFactory" class="org.springframework.ws.soap.saaj.SaajSoapMessageFactory"> 
        <property name="soapVersion">
            <util:constant static-field="org.springframework.ws.soap.SoapVersion.SOAP_11" />
        </property>
    </bean>

 <bean id="messageFactory" class="org.springframework.ws.soap.axiom.AxiomSoapMessageFactory">
        <property name="payloadCaching" value="false"/>
    </bean>

この変更は期待どおりに機能しました。しかし、パフォーマンスの観点からは、驚くべき結果が得られています。

50 人のユーザーが同時に Web サービスにアクセスする (Web サービスを呼び出す画面を介して間接的に)テストの場合、全体の応答時間 (ボタンがクリックされた瞬間から Web サービスからの応答が画面に再び表示される瞬間まで) ) ~ 27 秒から 22 秒に短縮されました。これは、SaajSoapMessageFactory よりも 5 秒短縮されています。

ただし、100 ユーザーテストを実行したところ、応答時間が 2 秒長くなり、この場合は SaajSoapMessageFactory の方が優れているように見えます。

AxiomSoapMessageFactory がストリーミングを使用し、ツリーの構築を回避しているにもかかわらず、このパフォーマンスの違いの理由を誰かが説明できますか??

4

0 に答える 0