以前のバージョンの WebSphere® Message Broker からサブフローをマイグレーションする場合は、WebSphere Message Broker バージョン 8 で .msgflow ファイルとして作成したサブフローの定義方法を理解しておく必要があります。
下記のいずれかに該当する場合、
.msgflow ファイルとして作成されたサブフローをメッセージ・フローに追加できます。
- メッセージ・フローに追加するサブフローが、ライブラリーに定義されている。
アプリケーションとサービスはライブラリーを参照できます。
注: ライブラリーは、関連するコード、データ、またはその両方を論理的にグループ化したもので、通常、再使用可能なサブフローやその他のタイプのリソースが格納されます。
- メッセージ・フローに追加するサブフローが、メッセージ・フローと同じメッセージ・ブローカー・プロジェクト、アプリケーション、またはサービスに定義されている。
開発フェーズにおいて、WebSphere Message Broker Toolkit でサブフローを一度定義すれば、その後は複数のメッセージ・フロー内でそれを再使用できます。
- 1 つ以上のメッセージ・ブローカー・プロジェクトに定義されている複数のメッセージ・フロー内で同じサブフローを使用する場合、サブフローはライブラリー内に定義できます。このライブラリーを、ライブラリーに含まれているリソースにアクセスする必要がある任意のメッセージ・ブローカー・プロジェクトから参照できます。
- 同一メッセージ・ブローカー・プロジェクト内に定義されている複数のメッセージ・フロー内で同じサブフローを使用する場合、サブフローはそのメッセージ・ブローカー・プロジェクト内に定義できます。
注: WebSphere Message
Broker ランタイムは、メッセージ・フロー内でサブフローを検出すると、そのサブフローを定義しているすべてのメッセージ・フロー・ノードのコピーを作成します。サブフローが複数回にわたって使用される場合、サブフローが出現するたび、そのサブフローを定義しているすべてのメッセージ・フロー・ノードのコピーが作成されます。これによりリソース使用量が増えるため、メッセージ・フローのパフォーマンス全体に影響を与える可能性があります。
サポートされるサブフローのタイプ
WebSphere Message Broker バージョン 8 では、サブフローを .subflow ファイルとして作成することも .msgflow ファイルとして作成することもできます。
注: 以前のバージョンの WebSphere Message Broker バージョン 8 からサブフローをマイグレーションした場合は、.msgflow ファイルとして作成されたサブフローが存在しています。
サブフロー・コンテンツ
サブフロー・コンテンツは、メッセージ・フロー・コンテンツを定義するときと同様に、メッセージ・フロー・ノードを追加、構成、および接続することによって定義します。
サブフローには 1 つ以上の Input ノードと、ゼロ個または 1 つ以上の Output ノードが存在できます。
- サブフローをメッセージ・フローの最初のノードとして使用する場合は、少なくとも 1 つの Input ノード (MQInput ノードなど) と、1 つの汎用 Output ノードを追加する必要があります。
- サブフローをメッセージ・フローの中間で使用する場合は、少なくとも 1 つの汎用 Input ノードを追加する必要があります。メッセージ・フロー内でサブフローを追加した後に追加のノードを接続する必要がある場合のみ、汎用 Output ノードを追加する必要があります。
- サブフローをメッセージ・フローの最後のノードとして使用する場合は、少なくとも 1 つの汎用 Input ノードと、少なくとも 1 つの Output ノード (MQOutput ノードなど) を追加する必要があります。
.msgflow ファイルとして作成されたサブフローは、アプリケーション、サービス、またはメッセージ・ブローカー・プロジェクト内の「メッセージ・フロー」というフォルダー内にグループ化されます。以下の図は、.msgflow ファイルとして作成されたサブフローが置かれている場所を示しています。
.msgflow ファイルとして作成されたサブフローの場合、WebSphere Message Broker は空のフローを作成します。ユーザーはそこに必要なメッセージ・フロー・ノードを追加できます。
設計上の考慮事項
.msgflow ファイルとして作成されたサブフローにメッセージ・フロー・ノードを定義する際は、以下の推奨事項を考慮してください。
- サブフローはライブラリー内に定義する。メッセージ・ブローカー・プロジェクトからライブラリーへの参照を作成して、共通ロジックを再使用できるようにします。
- ネストするサブフローの数を制限する。
- 連続した複数の Compute ノードに定義されているロジックをグループ化して単一の Compute ノードにまとめる。これにより、実行時にロードされるノードの数が減るため、パフォーマンスの改善につながります。
- サブフローにバージョンを追加する。
- タイプが異なるサブフローをネストしない。すなわち、.msgflow ファイルとして作成されたサブフローを .subflow ファイルとして作成されたサブフローに追加したり、またその逆は行わないでください。
開発上の考慮事項
バージョン 8 より前の WebSphere Message Broker のリリースでは、メッセージ・フロー・プロジェクトでメッセージ・フローや他のリソースを作成します。
注: メッセージ・フロー・プロジェクトは、WebSphere Message Broker バージョン 8 で名前が変更され、Message Broker プロジェクトになりました。
再使用可能なロジックをメッセージ・フローとして作成します。メッセージ・フローをメッセージ・フローに組み込みます。
注: バージョン 8 より前の WebSphere Message Broker のリリースでは、.msgflow ファイルとして作成されたサブフローのみがサポートされていました。ただし、新規統合ソリューションを開発する計画の場合は、.subflow ファイルとして作成されるサブフローを作成する必要があります。.msgflow ファイルとして作成されたサブフローは、.subflow ファイルとして作成されるサブフローに変換してください。