このトピックでは、BizTalk アプリケーションと成果物を更新するときに使用することを検討する必要があるベスト プラクティスについて説明します。
バージョン管理
バージョン管理戦略を実装する
実行時間の長いトランザクションを使用する場合や、アップグレードやバグ修正を行うために BizTalk アプリケーションを停止できない場合は、適切なバージョン管理戦略が不可欠です。 スキーマ、マップ、カスタム アダプター、パイプライン、パイプライン コンポーネント、オーケストレーション、ビジネス ルール、BAM、およびオーケストレーションとマップで呼び出されるカスタム クラスなど、すべての BizTalk 成果物のバージョン管理戦略を計画する必要があります。
BizTalk Management データベース内のアセンブリとグローバル アセンブリ キャッシュ (GAC) を照合する
アプリケーションが正常に機能するように、アセンブリの同じバージョンが GAC と同じバージョンの BizTalk 管理データベースにあることを確認します。 展開時にアセンブリを GAC に常にインストールしない場合は、GAC と BizTalk Management データベースのバージョンが異なる可能性があります。これにより、実行時に処理エラーが発生する可能性があります。
BizTalk アセンブリ チェッカーとリモート GAC ツールを使用してバージョン管理を確認する
BizTalk アセンブリ チェッカーとリモート GAC ツール (BTSAssemblyChecker.exe) は、BizTalk 管理データベースに展開されているアセンブリのバージョンをチェックし、すべての BizTalk Server コンピューターの GAC に正しく登録されていることを確認します。 このツールを使用すると、特定の BizTalk アプリケーションの成果物を含むすべてのアセンブリがすべての BizTalk ノードにインストールされていることを確認できます。 このツールは、特にサイド バイ サイド展開アプローチが使用されている場合に、アセンブリのセットの正しいバージョンが各 BizTalk マシンにインストールされていることを確認する、ソリッド バージョン管理戦略と組み合わせて使用する場合に特に便利です。
このツールは、サポート\Tools\x86\BTSAssemblyChecker.exeの BizTalk Server インストール メディアで使用できます。
バージョン管理製品を使用する
BizTalk 成果物の追跡とバージョン管理には、Microsoft Visual Studio® Team Foundation Server 2010 などのバージョン管理製品を使用する必要があります。 Microsoft Visual Studio® Team Foundation Server 2010 の詳細については、 Microsoft Visual Studio® Team Foundation Server 2010 (https://go.microsoft.com/fwlink/?LinkId=210637) を参照してください。
複数の BizTalk アプリケーションにアーティファクトを取り入れる
BizTalk 成果物のアセンブリ のバージョン管理を実行するには、BizTalk ソリューション アセンブリを、BizTalk Server のバージョン管理を可能にする方法で要素化 (パッケージ化) する必要があります。 因数化の詳細については、「 アプリケーションへの成果物の追加」を参照してください。
アプリケーションの更新
.msi ファイルを使用してアプリケーションを更新する
通常、アプリケーションのアップグレードは、運用環境での意図的で正確な操作です。 アプリケーションをアップグレードするときは、通常は手動チェックリストを使用する必要があります。 ただし、.msi ファイルを使用して特定の手順を効率化できる場合があります。 .msi ファイルを使用する場合は、アプリケーション成果物を再頒布可能パッケージにラップできます。 .msi ファイルは、更新された DLL を複数のランタイム ボックスにロールアウトしたり、グループ レベルの展開を実行したりする場合に特に便利です。 .msi ファイルを作成するときは、変更されていない他のすべてのリソースとバインドをパッケージから除外する必要があります。
BizTalk アセンブリを更新する場合は、.msi ファイルをインポートしてインストールする前後に、BizTalk コンポーネントを停止、登録解除、再登録、開始する必要があります。 BizTalk アセンブリの更新の詳細については、「 チェックリスト: アセンブリの更新」を参照してください。
サイド バイ サイド バージョン管理を使用して BizTalk Server アセンブリをアップグレードする場合は、.msi ファイルを使用する前と後に手動の手順を実行する必要があります。 必要な手動手順の詳細については、「 チェックリスト: Side-by-Side バージョン管理を使用したアプリケーションの更新」を参照してください。
アセンブリの更新
運用環境でアセンブリのバージョンをインクリメントする
運用環境で実行されているアセンブリを更新する場合は、アセンブリのバージョン番号を常にインクリメントする必要があります。
更新されたアセンブリで GAC を更新する
オーケストレーション、スキーマ、またはマップを含むアセンブリを更新する場合は、新しいバージョンを含むアセンブリで GAC を更新する必要があります。 それ以外の場合、BizTalk Server は古いバージョンを使用します。 これを行うには、アプリケーションがバインドされているホストのインスタンスを実行している各コンピューターで、更新された成果物を含むアセンブリの古いバージョンを GAC からアンインストールし、新しいバージョンがインストールされていることを確認します。
アセンブリの更新後にホスト インスタンスを再起動する
既存のアプリケーションの BizTalk アセンブリが更新された場合は、変更を有効にするためにホスト インスタンスの再起動が必要になる場合があります。 ホスト インスタンスを再起動すると、ホスト インスタンスで実行されている他のすべてのアプリケーションが停止します。
成果物の更新
依存関係にある成果物を展開解除する前に、依存する成果物を展開解除する
別の成果物が依存する成果物を展開解除する場合は、最初に依存成果物のデプロイを解除する必要があります。
注
最初に依存成果物を展開解除しない場合、BizTalk Server 管理コンソールに警告が表示され、正しくない順序で成果物を展開解除できなくなります。
別のアプリケーションが依存している成果物を停止しない
別のアプリケーションが依存している 1 つのアプリケーションで成果物を停止すると (アプリケーション全体が停止する可能性があります)、依存アプリケーションは正しく機能しません。 アプリケーションの停止の詳細については、「 BizTalk アプリケーションを起動および停止する方法 (https://go.microsoft.com/fwlink/?LinkID=154729)」を参照してください。
成果物を移動する前にアセンブリへの参照を追加する
成果物を新しいアプリケーションに移動すると、その成果物に依存関係があるその他の成果物も移動されます。ただし、移動された成果物が依存する成果物を含むアプリケーションへの参照が新しいアプリケーションにある場合を除きます。 また、移動された成果物に依存する成果物は、それらを含むアプリケーションが新しいアプリケーションへの参照を持たない限り移動されます。 成果物を移動すると、移動される他の成果物の一覧が表示されます。
バインディングの更新
バインドの再構成を自動化する
- アプリケーションでアセンブリを更新すると、多くの場合、そのバインドが上書きされるか、アセンブリがまったくバインドされない可能性があるため、バインドを手動で再構成する必要があります。 このプロセスは、バインド ファイルを使用して自動化できます。 同じバージョンのアセンブリを更新する場合は、まずアセンブリのバインド ファイルをエクスポートしてから、アセンブリを更新してから、アセンブリをアプリケーションにインポートしてから、バインド ファイルをインポートして以前のバインドを再適用できます。 アセンブリを新しいバージョンで更新する場合は、バインド ファイルをエクスポートし、ファイルを編集して新しいアセンブリ バージョンを反映し、新しいアセンブリをアプリケーションにインポートしてから、バインド ファイルをインポートして新しいバインドを適用できます。 バインド ファイルの詳細については、「バインド ファイル にバインドをエクスポートする方法」を参照してください。 バインド ファイルの編集の詳細については、「バインド ファイル のカスタマイズ (https://go.microsoft.com/fwlink/?LinkID=155000)」を参照してください。
アプリケーションの開始または停止
アプリケーションを停止して成果物を更新する
アプリケーションで成果物を更新するアプリケーションを停止しない場合は、エンドポイントを無効にして MessageBox データベースへのパブリケーションを一時的に停止し、実行中のインスタンスを停止して登録を解除する必要があります。 実行中のインスタンスを停止および登録解除するには、すべての退避または中断されたインスタンスを手動で再開して完了するか、または終了する必要があります。
成果物を更新したり、アプリケーションをインストールしたりするためにアプリケーションを停止する必要はありませんが、成果物を更新するときは常にアプリケーションを停止することをお勧めします。