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