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