1

サービスがあります。エンドポイントが 30 秒以内に応答できない場合。メッセージを破棄します。これをエンドポイントに設定しましたが、役に立ちません。これはバグだと誰かが教えてくれました。だから私はこれに対処するためにエラーシーケンスを使いたい. しかし、それでも失敗しました。誰でもこれを行う方法を教えてもらえますか?

If the endpoint can not response in 30 seconds, then execute EndpointError sequence.
Best regards.

<proxy xmlns="http://ws.apache.org/ns/synapse" name="EndpointTest" transports="https,http" statistics="disable" trace="disable" startOnLoad="true">
   <target>
      <inSequence onError="EndpointError">
         <log level="full" />
      </inSequence>
      <outSequence onError="EndpointError">
         <log level="full" />
         <send />
      </outSequence>
      <endpoint>
         <address uri="http://172.21.11.158:48280/portalAgent/services/receiveMsg" format="pox">
            <timeout>
               <duration>3000</duration>
               <responseAction>discard</responseAction>
            </timeout>
         </address>
      </endpoint>
   </target>
</proxy>
4

1 に答える 1

1

期間のパラメーターはミリ秒単位で安定しており、3000 を構成しているため、常に一時停止します。一時停止のエラーを制御したい場合は、このようにターゲット セクションで制御する必要があります。

<proxy xmlns="http://ws.apache.org/ns/synapse" name="EndpointTest" transports="https,http" statistics="disable" trace="disable" startOnLoad="true">
<target faultSequence="EndpointError">
    <inSequence onError="EndpointError">
        <log level="full" />
    </inSequence>
    <outSequence onError="EndpointError">
       <log level="full" />
        <send />
    </outSequence>
    <endpoint>
        <address uri="http://172.21.11.158:48280/portalAgent/services/receiveMsg" format="pox">
            <timeout>
                <duration>30000</duration>
                <responseAction>discard</responseAction>
            </timeout>
        </address>
    </endpoint>
</target>

于 2012-08-23T19:47:09.007 に答える