データベースのロックおよびロック解除 (XMLA)
データベースのロックおよびロック解除を行うには、それぞれ XML for Analysis (XMLA) の ロック およびロック 解除 コマンドを使用します。 通常、他の XMLA コマンドは、実行時にコマンドを完了させる必要に応じて、自動的にオブジェクトをロック/ロック解除します。 データベースを明示的にロックまたはロック解除して、 バッチ コマンドなどの1つのトランザクション内で複数のコマンドを実行し、他のアプリケーションが書き込みトランザクションをデータベースにコミットするのを防ぐことができます。
データベースのロック
Lockコマンドは、現在アクティブなトランザクションのコンテキスト内で、オブジェクトを共有または排他的に使用できるようにロックします。 オブジェクトをロックすると、そのロックが解除されるまでトランザクションはコミットできません。 Microsoft SQL Server Analysis Services では、共有ロックと排他ロックの2種類がサポートされています。 Analysis Services によってサポートされるロックの種類の詳細については、「 Mode 要素 (XMLA)」を参照してください。
Analysis Services では、データベースのロックのみが許可されます。 Object要素には、Analysis Services データベースへのオブジェクト参照が含まれている必要があります。 Object要素が指定されていない場合、またはオブジェクト要素がデータベース以外のオブジェクトを参照している場合は、エラーが発生します。
重要
ロックコマンドを明示的に発行できるのは、データベース管理者またはサーバー管理者だけです。
他のコマンドは、Analysis Services データベースに対して ロック コマンドを暗黙的に発行します。 データベースからデータまたはメタデータを読み取るすべての操作 ( Discoverメソッドやステートメントコマンドを実行するExecuteメソッドなど) は、データベースの共有ロックを暗黙的に発行します。 Alterコマンドを実行するExecuteメソッドなど、Analysis Services データベース上のオブジェクトに対してデータまたはメタデータの変更をコミットするすべてのトランザクションは、データベースに対する排他ロックを暗黙的に発行します。
データベースのロック解除
Unlock コマンドは、現在アクティブなトランザクションのコンテキスト内で確立されたロックを解除します。
重要
Unlock コマンドを明示的に発行できるのは、データベース管理者またはサーバー管理者だけです。
すべてのロックは、現在のトランザクションのコンテキスト内で保持されます。 現在のトランザクションがコミットまたはロールバックされると、そのトランザクション内で定義されたすべてのロックは自動的に解放されます。
参照
Lock 要素 (XMLA)
Unlock 要素 (XMLA)
Analysis Services での XMLA による開発