COM+ 1.5 の新機能

COM+ バージョン 1.5 では、開発者とシステム管理者の両方に対して、COM+ アプリケーションの全体的なスケーラビリティ、可用性、管理性を向上させるために設計された新機能が追加されています。

COM+ 1.5 は、Windows XP および Windows Server 2003 以降で使用できます。 新しい COM+ 1.5 機能は、Windows 2000 では使用できません。

既定で有効になっているアプリケーション レベルのアクセス チェック

システムのセキュリティ強化の一環として、COM+ アプリケーションの作成時にアクセス チェックが既定で有効になります。 以前のバージョンでは、アクセス チェックは既定でアプリケーション レベルで無効になり、コンポーネント レベルで既定で有効になりました。 Windows Server 2003 以降では、アクセス チェックはアプリケーション レベルで既定で有効になり、コンポーネント レベルでは既定で無効になります。 既定の設定を変更する方法の詳細と手順については、 新しい COM+ アプリケーションの作成アプリケーションのアクセス チェックの有効化、および コンポーネント レベル でのアクセス チェックの有効化を参照してください。

アプリケーション プール

アプリケーション コレクション内の COMAdminCatalogObject オブジェクトの新しい ConcurrentApps プロパティを使用すると、COM+ アプリケーション プールによってシングルスレッド プロセスのスケーラビリティが追加され、新しい COM+ アプリケーション リサイクル サービスと統合されます。 詳細については、 COM+ アプリケーション プール を 参照してください。

アプリケーションのリサイクル

アプリケーションのリサイクルにより、アプリケーションの全体的な安定性が大幅に向上します。 ほとんどのアプリケーションのパフォーマンスは、メモリ リーク、サードパーティのコードへの依存、スケーリング不可能なリソースの使用などの要因によって時間の経過と共に低下する可能性があるため、COM+ アプリケーションのリサイクルは、アプリケーションに関連付けられているプロセスを正常にシャットダウンして再起動する簡単なソリューションを提供します。 詳細については、 COM+ アプリケーション リサイクリング を 参照してください。 プロセス リサイクルを構成する手順については、コンポーネント サービスの管理のヘルプの「プロセス リサイクルの構成」も参照してください。

COM+ パーティション

このリリースでは、COM+ では、COM+ パーティションのサポートが導入されています。この機能により、複数のバージョンの COM+ アプリケーションを同じコンピューターにインストールして構成できます。 この機能により、複数のサーバーを使用してアプリケーションの異なるバージョンを管理するコストと時間を節約できます。 1 台のマシンでは、各パーティションが仮想サーバーとして実際に機能します。 各パーティションにアプリケーションをインストールした後、ユーザーを論理サーバーにマップするパーティション セットを作成します。 COM+ パーティション を設定および管理する方法の詳細については、 COM+ パーティション を参照してください。 詳細な手順については、コンポーネント サービスの管理のヘルプの「アプリケーション パーティションの管理の登録」も参照してください。

コンポーネントのない COM+ サービス

COM+ 1.5 では、COM+ によって提供されるサービスを使用できます。これらのサービスを呼び出すメソッドを含むコンポーネントを構築する必要はありません。 これにより、通常はコンポーネントを使用せず、トランザクションや COM+ トラッカーなどの COM+ サービスを使用する開発者にとって大きなメリットがあります。 コンポーネントなしで COM+ サービスを使用することで、開発者は必要な COM+ サービスのみにアクセスするために使用されるコンポーネントを作成するオーバーヘッドを回避できます。 詳細については、「コンポーネント のない COM+ サービス」を参照してください。

COM+ SOAP サービス

COM+ 1.5 では、COM+ アプリケーションを XML Web サービスとして公開できるようになりました。 また、COM+ を使用してデプロイしたかどうかにかかわらず、XML Web サービスを COM コンポーネントとして透過的に使用することもできます。 つまり、既存の COM+ アプリケーションから新しい XML Web サービスを簡単に作成し、XML Web サービスを新しい COM+ アプリケーションに簡単に組み込むことができます。 詳細については、 COM+ SOAP サービス を参照してください。

構成可能な分離レベル

COM+ 開発者は、新しい TxIsolationLevel プロパティまたは Component Services 管理ツールを使用して、必要に応じてアプリケーションの分離レベルを構成し、コンカレンシー、パフォーマンス、スケーラビリティを向上させることができます。 この柔軟性により、適切な量の専門知識を持つユーザーは、アプリケーションからスループットの最後の 1 オンスを取得できます。 詳細については、「トランザクション分離レベルの設定」をご覧ください。

プライベート コンポーネントの作成

アプリケーション内に複数のヘルパー コンポーネントがあり、そのアプリケーション内の他のコンポーネントからのみ呼び出されるように設定されているシナリオでは、この COM+ リリースでは、新しいプロパティ IsPrivateComponent を使用して、これらのコンポーネントをプライベートとしてマークできます。 (COM+ の以前のリリースでは、COM+ サービスにアクセスするには、すべてのコンポーネントをパブリックにする必要がありました。つまり、これらのコンポーネントは他のアプリケーションからアクティブ化できます)。プライベート コンポーネントは、同じアプリケーション内の他のコンポーネントによってのみ表示およびアクティブ化できるため、公開する機能をより詳細に制御できます。 アプリケーションの外部からアクセスできないが、すべての COM+ サービスを利用できるプライベート コンポーネントを使用しながら、パブリック コンポーネントを文書化してメインする必要があります。

DTC セキュリティ設定

Microsoft 分散トランザクション コーディネーター (DTC) 用にいくつかの新しいセキュリティ設定が追加され、分散トランザクションを管理するためのセキュリティ レベルをカスタマイズできます。 これらの設定とその実装方法については、DTC のセキュリティに関する考慮事項を参照してください。

相互認証を容易にするために、DTC は NetworkService アカウントでの実行に制限されます。 詳細については、「アカウントと特権の管理」を参照してください。

XA データベースを使用した復旧では、この回復を実行するために必要なアクセス許可とロールを NetworkService アカウントに付与することをお勧めします。 これを行う正確な方法は、各データベースに固有です。 詳細については、「ネイティブ分散トランザクションの無効化」および「TIP および XA トランザクションの無効化」を参照してください。

XA トランザクションを使用する場合に、より安全なシステムを提供するために、Windows Server 2003 プラットフォームには、XA DLL ファイルを指定するための新しいレジストリ エントリが含まれています。 Windows Server 2003 にアップグレードする場合、以前と同様に XA トランザクションを操作するには、HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\XADLL の下にレジストリ エントリを作成します。値の名前は DLL の名前 (dllname.dll 形式) で、値は DLL ファイルの完全なパスです。 使用する XA DLL ファイルごとにエントリを作成する必要があります。 DTC を実行しているコンピューターがクラスターの一部である場合は、クラスター内のノードごとにレジストリ エントリを作成する必要があります。 詳細については、「XA トランザクションの管理」を参照してください。

メモリ不足のアクティブ化ゲート

このリリースでは、COM+ サーバーまたはオブジェクトを作成する前に、COM+ によってメモリが自動的にチェックされます。 アプリケーションで使用可能な仮想メモリの割合が固定しきい値を下回ると、オブジェクトが作成される前にアクティブ化が失敗します。 通常実行されるこれらのアクティブ化に失敗すると、 COM+ Low-Memory Activation Gates サービスによってシステムの信頼性が大幅に向上します。

COM コンポーネントの移動とコピー

このリリースでは、COM+ を使用してコンポーネントを移動およびコピーできます。 つまり、コンポーネントの 1 つの物理的な実装を何度も構成できます。 コンポーネントの再利用は、ソース コード レベルではなくバイナリ レベルで取得されるため、コードが少なくなり、開発コストが削減され、市場投入までの時間が短縮されます。 詳細については、 コンポーネント の移動と コンポーネント のコピーを参照してください。

ネットワーク アクセス

Windows Server 2003 では、COM+ ネットワーク アクセスは既定で無効になっています。つまり、COM+ は既定でローカルでのみ使用できます。 ネットワーク COM+ アクセスを有効にするには、次の手順に従います。

ネットワーク COM+ アクセスを有効にする

  1. [スタート] メニューの [コントロール パネル] をポイントし、[プログラムの追加と削除] を選択します。

  2. [Windows コンポーネントの追加と削除] をクリックします。

  3. [アプリケーション サーバー] を選択し、 [詳細]をクリックします。

  4. [ネットワーク COM+ アクセスを有効にする] の横にあるチェック ボックスをオンにし、[OK] をクリックします。

  5. [次へ] をクリックして、 Windows Components ウィザードを完了します。

  6. [完了] をクリックして、ウィザードを終了します。

DTC ネットワーク トランザクション アクセスは、Windows Server 2003 では既定で無効になっています。 これらのプラットフォームでは、DTC は既定でローカル トランザクションのみを実行できます。 ネットワーク DTC アクセスを有効にするには、次の手順に従います。

Note

また、コンポーネント サービス管理ツールを使用するか、COM+ Administration ライブラリを使用してプログラムでネットワーク DTC アクセスを有効にすることもできます。 手順については、コンポーネント サービスの管理関連付けヘルプの「DTC セキュリティの構成」を参照してください。

ネットワーク DTC アクセスを有効にする

  1. [スタート] メニューの [コントロール パネル] をポイントし、[プログラムの追加と削除] を選択します。

  2. [Windows コンポーネントの追加と削除] をクリックします。

  3. [アプリケーション サーバー] を選択し、 [詳細]をクリックします。

  4. [ネットワーク DTC アクセスを有効にする] の横にあるチェック ボックスをオンにし、[OK] をクリックします。

  5. [次へ] をクリックして、 Windows Components ウィザードを完了します。

  6. [完了] をクリックして、ウィザードを終了します。

アプリケーションの一時停止と無効化

COM+ アプリケーションの管理が容易になりました。 管理者は、COM+ サーバー アプリケーションの一時停止と再開、または COM+ ライブラリまたはサーバー アプリケーション、または個々の構成済みコンポーネントの無効化と有効化を行うことができます。 一時停止機能と無効化機能はどちらも、既存のコンポーネント インスタンスに影響を与えることなく、今後のアクティブ化を防ぎます。 詳細については、Component Services Administration ヘルプの「COM+ アプリケーションの管理」を参照してください。

プロセスダンピング

運用環境でのアプリケーションのトラブルシューティングは簡単ではありません。 実行中のプロセスを妨げることなく、問題に関する情報を収集するにはどうすればよいですか? COM+ は、新しいプロセス ダンプ機能を使用してソリューションを提供するようになりました。 この機能を使用すると、システム管理者はプロセスの状態全体を終了せずにダンプできます。 詳細については、コンポーネント サービス 管理 ヘルプの「COM+ アプリケーションをデバッグするためのプロセス ダンプ ツールの管理」を参照してください。

プロセス初期化

多くのサーバー アプリケーションは、起動時とシャットダウン時に特定の初期化とクリーンを実行する必要があります。 Windows Server 2003 で実行する場合は、 IProcessInitializer インターフェイスを実装するクラスを作成できます。 プロセスが起動すると、 IProcessInitializer::Startup が呼び出され、シャットダウン時に IProcessInitializer::Shutdown が呼び出されます。 これにより、コンポーネントは、接続、ファイル、キャッシュの初期化など、必要なタスクを実行できます。

NT サービスとしての COM+ アプリケーションの実行

COM+ 開発者は、コンポーネント サービス管理ツールを使用して、COM+ サーバー アプリケーションを NT サービスとして構成および実装できるようになりました。 つまり、アプリケーションを常に実行する必要がある場合は、サーバーを自動的に開始または再起動できます。特権操作を実行する必要がある場合に、COM+ アプリケーションをローカル システム アカウントとして実行できること。アプリケーションの依存サービスを自動的に開始できるようになりました。 詳細については、「 COM+ サービス アプリケーションとして実行されているアプリケーション 」を参照してください。

Side-by-Side アセンブリ

Side-by-side (SxS) アセンブリを使用すると、MDAC、MFS、MSVCRT、MSXML など、使用するシステム DLL またはクラシック COM コンポーネントのバージョンをアプリケーションで指定できます。 たとえば、ASP アプリケーションが MSXML バージョン 2.0 に依存している場合、サービス パックがサーバーに適用された後でも、このアプリケーションで引き続き MSXML バージョン 2.0 を使用できます。 つまり、新しいバージョンの MSXML がコンピューターにインストールされている場合でも、バージョン 2.0 は残り、アプリケーションによって使用されます。

SxS アセンブリを構成するには、DLL へのパスと、DLL を使用する必要があるすべての仮想ディレクトリに COM+ マニフェスト ファイルが存在することを知っている必要があります。 COM+ マニフェストは、DLL がインストールされている場所に関する情報を含む XML ファイルです。 マニフェストは、アプリケーションのアクティブ化コンテキストを作成するために使用されます。 アクティブ化コンテキストを使用すると、アプリケーションは特定の DLL バージョン、COM オブジェクト インスタンス、またはカスタム ウィンドウ バージョンを読み込むことができます。 Component Services 管理ツールまたは ApplicationDirectory プロパティを使用して、有効な SxS アセンブリ マニフェスト ファイルを含むアプリケーション ルート ディレクトリの完全なパスを入力できます。 詳細については、「分離アプリケーション と Side-by-Side アセンブリ」を参照してください。

Windows エラー報告

COM+ 1.5 には、Windows XP 以降で利用可能な Windows エラー報告 (WER) コンポーネントのサポートが含まれています。 WER を使用すると、ユーザーはアプリケーションエラー、カーネル 障害、応答しないアプリケーションについて Microsoft に通知できます。 これらの通知により、Microsoft カスタマー サポート チームは技術的な問題をより効果的に解決できます。 さらに、Windows エラー報告 コンポーネントを使用すると、COM+ 開発者は、アプリケーションの改善に使用できる情報を受け取ることができます。 詳細については、「 Windows エラー報告」を参照してください。