Flex Gateway新着情報
Governance新着情報
Monitoring API ManagerMule 4 では filters
は使用されなくなりました。Mule 3 で提供された検索条件の機能は、Validation Module を使用して実行できます。
Mule 3 では、メッセージが絞り込まれたら、その時点で通知せずにフローが終了しました。
Validation Module では条件が一致しないとフローが失敗し、移行されたフローに VALIDATION
エラーを処理させます。
応答を送信するための取得元があるフローが VALIDATION
エラーを処理する必要があり、これを行うには、検証エラーのエラーハンドラーで変数を設定します。次に例を示します。
<flow name="flow">
...
<validation:is-true expression="#[...]"/>
...
<error-handler>
<on-error-propagate type="MULE:VALIDATION">
<set-variable variableName="filtered" value="true"/>
<on-error-propagate/>
</error-handler/>
</flow>
次に、取得元のエラー応答ビルダーで set variable を照会し、クライアントに適切な応答を送信できます。たとえば、http:listener
の取得元は次のようになります。
<flow name="flow">
<http:listener config-ref="listenerConfig">
<http:error-response statusCode="#[if (vars.filtered) 400 else 500]"
reasonPhrase="#[if (vars.filtered) 'Bad Request' else 'Internal Server Error']">
<http:body>#[error.description]</http:body>
</http:error-response>
</http:listener>
...
<validation:is-true expression="#[...]"/>
<error-handler>
<on-error-propagate type="MULE:VALIDATION">
<set-variable variableName="filtered" value="true"/>
<on-error-propagate/>
</error-handler/>
</flow>
このケースでは、イベントが絞り込まれる場合は 400 (Bad Request) コードが返されます。