COM+Shared Property Managerの概念

COM+では、オブジェクトの共有の一時的な状態は、共有プロパティマネージャー(SPM)を使用して管理されます Shared Property Manager (SPM)は、サーバープロセス内の複数のオブジェクト間で状態を共有するために使用できるリソースディスペンサーです。

同時実行と名前の競合の問題により、分散環境でグローバル変数を使用することはできません。 共有プロパティマネージャーは、共有プロパティグループを提供することによって名前の競合を排除します。これにより、グループに含まれる共有プロパティの一意の名前空間が確立されます。 また、SPMは、同時アクセスから共有プロパティを保護するために、ロックとセマフォを実装します。これにより、更新が失われ、プロパティが予期しない状態になる可能性があります。

メモ

共有の一時的な状態は、システム障害が発生した後もメモリに保持される状態情報です。 この情報は、トランザクションの境界を越えて(プロセス間ではなく)複数のオブジェクトによって共有されるように設計されています。

 

SPMに格納されている共有プロパティは、同じプロセスで実行されているオブジェクトでのみ使用できます。 つまり、SPMを使用して値を格納し、これらの値にアクセスする必要があるオブジェクトは、同じCOM+アプリケーションの一部としてインストールする必要があります。 システム管理者は、COM+アプリケーションの展開後に、COM+クラスをあるパッケージから別のパッケージに移動することができます。 SPMを介してプロパティを共有する複数のオブジェクトに依存する場合は、それらを同じCOM+アプリケーションにインストールする必要があることを明確に文書化する必要があります。

また、プロパティを共有するコンポーネントが同じアクティブ化属性を持つことも重要です。 同じパッケージ内の2つのコンポーネントが異なるアクティブ化属性を持つ場合、通常はプロパティを共有できません。 たとえば、1つのコンポーネントがクライアントプロセスで実行するように構成され、もう一方がサーバープロセスで実行するように構成されている場合、それらのオブジェクトは通常、同じパッケージ内にあっても異なるプロセスで実行されます。

常に、ベースクライアントからではなくCOM+からのSharedPropertyGroupManagerSharedPropertyGroupSharedPropertyオブジェクトをインスタンス化する必要があります。 基本クライアントが共有プロパティグループとプロパティを作成する場合、共有プロパティはサーバープロセスではなく、基本クライアントプロセス内にあります。 これは、オブジェクトがクライアントプロセスでも実行されていない限り、COM+オブジェクトがプロパティを共有できないことを意味します (一般的にはお勧めしません) 。

COM+共有プロパティマネージャー

共有プロパティグループ