メッセージ・フローの設計の際には、以下のオプションの一部またはすべてを含むいくつかの設計要因を考慮してください。
- 必要な機能を提供するノードはどれか。
多くの場合、適切な機能を提供する複数のノードから選択することができます。
ここにリストされている他の要因を検討して、
どのノードが自分の必要を全体的に満たす最善の機能かを判断する必要があるかもしれません。
組み込みノード、ユーザー定義ノード、およびサブフロー・ノードを組み込むことができます。
詳しくは、使用するノードの決定を参照してください。
- 複数の入力ノードを含めるのが適切かどうか。
詳しくは、複数の入力ノードの使用を参照してください。
- 入力メッセージの特性を指定する方法。
詳細については、入力メッセージ特性の定義を参照してください。
- メッセージの内容または特性に基づくメッセージ・フローを介して、メッセージが続くパスを判別するかどうか。
いくつかのノードは、特定のメッセージを別のノードに送信するために接続可能なメッセージおよび出力ターミナルの検査または調査を行います。
これについては、ノードを使用した意思決定で詳しく説明されています。
- よく定義された処理のサブセットを提供するサブフローを利用できるかどうか。
別のプロジェクト用に作成されたサブフロー (例えばエラー処理ルーチンなど) を再利用することが
できる場合があります。または、現行プロジェクトでサブフローを作成し、
同じメッセージ・フロー内の複数の場所で再利用できるかもしれません。
詳しくは、サブフローの使用を参照してください。
- メッセージ・フローからアプリケーションが予期する応答時間。
これは、ノードおよびフローの構成方法のいくつかの局面に影響されます。
詳しくは、メッセージ・フロー応答時間の最適化を参照してください。
- メッセージに関連する LocalEnvironment 内の宛先リストを使用して、メッセージ・フロー内の処理 (RouteToLabel および Label ノードを使用)、または出力メッセージのターゲットを決定できるかどうか (例えば MQOutput ノードの Destination Mode プロパティーを Destination List に設定することにより)。詳しくは、宛先リストの作成を参照してください。
- WebSphere MQ クラスター・キューを使用するかどうか。詳しくは、入出力に WebSphere MQ クラスター・キューを使用するを参照してください。
- z/OS で WebSphere MQ 共用キューを使用するかどうか。
この使用については、入出力に WebSphere MQ 共用キューを使用する (z/OS)で詳述されています。
- 入力ノードが受け取る入力メッセージ、または Compute ノードが生成する出力メッセージ、あるいはその両方を検証するか。
詳しくは、メッセージの妥当性検査を参照してください。
- Trace ノード出力内のメッセージ構造を表示または記録するかどうか。
これを行う方法については、トレース出力に論理メッセージ・ツリーを表示するで説明されています。
- メッセージ・フローがデータベース内のデータにアクセスするかどうか。
アクセスできるようにするには、メッセージ・フローからデータベースへのアクセスの説明に従って、
メッセージ・フロー・ノード、データベース、およびデータベース接続を構成する必要があります。
- メッセージがトランザクション内で処理される必要があるか。
組み込みノードによっては、トランザクションの管理方法、
およびトランザクション内でのメッセージの処理方法を制御するために設定できるプロパティーがあります。
詳しくは、整合されたメッセージ・フローの構成を参照してください。
- メッセージをデータ変換させるかどうか。
使用できるオプションについては、データ変換のメッセージ・フローの構成を参照してください。
- メッセージが脱落していないことを確認するためにどんなステップを取れるか。
詳しくは、メッセージが失われていないかの確認を参照してください。
- メッセージ・フロー内でエラーが処理される方法。
メッセージ・フロー実行中に発生するエラーを処理するためにブローカーが提供する機能を使用できます
(例えば、入力ノードが入力メッセージの検索に失敗した場合、
またはデータベースへの書き込みがエラーになった場合など)。
ただし、エラーが特定の方法で処理されるようにメッセージ・フローを設計したほうが良い場合もあるかもしれません。
詳しくは、メッセージ・フローのエラー処理を参照してください。
メッセージ・フローの開発の概要については、「WebSphere Message Broker Basics」IBM Redbook を参照してください。