次の方法で共有


データベースのロックとロック解除 (XMLA)

データベースのロックとロック解除は、それぞれ XML for Analysis (XMLA) の [ロック ] コマンドと [ロック解除 ] コマンドを使用して行うことができます。 通常、他の XMLA コマンドは、実行中にコマンドを完了するために必要に応じて自動的にオブジェクトのロックとロック解除を行います。 Batch コマンドなど、1 つのトランザクション内で複数のコマンドを実行するようにデータベースを明示的にロックまたはロック解除し、他のアプリケーションがデータベースに書き込みトランザクションをコミットできないようにすることができます。

データベースのロック

Lock コマンドは、現在アクティブなトランザクションのコンテキスト内で、共有または排他的に使用するためにオブジェクトをロックします。 オブジェクトをロックすると、ロックが解除されるまでトランザクションがコミットされなくなります。 Microsoft SQL Server SQL Server Analysis Services では、共有ロックと排他ロックの 2 種類のロックがサポートされています。 SQL Server Analysis Services でサポートされるロックの種類の詳細については、「 Mode 要素 (XMLA)」を参照してください。

SQL Server Analysis Services では、データベースのみをロックできます。 Object 要素には、SQL Server Analysis Services データベースへのオブジェクト参照が含まれている必要があります。 Object 要素が指定されていない場合、または Object 要素がデータベース以外のオブジェクトを参照している場合は、エラーが発生します。

Important

Lock コマンドを明示的に発行できるのは、データベース管理者またはサーバー管理者だけです。

他のコマンドは、SQL Server Analysis Services データベースに対して Lock コマンドを暗黙的に発行します。 Discover メソッドやステートメント コマンドを実行する Execute メソッドなど、データベースからデータまたはメタデータを読み取る操作は、データベースに対して暗黙的に共有ロックを発行します。 データまたはメタデータの変更を SQL Server Analysis Services データベース上のオブジェクトにコミットするトランザクション (Alter コマンドを実行する Execute メソッドなど) は、データベースに対して排他的ロックを暗黙的に発行します。

オブジェクトのロック解除

Unlock コマンドは、現在アクティブなトランザクションのコンテキスト内で確立されたロックを削除します。

Important

Unlock コマンドを明示的に発行できるのは、データベース管理者またはサーバー管理者だけです。

すべてのロックは、現在のトランザクションのコンテキストで保持されます。 現在のトランザクションがコミットまたはロールバックされると、トランザクション内で定義されているすべてのロックが自動的に解放されます。

こちらもご覧ください

Lock 要素 (XMLA)
アンロック要素 (XMLA)
Analysis Services での XMLA を使用した開発