Winapi.Mtx.CreateSharedPropertyGroup
Delphi
function CreateSharedPropertyGroup(const Name: WideString): ISharedPropertyGroup;
C++
extern DELPHI_PACKAGE _di_ISharedPropertyGroup __fastcall CreateSharedPropertyGroup(const System::WideString Name);
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
function | public | Winapi.Mtx.pas Winapi.Mtx.hpp |
Winapi.Mtx | Winapi.Mtx |
説明
サーバープロセス内の MTS オブジェクトが状態を共有できるようにする SharedPropertyGroup のインターフェースを返します。
CreateSharedPropertyGroup は,新しい共有プロパティグループのインターフェースを返します。指定した名前のプロパティグループが存在する場合は,既存の共有プロパティグループへの参照を返します。この関数を使用すると,共有プロパティグループの共有プロパティを作成またはアクセスできます。
CreateSharedPropertyGroup は,ロック制御(アイソレーション)モードの場合は LockSetGet,リリースモードの場合は Process のデフォルト値を使って SharedPropertyGroup をセットアップします。LockSetGet は,共有プロパティに対するすべての get または set 操作でプロパティをロックし,各操作をアトミックにします。これにより,2 つのクライアントは同じプロパティを同時に読み書きできなくなりますが,ほかのクライアントが同じグループの他のプロパティに同時にアクセスすることは可能です。リリースモード Process は,プロパティグループを作成したプロセスが終了するまでプロパティグループが破棄されないことを保証します(プロパティグループに対する参照を保持するオブジェクトは,それらの参照に対して Release を呼び出す必要があります)。
デフォルト値をオーバーライドするには,CreateSharedPropertyGroupManager を呼び出し,結果のインターフェースを使ってプロパティグループを作成します。
ISharedPropertyGroup には,サーバープロセス内の複数のオブジェクトの間で状態を共有するのに使用できるいくつかのメソッドがあります。メソッドのリストについては,MTS のマニュアルの ISharedPropertyGroup の説明を参照してください。
共有プロパティグループを使用すると,共有プロパティグループに含まれる共有プロパティに対してユニークな名前空間が確立されるので,名前の衝突を防止できます。共有プロパティマネージャは,更新を損失したり,プロパティを予期せぬ状態にしたりする原因となる,共有プロパティの同時アクセスを防止するためにロックおよびセマフォも実装します。
メモ: 共有プロパティは,同じプロセスで実行されているオブジェクトによってのみ共有できます。異なるコンポーネントのインスタンスがプロパティを共有できるようにしたい場合は,同じ MTS パッケージにコンポーネントをインストールする必要があります。管理者がコンポーネントを 1 つのパッケージから別のパッケージへと移動してしまうこともあるので,共有プロパティグループの使用は,同じ DLL で定義されているコンポーネントのインスタンスに制限するのが安全です。