Flex Gateway新着情報
Governance新着情報
Monitoring API ManagerMule 4 の Until Successful コンポーネントでは、一部のプロセスの処理方法が Mule 3 の場合と異なります。これらの変更に関連する一部の要素と属性は、Mule 4 には存在しません。Mule 4 では、異なる属性やコンポーネントを使用して同じ機能を実行できるか、Mule 4 でその機能を設定する必要がなくなったかのいずれかです。
Until Successful コンポーネントの手動移行では、以下の変更を行います。
<processor-chain/>
要素をすべて削除する。
secondsBetweenRetries
属性を millisBetweenRetries
に置き換える。
failureExpression
を削除し、代わりに Mule 4 の検証プロセッサーを使用する。
deadLetterQueue-ref
属性を Mule 4 のエラーハンドラーに置き換える。
<threading-profile/>
要素をすべて削除する。
ackExpression
属性を削除し、代わりに Set Payload コンポーネントを使用する。
synchronous
属性をすべて削除する。
以下の各セクションで、これらの変更について説明します。
Mule 3 では、Until Successful スコープの内側で複数のプロセッサーを実行するには、プロセッサーチェーン (<processor-chain/>
) の内側にプロセッサーをラップする必要がありました。Mule 4 の Until Successful では複数のプロセッサーがサポートされ、プロセッサーチェーンは必要ありません。
<flow name="untilFlow">
<until-successful>
<processor-chain>
<logger message="#[1]"/>
<logger message="#[2]"/>
</processor-chain>
</until-successful>
</flow>
Mule 4 の例には、<processor-chain/>
要素がありません。
<flow name="untilFlow">
<until-successful>
<logger message="#[1]"/>
<logger message="#[2]"/>
</until-successful>
</flow>
Mule 3 の secondsBetweenRetries
属性は Mule 4 から削除されました。Mule 4 では millisBetweenRetries
属性を使用できます。
<flow name="untilFlow">
<until-successful secondsBetweenRetries="10">
<logger message="#[1]"/>
</until-successful>
</flow>
Mule 4 の例では、secondsBetweenRetries="10"
が millisBetweenRetries="10000"
に置き換わっています。
<flow name="untilFlow">
<until-successful millisBetweenRetries="10000">
<logger message="#[1]"/>
<logger message="#[2]"/>
</until-successful>
</flow>
failureExpression
属性は削除されました。検証式を設定する検証プロセッサーに置き換えることができます。
<flow name="untilFlow">
<until-successful failureExpression="#[regex:(?i).*error]">
<logger message="#[1]"/>
</until-successful>
</flow>
Mule 3 の例にある failureExpression
設定は、Mule 4 では <validation:is-false/>
設定に置き換わります。
<flow name="untilFlow">
<until-successful>
<logger message="#[1]"/>
<validation:is-false expression="#[regex:(?i).*error]"/>
</until-successful>
</flow>
Mule 3 の deadLetterQueue-ref
属性では、すべての再試行が失敗したら、配信不能メッセージをエンドポイントまたはプロセッサーに送信できます。Mule 4 では、代わりにエラーハンドラーを使用して、すべての RETRY_EXHAUSTED
例外をキャッチし、メッセージをそのエンドポイントまたはプロセッサーに送信できます。
<vm:endpoint name="dlqChannel" path="dlq" />
<flow name="untilFlow">
<until-successful deadLetterQueue-ref="dlqChannel">
<logger message="#[1]"/>
</until-successful>
</flow>
Mule 4 の例では、エラーハンドラー <error-handler/>
内の On Error Propagate (エラー時に伝搬) <on-error-propagate/>
要素を使用して dlqChannel
を参照します。
Mule 4:
<vm:endpoint name="dlqChannel" path="dlq" />
<flow name="untilFlow">
<until-successful>
<logger message="#[1]"/>
</until-successful>
<error-handler>
<on-error-propagate type="RETRY_EXHAUSTED">
<outbound-endpoint ref="dlqChannel"/>
</on-error-propagate>
</error-handler>
</flow>
Mule 3 では、<threading-profile/>
子要素を使用して、実行スレッドを調整できます。Mule 4 では、実行エンジンでいくつかの変更が行われました。
Mule 4 では非ブロックアーキテクチャとの関連付けにより、スレッドを手動で調整する必要がなくなりました。
<flow name="untilFlow">
<until-successful>
<threading-profile maxThreadsActive="45" maxThreadsIdle="5" threadTTL="52" threadWaitTimeout="60"/>
<logger message="#[1]"/>
</until-successful>
</flow>
Mule 4 の例では、<threading-profile/>
要素を削除します。
<flow name="untilFlow">
<until-successful>
<logger message="#[1]"/>
</until-successful>
</flow>
Mule 3 の ackExpression
属性は、応答ペイロードの同期生成を設定します。この属性は Mule 4 には存在しません。アプリケーションでこの動作を実行するには、Until Successful の後に Set Payload コンポーネントを設定できます。
<flow name="untilFlow">
<until-successful ackExpression="#[message:correlationId]">
<logger message="#[1]"/>
</until-successful>
</flow>
Mule 4 の例では、Set Payload <set-payload/>
コンポーネントを使用して #[message:correlationId]
値を設定します。
<flow name="untilFlow">
<until-successful>
<logger message="#[1]"/>
</until-successful>
<set-payload value="#[message:correlationId]"/>
</flow>