アプリケーション展開のベスト プラクティス
このトピックでは、BizTalk アプリケーションの展開に従う必要があるベスト プラクティスの一覧を示します。
BizTalk アプリケーションの展開
アプリケーションの展開手順を文書化する
アプリケーションのデプロイで使用されるすべての手順が詳細に文書化されていることを確認します。そのため、デプロイの実行方法と、さらにデプロイまたはデプロイ解除する方法を把握しておく必要があります。 スクリプト化されていないものは、詳細な手順で文書化する必要があります。 これには、外部システムに対する変更の文書化と、サード パーティ製コンポーネントの展開が含まれる必要があります。
アプリケーションのデプロイをスクリプト化する
可能な限り多くのアプリケーション展開手順をスクリプト化します。 スクリプトを使用すると、デプロイ プロセス中に人的エラーが発生するリスクが軽減されます。
BizTalk アプリケーションの作成
BizTalk アプリケーションと .msi ファイルの作成をスクリプト化する
- BtsTask.exe を使用して、BizTalk アプリケーションの作成をスクリプト化できます。 アプリケーションの作成がスクリプト化されている場合は、ビルド サーバー上の自動化されたプロセスを使用してパッケージを自動的にビルドできます。 アプリケーションの作成のスクリプト作成の詳細については、「 BizTalk アプリケーションの展開と管理」を参照してください。
BizTalk アセンブリの展開
実稼働コンピューターの Visual Studio からアセンブリを展開しない
開発プロセス中、開発者は多くの場合、Visual Studio からアセンブリを再デプロイする必要があります。 再展開を可能にするため、Visual Studio ではアセンブリに含まれるアイテムの展開解除、バインド解除、停止、および参加解除が行われます。 これは開発環境では必要であり適切なことですが、実稼働環境では予期しない結果や結果や好ましくない結果を引き起こす可能性があります。 このため、運用環境のコンピューターに Visual Studio からアセンブリを展開できないようにするため、運用環境のコンピューターに Visual Studio をインストールしないようにすることをお勧めします。
また、Visual Studio を実行しているコンピューターからは実稼動データベースを参照しないでください。
BizTalk アプリケーションへの成果物の追加
関連アイテムを 1 つのアプリケーションにグループ化する
できるだけ多くの関連アイテムを、同じ BizTalk アプリケーションにまとめます。 こうすることで、複数のアイテムを 1 つのエンティティとして管理および展開できるようになり、管理が容易になります。 同じビジネス プロセスをサポートするアイテムや、類似の機能を実行するアイテムは、1 つのアプリケーションにグループ化できます。
共有アイテムを独立したアプリケーションで展開する
複数のアプリケーションで共有されるアイテムは、独立したアプリケーションで展開します。 たとえば、2 つのアプリケーションでスキーマを共有している場合は、そのスキーマを独立したアプリケーションに配置します。 BizTalk グループ内の 1 つの成果物に 1 つのローカル一意識別子 (LUID) を含めることができるため、これをお勧めします。 LUID は、成果物名と、必要に応じて他の属性で構成されます。 あるアプリケーションに成果物を含め、別のアプリケーションからその成果物への参照を作成した場合、成果物を含むアプリケーションを停止すると、参照元のアプリケーションが正しく機能しない可能性があります。
このベスト プラクティスは、種類が File としてアプリケーションに追加されるファイル アイテム (Readme ファイル、スクリプトなど) 以外の、すべての種類のアイテムに適用できます。 これは、同じ名前の複数のファイル成果物を BizTalk グループに展開できるためです。 したがって複数のアプリケーションで同じ名前のファイルを使用できるので、このベスト プラクティスは当てはまりません。 この場合、1 つのアプリケーションを停止すると、もう一方のアプリケーションには影響しません。 ファイル成果物の追加の詳細については、「 アプリケーションにファイルを追加する方法」を参照してください。
共有 Web サイトを独立したアプリケーションで展開する
複数のビジネス アプリケーションで共有される Web サイトは、独立したアプリケーションで展開します。 この理由は、BizTalk アプリケーションをアンインストールすると、アプリケーションに含まれる Web サイトは実行中であっても削除されるためです。 削除した Web サイトが他のビジネス ソリューションと共有されていた場合、そのビジネス ソリューションは正常に機能しなくなります。
共有ポリシーを独立したアプリケーションで展開する
複数のアプリケーションで使用されるポリシーは、1 つのアプリケーションから別のアプリケーションへの参照を作成せずに、独立したアプリケーションで展開します。 この理由は、アプリケーションを停止すると、そのアプリケーションのポリシーは展開解除されるためです。 他のアプリケーションで使用されているポリシーを含むアプリケーションを停止すると、どちらのアプリケーションでもポリシーは機能しなくなります。
共有証明書を独立したアプリケーションで展開する
複数アプリケーションの送信ポートまたは受信ポートで使用される証明書は、独立したアプリケーションで展開します。その後、展開したアプリケーションに対し、その証明書を使用するアプリケーションから参照を作成します。 これは、BizTalk グループ内の 1 つの成果物のみが 1 つの LUID を持つ可能性があるため、2 つの異なるアプリケーションで同じ証明書をインポートできないためです。 同じ証明書を使用する 2 つのアプリケーションをインポートしようとすると、最初のインポートは成功しますが、2 番目のインポートは成功しません。 [上書き] インポート オプションを使って既存の証明書を上書きしようとしても、その証明書は別のアプリケーションに含まれているため上書きできません。
BizTalk アプリケーションのエクスポートとインポート
大きな .msi ファイルを展開する場合、アプリケーションを展開するためにBizTalk Serverによって使用される COM+ コンポーネントの既定のトランザクション タイムアウトを増やす必要がある場合があります
非常に大きい (100 MB を超える) .msi ファイルを展開しようとすると、アプリケーションの展開中にBizTalk Serverによって使用される COM+ コンポーネントの既定のトランザクション タイムアウト内にアプリケーションが展開されない可能性があります。 展開が完了する前に、これらの COM+ コンポーネントに関連付けられているトランザクションがタイムアウトした場合、デプロイは失敗します。 非常に大きな .msi ファイルをデプロイする場合は、次のいずれかの方法を使用してこの問題を軽減することを検討してください。
1 つの大きな .msi ファイルではなく、いくつかの小さな .msi ファイルをデプロイします。
- コンポーネント サービス管理インターフェイスの Microsoft.BizTalk.ApplicationDeployment.Group および Microsoft.BizTalk.Deployment.DeployerComponent コンポーネントに関連付けられている既定のトランザクション タイムアウトを 3,000 秒増やします。 これらのコンポーネントは、それぞれ Microsoft.BizTalk.ApplicationDeployment.Engine および Microsoft.Biztalk.Deployment COM+ アプリケーションに属します。 詳細については、「 トランザクションタイムアウトの設定」を参照してください。
バインドが上書きされないようにする
エクスポートするアプリケーションのバインドで、.msi ファイルのインポート先アプリケーションのバインドを上書きしないようにするには、エクスポート操作中にエクスポートするリソースとしてバインド ファイルを選択しないでください。
.msi ファイルがセキュリティで保護されていることを確認する
.msi ファイルには機密データが含まれている場合があります。 ファイルが安全であることを確認するための手順を必ず実行してください。 ファイルのセキュリティ .msi 詳細については、「 セキュリティと Windows インストーラー」を参照してください。
バインド ファイルがセキュリティで保護されていることを確認する
バインド ファイルには機密データが含まれている場合があります。 ファイルが安全であることを確認するための手順を必ず実行してください。
成果物に変更を加えなくなったときにエクスポートをスケジュールする
ユーザーが成果物を変更する可能性が高くない時間帯にエクスポート操作をスケジュールします。 これは、エクスポート操作の進行中にユーザーがデータベース ベースの成果物、仮想ディレクトリ、証明書、またはポリシーを変更している場合、エクスポートされた .msi ファイルに変更が反映されないため、重要な場合があります。
BizTalk アプリケーションのインポート
.msi ファイルのインポートをスクリプト化する
BtsTask.exe を使用して、既存の BizTalk .msi ファイルのインポートをスクリプト化できます。 ファイルのインポート .msi スクリプトの詳細については、「 BizTalk アプリケーションの展開と管理」を参照してください。
Note
ホワイト ペーパーは、BizTalk Serverにも適用されます。
前処理または後処理スクリプトとして実行するスクリプトを追加できます。 ただし、スクリプトが実行しているコンテキスト (インポート、インストール、またはアンインストール) を決定し、それに応じて処理するには、環境変数をチェックするロジックをスクリプトに含める必要があります。 前処理スクリプトと後処理スクリプトの使用の詳細については、「前処理スクリプト と後処理スクリプトを使用してアプリケーションの展開をカスタマイズする」を参照してください。
参照された成果物の存在を確認する
インポートするアプリケーションが別のアプリケーションへの参照を持っている場合、BizTalk Server参照先のアプリケーションが存在することを確認します。 ただし、アプリケーションに依存関係がある成果物が参照先アプリケーションに含まれていることは確認されません。 依存関係を持つアプリケーションを別のアプリケーションの成果物にインポートする場合は、参照先のアプリケーションに必要な成果物または成果物が含まれていることを確認することをお勧めします。
.msi ファイルからインポートすると、変更されたアセンブリをグローバル アセンブリ キャッシュに格納できなくなります
アプリケーション内の成果物を更新するには、.msi ファイルから変更または更新された成果物をアプリケーションにインポートします。 .msi ファイルを使用して成果物をインポートしない場合は、変更されたアセンブリをグローバル アセンブリ キャッシュに格納して、グループ内のすべてのサーバーを更新する必要があります。
サーバー全体のサブセットを更新する処理グループをホストする
アプリケーション内の成果物を更新する場合は、通常、BizTalk グループ内のすべてのサーバーを更新する必要があります。 ただし、ホスト処理グループを使用する場合は、グループ内の合計サーバーのサブセットのみを更新する必要があります。
インポート操作がタイムアウトした場合は、アプリケーションを追加の .msi ファイルに分割します
インポート操作は、期間が 3,600 秒を超えるとタイムアウトします。 .msi ファイルをインポートしようとして操作がタイムアウトした場合は、アプリケーションを再エクスポートし、エクスポートする成果物のサブセットを選択して、アプリケーションの内容を複数の .msi ファイルに分割する必要があります。 アプリケーションを .msi ファイルにエクスポートする方法の詳細については、「 BizTalk アプリケーションをエクスポートする」を参照してください。