依存関係とアプリケーションの展開

このトピックでは、複数の BizTalk アプリケーション内にあるアイテム間の依存関係が、アプリケーションの展開と保守に及ぼす影響について説明します。

1 つの成果物が適切に機能するために別の成果物を使用する必要がある場合は、別の成果物に 依存 すると言われます。 このような依存関係の例として、オーケストレーションで、メッセージ解決のために特定のスキーマを使用する必要がある場合や、メッセージを正しく送信するために特定のパイプラインを使用する必要がある場合が考えられます。 どちらのシナリオでも、オーケストレーションが別のアイテムに依存しています。

アプリケーションのアイテムを更新する前には、そのアイテムと、それに依存するすべてのアイテムを展開解除する必要があります。 依存関係にあるアイテムが同じアプリケーション内に存在する場合、更新されるアイテムと依存するアイテムの展開解除タスクと再展開タスクが、BizTalk Server によって自動的に実行されます。 しかし、依存関係にあるアイテムが別のアプリケーションに存在する場合は、動作が異なります。 依存先のアイテムを更新する前に、依存関係にあるアイテムを手動で展開解除する必要があります。 後で、依存関係にあるアイテムを手動で再展開する必要もあります。

別のアイテムが依存しているアイテムを更新する場合に、このような手動操作を行わずに済むようにするためには、依存関係にあるすべてのアイテムを同じアプリケーション内に配置するように試みることができます。 ただし、これが常に可能であるとは限りません。 「アプリケーションまたはグループで一意である必要がある成果物」で説明されているように、ほとんどの種類の成果物は BizTalk グループで一意である必要があります。 同じグループ内の 2 つの異なるアプリケーションに、同一アイテムに依存するアイテムが含まれていても、その同一アイテムを両方のアプリケーション内に含めることはできません。

このような場合は、必要なアイテムをいずれかのアプリケーションに追加した後、そのアイテムに依存するアイテムが含まれているすべてのアプリケーションに、そのアプリケーションへの参照を追加できます。 アプリケーションへの参照を追加すると、アプリケーション内のアイテムで、参照先アプリケーション内の任意のアイテムを使用できるようになります。 参照を追加する手順については、「 別のアプリケーションに参照を追加する方法」を参照してください。

次の図の 2 つのアプリケーションは、どちらも、第 3 のアプリケーション内にあるアイテムに依存しています。 Order Processing アプリケーションは、Schemas アプリケーションに含まれている Schema1 を使用します。そのため、Order Processing アプリケーションには Schemas アプリケーションへの参照が含まれています。 Mortgage アプリケーションは、同じく Schemas アプリケーションに含まれている Schema2 を使用します。このため、Mortgage アプリケーションには Schemas アプリケーションへの参照が同様に含まれています。

2 つのアプリケーションが 3 番目のアプリケーション

あるアプリケーションから別のアプリケーションへの参照を追加すると、これら 2 つのアプリケーション間に依存関係が作成され、これによって、両方のアプリケーションの展開方法と保守方法が影響を受けます。 このトピックで後述するアプリケーションの依存関係の影響はさまざまであるため、「 BizTalk アプリケーションを展開するためのベスト プラクティス」で説明されているように、アプリケーションに成果物を追加するためのベスト プラクティスに従うことをお勧めします。

次の図は、依存関係の連鎖が存在し、更新するアセンブリに依存するすべてのアセンブリが同一アプリケーション内にある場合の、アセンブリの更新手順を示しています。

SimpleAdminRedeploy依存関係 を

次の図は、更新するアセンブリに対する依存関係の連鎖が存在し、依存アセンブリのうちの 1 つが別のアプリケーション内にある場合の、アセンブリの更新手順を示しています。

外部依存関係を使用してアセンブリを更新する

Note

アセンブリの更新前に完全な停止を行うのは、それによって自動的にオーケストレーションが参加解除され、すべてのメッセージが停止および終了されるためです。 メッセージの処理を続行する必要がある場合、同じアセンブリの異なるバージョンを展開すると、メッセージを停止および終了する必要がなくなります。 詳細については、「 BizTalk アプリケーションの更新」を参照してください。

アプリケーション間の依存関係は、次の影響を及ぼす可能性があります。

  • アイテムの停止。 あるアプリケーション内にあるアイテムを停止すると (アプリケーション全体を停止した場合など)、このアプリケーションに依存する別のアプリケーションが正しく機能しなくなります。 アプリケーションの停止の詳細については、「 BizTalk アプリケーションを起動および停止する方法」を参照してください。

  • アイテムの状態の削除または変更。 あるアプリケーションから別のアプリケーションへの参照を追加して、別のアプリケーションが依存するアイテムの状態を変更したり、そのアイテムを削除したりすると、依存関係を持つアプリケーションが正しく機能しなくなります。 成果物の状態の変更の詳細については、「成果物の管理」の適切な成果物に関 するセクションを参照してください。

  • 依存関係を持つアプリケーションのインポート。 アプリケーションを別の BizTalk グループにインポートして、そのグループ内で実行する場合、このアプリケーションが依存するアイテムもすべてインポートする必要があります。 このためには、別のアプリケーションを先にインポートするか、アプリケーションに必要なアイテムを追加します。 アプリケーションのインポートの詳細については、「 BizTalk アプリケーションをインポートする方法」を参照してください。

    Note

    BizTalk Server は、インポート元とインポート先の BizTalk グループにおけるアプリケーション名を照合することによって、アプリケーションの ID を検証します。 アプリケーションが依存するアイテムが含まれているかどうかは検証されません。 依存関係を持つアプリケーションと、参照先アプリケーションをインポートするときには、参照先アプリケーションに必要なアイテムが含まれているかどうかを確認することをお勧めします。

  • 参照を持つアプリケーションのインポート。 インポートするアプリケーションが別のアプリケーション内のアイテムに依存している場合、このアプリケーションに参照を追加する必要があります。 インポート ウィザードにはこのオプションが用意されています。 ただし、BTSTask の ImportApp コマンドを使用している場合は、「別のアプリケーションに参照を追加する方法」の説明に従って、インポート後 にアプリケーションへの参照を追加する必要があります。 参照先アプリケーションが存在するかどうかは BizTalk Server によって検証されますが、これに加えて、参照先アプリケーションに必要なアイテムが含まれているかどうかも確認することをお勧めします。

  • 依存関係を持つアプリケーションのインストール。 アプリケーションのインストール時には、このアプリケーションが依存しているアプリケーションもすべてインストールする必要があります。 他のアプリケーションに含まれるアイテム (BizTalk アセンブリなど) と依存関係があるアプリケーションをインストールする場合は、そのアイテムを含むアプリケーションを先にインストールする必要があります。 たとえば、アプリケーション A をインストールするとき、これがアプリケーション B のアセンブリに依存している場合は、アプリケーション B を先にインストールする必要があります。 その後、アプリケーション A をインストールできます。アプリケーションのインストールの詳細については、「 BizTalk アプリケーションをインストールする方法」を参照してください。

  • アイテムの移動。 別のアプリケーションにアイテムを移動する場合は、移動するアイテムが依存するアイテムが含まれているアプリケーションを移動先のアプリケーションが参照している場合を除き、そのアイテムが依存するその他のアイテムも移動されます。 また、移動するアイテムに依存しているアイテムも、そのようなアイテムを含むアプリケーションが移動先のアプリケーションを参照している場合を除き、移動先のアプリケーションに移動されます。 アイテムを移動する場合は、同時に移動するその他のアイテムの一覧が表示されます。 成果物を移動する手順については、「 成果物を別のアプリケーションに移動する方法」を参照してください。

  • 他のアプリケーション内のアイテムが依存するアイテムの更新。 同じアプリケーション内の別のアイテムへの依存関係を持つアイテムを更新する場合、依存するアイテムの展開解除と再展開が BizTalk Server によって自動的に行われます。 しかし、更新するアイテムとこれに依存するアイテムが異なるアプリケーション内にある場合、依存するアイテムの展開解除と再展開を、次のように手動で行う必要があります。

    1. 依存するアイテムの停止、参加解除、およびバインド解除を行います。

    2. 依存先のアイテムを更新します。

    3. 依存するアイテムをバインドし、参加させ、開始します。

参照

BizTalk アプリケーションの展開と管理について