Lock 要素 (XMLA)
Analysis Services インスタンス上の指定されたオブジェクトをロックします。
構文
<Command>
<Lock>
<ID>...</ID>
<Object>...</Object>
<Mode>...</Mode>
</Lock>
</Command>
要素の特性
特徴 | 説明 |
---|---|
データ型と長さ | なし |
既定値 | なし |
カーディナリティ | 0-n : 省略可能な要素で、出現する場合は複数回の出現が可能です |
要素の関係
リレーションシップ | 要素 |
---|---|
親要素 | コマンド |
子要素 | ID、 Mode、 Object |
注釈
Lockコマンドは、現在アクティブなトランザクションのコンテキスト内で、オブジェクトを共有または排他的に使用できるようにロックします。 ロックコマンドを明示的に発行できるのは、データベース管理者またはサーバー管理者だけです。 オブジェクトをロックすると、そのロックが解除されるまでトランザクションはコミットできません。 Analysis Services では、共有ロックと排他ロックの2種類がサポートされています。
Analysis Services では、データベースのロックのみが許可されます。 Object要素には、Analysis Services データベースへのオブジェクト参照が含まれている必要があります。 Object要素が指定されていない場合、またはオブジェクト要素がデータベース以外のオブジェクトを参照している場合は、エラーが発生します。
他のコマンドは、Analysis Services データベースに対して ロック コマンドを暗黙的に発行します。 データベースからデータまたはメタデータを読み取るすべての操作 ( Discoverメソッドやステートメントコマンドを実行するExecuteメソッドなど) は、データベースの共有ロックを暗黙的に発行します。 Alterコマンドを実行するExecuteメソッドなど、Analysis Services データベース上のオブジェクトに対してデータまたはメタデータの変更をコミットするすべてのトランザクションは、データベースに対する排他ロックを暗黙的に発行します。
すべてのロックは、現在のトランザクションのコンテキスト内で保持されます。 現在のトランザクションがコミットまたはロールバックされると、そのトランザクション内で定義されたすべてのロックは自動的に解放されます。