方法: SQL Server 以外の監視データベースの使用
以下の手順は、Microsoft AppFabric 1.1 for Windows Server で SQL Server 以外の監視データベースを使用する方法を示しています。SQL Server データベースを使用する場合、これらのビューとステージング テーブルは、AppFabric 構成プロセスによって作成されます。SQL Server 以外のデータベースでは、そのデータベースの機能を使用してこれらのデータベース エンティティを作成する必要があります。
SQL Server 以外の監視データベースの構成
**監視用のステージング テーブルとパブリック ビューを実装します。**SQL Server 以外のデータベースを使用する場合、そのデータベース ベンダーが提供する固有のメカニズムを選択して、ステージング テーブルとビューを作成します。ステージング テーブルとビュー、および予期される型は、「監視データベースのビューおよびテーブル」で指定されています。実際の型はデータベースに固有である可能性がありますが、ADO プロバイダーによって .NET Framework の型に変換できる必要があります。AppFabric ダッシュボード監視ツールは、データベースの型へのクエリで予期される .NET Framework の型が返された場合にのみ機能します。たとえば、SQL Server の
nvarchar
は .NET Framework のString
型にマップされ、SQL Server 以外のデータベースのvarchar
およびchar
型は .NET Framework のString
型にマップされます。**ステージング テーブル内のデータをパブリック ビューに表示します。**イベント データは、WCF または WF サービスから発生した各イベントに対応するステージング テーブルの列に、イベント コレクション サービス によって書き込まれます。SQL Server 以外のデータベース実装では、データベース ジョブやトリガーなど適切な手段を使用して、ステージング テーブルのデータを、パブリック ビューの基になるテーブルに移動します。イベントの種類ごとに、どのようにデータをパブリック ビューに設定するかを定義するマッピングについては、「データベース イベント マッピングの監視」を参照してください。WCF および WF サービスから発生したイベントは、イベント コレクション サービス によって収集され、監視データベース ステージング テーブルである ASStagingTable に書き込まれます。ASStagingTable テーブルは、一時的にイベントを保管するテーブルです。AppFabric ダッシュボード内のイベント データを使用するには、イベントの種類に対応するパブリック ビューを使用して ASStagingTable のデータを表示する必要があります。SQL Server 以外のデータベース実装では、データベース トリガーやジョブなどそのデータベース実装に合ったメカニズムを使用して、ASStagingTable テーブルのデータを、パブリック ビューの基になるテーブルに移動する必要があります。イベントの種類ごとにどのようにデータをパブリック ビューに設定するかを定義するマッピングについては、「データベース イベント マッピングの監視」を参照してください。
以下に、そのしくみと必要な操作を示します。WCF サービス操作が呼び出されると、.NET ランタイムにより 214 - OperationCompleted (https://go.microsoft.com/fwlink/?LinkId=187225) (WCF 操作完了) イベントが生成されます。そのイベントが発生すると、ステージング テーブルの列のうち WCF 操作完了イベントに適用可能な列に、イベント コレクション サービス によって値が設定されます。次に、ステージング テーブルのデータが、ASEventSources、ASWcfEvents、および ASEvents のビューにマップされて設定されます。このデータは AppFabric ダッシュボードにより読み取られ、Tracked Events Page に表示されます。OperationCompleted イベントについては、「データベース イベント マッピングの監視」のマッピング ドキュメントのイベント ID 214 を参照してください。このようにして、ステージング テーブルのデータが表示されます。ステージング テーブルには、共通の列だけではなく (マッピング ドキュメントの 「すべてのイベントの共通マッピング」を参照してください)、MethodName および Duration という 2 つの列も書き込まれます。これらの列は、ASEventSources、ASWcfEvents、ASEvents の各ビューをサポートするそれぞれの中間テーブルに、実装固有の方法でマッピングされます。
ヒント
「データベース イベント マッピングの監視」では、一部のマッピング イベントについて説明しています。すべてのマッピングについては、Microsoft ダウンロード センターからダウンロードできます。イベント ID ごとに 1 つのマッピング ドキュメントがあります。イベントのマッピング ドキュメントには、そのイベントの行が イベント コレクション サービス によって書き込まれると ASStagingTable のどの列にデータが設定されるかが示されています。そのイベントのデータを表示するビューと、ASStagingTable のデータとビューの列のマッピングも示されています。
ヒント
SQL Server の監視データベースの実装では、実際のイベント データを含むテーブルに基づいてパブリック ビューが構築されます。ステージング テーブルのデータは、SQL Server プロバイダーによってパブリック ビュー構築の基になるテーブルに移動されます。この、SQL Server プロバイダーによって実行されるジョブは、SQL Server 以外のデータベースでは手動で実行する必要があります。
新しい監視データベースの接続文字列がルート Web.config ファイルに登録されていることを確認します。それにより、イベント コレクション サービス でこの接続文字列を使用してイベントを監視データベースに書き込めるようになります。
イベント コレクション サービス の ID に、ステージング テーブルに対する読み取りおよび書き込みアクセス許可があることを確認します。
AppFabric ダッシュボードを使用して IIS のデータを表示するユーザーに、ビューからの読み取りアクセス許可があることを確認してください。
イベント コレクション サービス を実行してテストします。
ステージング テーブルにデータが表示されることを確認します。
ダッシュボード メトリックが機能することを確認します。
追跡対象イベントを表示できることを確認します。
エンド ツー エンドの監視レベルで関連イベントを表示できることを確認します。
以下に示すオプションの手順を実行すると、SQL Server 以外のデータベースへのイベント書き込みの構成およびパフォーマンス向上にさらに役立ちます。
特定のデータベースの一括コピー プロバイダーを実装し、ルート Web.config ファイルに登録します。そうすることで、イベント コレクション サービス でプロバイダーを呼び出して、ステージング テーブルに一括でイベントを書き込むことができます。一括コピー プロバイダーが登録されていない場合、イベント コレクターはデータベース固有の ADO プロバイダーを使用して一括挿入を行います。詳細については、「イベント コレクション一括コピー インターフェイス」を参照してください。
SQL Server 以外のデータベース用に、AppFabric 構成ツールによって呼び出されるカスタム プロバイダーを作成します。このプロバイダーは一括コピー プロバイダーとは異なります。これは、イベント コレクション サービス によって使用される新しいデータベースの接続文字列をレジストリに挿入するために、セットアップで使用されるプロバイダーです。この場合も、ユーザー インターフェイス機能は必要ありませんが、ユーザー インターフェイスがあれば、SQL Server 以外のデータベースの接続文字列を構成する簡単な方法が提供されます。カスタム プロバイダーの使用方法の詳細については、「方法: カスタム プロバイダーの登録」を参照してください。AppFabric のインストールの終わりに必要に応じて起動できる、AppFabric 構成ツールの詳細については、「Installation Results Page」および「AppFabric の構成」を参照してください。
2012-03-05