AMO のその他のクラスとメソッド
更新 : 2006 年 7 月 17 日
ここでは、OLAP またはデータ マイニングに固有ではなく、Microsoft SQL Server 2005 Analysis Services (SSAS) のオブジェクトのさまざまな管理に役立つ、共通のクラスについて説明します。これらのクラスは、ストアド プロシージャ、トレース、例外、およびバックアップと復元などの機能を対象としています。
このトピックの内容は次のとおりです。
- Assembly オブジェクト
- Backup メソッドと Restore メソッド
- Trace オブジェクト
- CaptureLog クラスと CaptureXML 属性
- AMOException 例外クラス
次の図は、このトピックで説明するクラスのリレーションシップを示しています。
Assembly オブジェクト
新しいプロシージャや関数を使用したアセンブリをサーバーに追加できます。アセンブリを使用して、サーバーによって提供されていない独自の機能を拡張または追加できます。アセンブリを使用することにより、多次元式 (MDX)、データ マイニング拡張機能 (DMX)、またはストアド プロシージャに新しい関数を追加できます。カスタム アプリケーションの実行場所からアセンブリが読み込まれ、アセンブリ バイナリ ファイルのコピーは、データベースのデータと共にサーバーに保存されます。アセンブリを削除すると、そのアセンブリのコピーもサーバーから削除されます。
アセンブリには、COM と CLR の 2 種類があります。CLR アセンブリとは、C#、Visual Basic .NET、マネージ C++ など、.NET Framework プログラミング言語で開発されたアセンブリです。COM アセンブリとは、サーバーに登録する必要がある COM ライブラリです。
アセンブリは Server オブジェクトまたは Database オブジェクトに追加できます。サーバー アセンブリは、サーバーまたはサーバー内の任意のオブジェクトに接続している任意のユーザーが呼び出すことができます。データベース アセンブリは、Database オブジェクトまたはデータベースに接続しているユーザーのみが呼び出すことができます。
単純な Assembly オブジェクトは、基本情報 (名前と ID)、ファイル コレクション、およびセキュリティの仕様で構成されます。
デバッグ ファイルがアセンブリ ファイルと共に読み込まれた場合、ファイル コレクションは、読み込まれたアセンブリ ファイルとそれらに対応するデバッグ (.pdb) ファイルを参照します。アセンブリ ファイルは、アプリケーションがファイルを定義した場所から読み込まれ、コピーは、データと共にサーバーに保存されます。アセンブリ ファイルのコピーは、サービスが開始されるたびにアセンブリを読み込むために使用されます。
セキュリティの仕様には、アセンブリを実行するために使用される権限セットと権限の借用が含まれます。
Assembly オブジェクトを作成するには、サーバーのアセンブリ コレクションに新しいオブジェクトを追加した後、Update メソッドを使用して、サーバー上で Assembly オブジェクトを更新します。
Assembly オブジェクトを削除するには、Assembly オブジェクトの Drop メソッドを使用してこれを削除する必要があります。データベースのアセンブリのコレクションから Assembly オブジェクトを削除しても、そのアセンブリはアプリケーションを次回実行するまで見えなくなるだけで、削除されません。
利用可能なメソッドおよびプロパティの詳細については、「Microsoft.AnalysisServices」の「Microsoft.AnalysisServices.Assembly」を参照してください。
Backup メソッドと Restore メソッド
Backup と Restore は、Analysis Services データベースをコピーし、そのコピーを使用してデータベースを復旧するためのメソッドです。Backup メソッドは Database オブジェクトに属し、Restore メソッドは Server オブジェクトに属します。
データベースのバックアップの実行を許可されているのは、サーバーおよびデータベースの管理者だけです。バックアップ元とは別のサーバー上にデータベースを復元できるのは、サーバー管理者だけです。データベース管理者は、自分が所有しているデータベースについてのみ、そのデータベースを上書きすることによってデータベースを復元できます。元のセキュリティ定義を使用してデータベースを復元した場合、データベース管理者が復元後のデータベースにアクセスできなくなる可能性があります。
データベース バックアップ ファイルには、.abf 拡張子を付ける必要があります。
Backup メソッド
データベースをバックアップするには、データベース オブジェクトの Backup メソッドを使用します。その際、バックアップ ファイルの名前をパラメータとして指定します。
既定値
AllowOverwrite=false
BackupRemotePartitions=false
Security=CopyAll
ApplyCompression=true
Restore メソッド
データベースをサーバーに復元するには、パラメータとしてバックアップ ファイルを指定し、サーバーの Restore メソッドを実行します。
既定値
AllowOverwrite=false
DataSourceType=Remote
Security=CopyAll
制限事項
- ローカル パーティションは、リモート パーティションとして復元することはできません。
- リモート パーティションは、ローカル パーティションとして復元することはできません。ただし、リモート パーティションがバックアップされた際のバックアップ元とは異なるサーバー上に復元する場合は、復元可能です。
Backup メソッドと Restore メソッドに共通のパラメータとプロパティ
- File は、バックアップ元またはバックアップ先となるファイルの名前 (UNC 名) です。
- Location は、BackupFile などのサーバー固有のバックアップ情報を指定します。これを使用すると、リモート データベースに対して個別のバックアップ ファイルを指定できます。
- DatasourceID は、リモート サーバーにおける下位データベースの ID を指定します。
- リモート サーバーが変更された場合は、ConnectionString を使用して、リモート データ ソースを調整できます。DatasourceID は、ConnectionString が存在する場合は常に指定する必要があります。
- Folder を使用すると、ローカル ハード ドライブ上のパーティションに対してフォルダを再マップできます。
- Original は、ローカル パーティションに対する元のフォルダです。
- New は、対応する "Original" の古いフォルダ内に配置するために使用したローカル パーティションに対する新しい場所です。
- Password は、空白でない場合、サーバーによってバックアップ ファイルが暗号化されることを示します。
Trace オブジェクト
Trace は、Analysis Services のインスタンスを監視、再生、管理するためのフレームワークです。SQL Server Profiler などのクライアント アプリケーションはトレースをサブスクライブし、サーバーはトレース定義での指定に従ってトレース イベントを返します。
各イベントは、イベント クラスによって記述されます。イベント クラスは生成されたイベントの種類を記述します。イベント クラス内では、イベントのサブクラスによって、より詳細なレベルの分類が記述されます。各イベントは、多くの列によって記述されます。トレース イベントを記述する列は、すべてのイベントに対して一貫しており、SQL トレースの構造に準拠しています。各列に記録される情報は、イベント クラスに応じて異なる可能性があります。つまり、定義済みの列のセットは各トレースに対して定義されますが、列の意味はイベント クラスに応じて異なる可能性があります。たとえば、TextData 列は、すべてのステートメント イベントに対する元の ASSL を記録するために使用されます。
トレース定義には、トレースされるイベント クラスを 1 つ以上同時に含めることができます。各イベント クラスについて、トレース定義に 1 つ以上のデータ列を追加できますが、すべてのトレース列を使用する必要はありません。データベース管理者は、使用できる列のうちどれをトレース内に含めるかを決定できます。さらに、イベント クラスは、トレース内の任意の列に対するフィルタの条件に基づいて選択的にトレースできます。
トレースは、開始および削除できます。複数のトレースを任意のタイミングで一度に実行できます。トレース イベントは、実行中にキャプチャしたり、後から分析または再生するためにファイルに送信することができます。SQL Server Profiler は、Analysis Services トレース イベントを分析および再生するためのツールです。同じトレースからイベントを受け取るために、複数の接続を使用できます。
トレースは、サーバー トレースとセッション トレースの 2 つのグループに分けられます。サーバー トレースは、サーバー内のすべてのイベントについて通知します。セッション トレースは、現在のセッション内のイベントについてのみ通知します。
サーバーのトレース コレクションからのトレースは、次の方法で定義します。
- Trace オブジェクトを作成し、トレース ID、名前、ログ ファイル名、追加と上書きのどちらを実行するかなどの基本データを設定します。
- トレース オブジェクトの Events コレクションに、監視する Events を追加します。各イベントに対して、データ列が追加されます。
- 不要なデータの行を除外するために、それらの不要なデータの行をフィルタ コレクションに追加してフィルタを設定します。
- トレースを開始します。トレースを作成しても、データの収集は開始されません。
- トレースを停止します。
- SQL Server Profiler を使用してトレース ファイルを確認します。
セッション オブジェクトによるトレースを取得する方法は次のとおりです。
- アプリケーションで、SessionTrace によって生成されたトレース イベントを処理するための関数を定義します。使用できるイベントは OnEvent と Stopped です。
- 定義した関数をイベント ハンドラに追加します。
- セッション トレースを開始します。
- プロセスを実行し、関数ハンドラにイベントをキャプチャさせます。
- セッション トレースを停止します。
- アプリケーションを続行します。
CaptureLog クラスと CaptureXML 属性
AMO によって実行されるすべてのアクションは、XMLA メッセージとしてサーバーに送信されます。AMO によって、SOAP ヘッダーを持たないこれらのメッセージをすべてキャプチャする手段が提供されます。詳細については、「AMO クラスの概要」を参照してください。CaptureLog は、オブジェクトと操作をスクリプト出力するための AMO 内のメカニズムです。オブジェクトと操作のスクリプトは XMLA で作成されます。
XML のキャプチャを開始するには、CaptureXML サーバー オブジェクト プロパティを true に設定する必要があります。その後、サーバーに送信されるすべてのアクションが、サーバーに送信されることなく、CaptureLog クラスでキャプチャされるようになります。CaptureLog にはキャプチャ ログを消去するために使用する Clear メソッドがあるため、CaptureLog はクラスと見なされます。
ログを読み取るには、文字列コレクションを取得し、それらの文字列の反復処理を開始します。また、サーバー オブジェクト メソッド ConcatenateCaptureLog を使用して、すべてのログを 1 つの文字列に連結することもできます。ConcatenateCaptureLog には、3 つのパラメータがあり、そのうち 2 つは必須です。必須パラメータは、ブール型の transactional、およびブール型の parallel です。transactional が true に設定されている場合は、各コマンドが個別のトランザクションとして扱われるのではなく、XML バッチ ファイルが単一のトランザクションとして作成されることを示します。parallel が true に設定されている場合は、バッチ ファイル内のすべてのコマンドが記録された順ではなく、同時実行として記録されることを示します。
AMOException 例外クラス
AMOException 例外クラスを使用して、AMO によってスローされるアプリケーション内の例外を簡単にキャッチできます。
AMO は、さまざまな問題が検出されるたびに例外をスローします。次の表は、AMO によって処理される例外の種類を示しています。例外は AmoException クラスから派生します。
例外 | 発生元 | 説明 |
---|---|---|
AmoException |
基本クラス |
必要な親オブジェクトが見つからない場合、または必要なアイテムがコレクション内で見つからない場合に、アプリケーションはこの例外を受け取ります。 |
AMOException から派生 |
AMO がエンジンに同期されておらず、AMO が認識していないオブジェクト参照をエンジンが返す場合、アプリケーションはこの例外を受け取ります。 |
|
AMOException から派生 |
これは、アプリケーションが頻繁に受け取る重要な例外です。この例外には、サーバーから発生するエラーの詳細が含まれています。このエラーの原因としては、更新、処理、削除などの不正な AMO 操作が考えられます。 |
|
AMOException から派生 |
この例外は、AMO によって認識されない形式のメッセージをエンジンが返す場合に発生します。 |
|
AMOException から派生 |
この例外は、(Server.Connect を使用して) 接続を確立できない場合、または AMO がエンジンと通信している間 (更新、処理、または削除の間など) に接続が失われる場合に発生します。 |
参照
関連項目
概念
その他の技術情報
Analysis Services の概念とオブジェクト
Analysis Services オブジェクト