![[18.0.0.1 and later]](../ng_v18001plus.gif)
Liberty でのメッセージ・エンドポイントによるメッセージの管理
メッセージ・エンドポイントとしてデプロイされるメッセージ駆動型 Bean (MDB) のメッセージ配信を管理します。
このタスクについて
サーバー・コマンドまたは MBean を使用して、宛先である特定のエンド ポイントでリスナーの役割を果たしているメッセージ駆動型 Bean へのメッセージの配信を管理することができます。サーバー・コマンドまたは MBean を使用して、メ ッセージ駆動型 Bean が使用するエンタープライズ情報システム (EIS) リソ ースを管理することができます。
- 失敗したメッセージは、listen 中のエンドポイントに再度配信する、または失敗した メッセージを処理する代替宛先にリダイレクトするなど、追加処理が必要です。また、 リソース・アダプターが回数を制限されずに、メッセージをエンドポイントに再配信する場合も あります。
- メッセージのリダイレクトでは、失敗したメッセージの処理専門の宛先 (キュー とリスナー) の実装、およびメッセージの失敗を検出するロジックを必要とします。 メッセージのリダイレクトは複雑であるため、エラーが発生しやすく、 しかも計算コストが高くなる可能性があります。
特定のメッセージ・エンドポイントを非アクティブ化 (一時停止) および再アクティブ 化 (再開) する機能を使うと、管理者がそのエンドポイントを無効化して、失敗す ることが分かっているメッセージの処理を行わせないようにできるため、これらの問題が緩和されます。 メッセージ・エンドポイントが非アクティブにされたときに、問題を起こしているリソースを 修復して、エンドポイントを再度アクティブにし、メッセージ要求の処理を再開できます。トラブルシューティングは、 そのエンドポイントをホスティングしているリソース・アダプターまたはアプリケーションに影響を与えます。
アクティベーション・スペック内の autoStart 属 性を使用して、メッセージ・エンドポイントを非アクティブ化状態で始 動することもできます。このプロパティーを false に設定すると、アプリケー ションが開始されたときに、メッセージ駆動型 Bean はメッセージの受信を 開始しません。この設定を使用して、メッセージ処理の開始前に、特定タスクの完了、サービスの開始、 または検査の実行が必要であることが分かっているときに、メッセージ・エンドポイントを自動的に非アクティブにします。 メッセージ・エンドポイントをアクティブ化するには、操作時に一時停止した メッセージ・エンドポイントを再アクティブ化するときと同じ方法を使用します。 autoStart 属性のデフォルト値は true です。
手順
タスクの結果
メッセージ・エンドポイントを非アクティブにする (一時停止する) とき に見られる動作は、メッセージ・エンドポイントを管理する リソース・アダプター、メッセージ・エンドポイントの構成、およびアプリケーション・ サーバーのトポロジーなど、さまざまな要因によって異なります。具体的には、次のような例が考えられます。
- 非永続トピックでの MDB リスニング
- メッセージ・エンドポイントの非アクティブ化 (一時停止) に 伴う動作は、多くの場合、実行している機能に 依存します。例えば、非永続トピックを listen するようにメッセージ駆動型 Bean を構成した場合にメッセージ・エンドポイントを非アクティブにすると、サ ブスクリプションがクローズします。メッセージ・エンドポイントが一時停止している 間に公開されるメッセージは、メッセージ駆動型 Bean によって受信されません。
- 永続トピックでの MDB リスニング
- 永続トピックを listen するようにメッセージ駆動型 Bean を構成した場合にメッセージ・エンドポイントを非アクティブにすると、サ ブスクリプションがクローズします。構成によっては、メッセージ・エンドポイントが一時停止している 間にパブリッシュされるメッセージは、メッセージ・エンドポイントが再開される ( メッセージが消費される時点) まで、メッセージング・エンジンによって消費されないままの可能性があります。
- クラスタリングを行う MDB
- メッセージング・エンジンがクラスタリングをサポートする場合は、構 成によっては、一時停止したメッセージ・エンドポイントを宛先とするメッセ ージを、他のメッセージ駆動型 Bean へリダイレクトできる場合があります。