次の方法で共有


カスタム コンテンツ フォーマッタの開発

Notification Services に用意されている組み込みの XSLT (Extensible Stylesheet Language Transformation) に基づくコンテンツ フォーマッタを使用すると、アプリケーションを迅速に開発することができます。ただし、他の手法を使用して通知データの書式を設定する場合は、カスタム コンテンツ フォーマッタを開発する必要があります。

IContentFormatter インターフェイス

コンテンツ フォーマッタは、書式が未設定の通知データを入力として取得し、書式設定された通知メッセージを返すコンポーネントです。コンテンツ フォーマッタは、Notification Services エンジンにホストされるディストリビュータによって読み込まれます。ディストリビュータは、IContentFormatter と呼ばれるインターフェイスを介してコンテンツ フォーマッタとやり取りします。

カスタム コンテンツ フォーマッタを開発するには、IContentFormatter インターフェイスを実装するクラスを開発する必要があります。このインターフェイスは、Microsoft.SqlServer.NotificationServices 名前空間で使用できます。

ディストリビュータは、書式設定する必要があるメッセージごとにコンテンツ フォーマッタを呼び出します。このメッセージは、1 つの通知、通知のダイジェスト、または 1 つのマルチキャスト メッセージの通知データです。

ディストリビュータは最初に Initialize を呼び出してから、書式設定するメッセージごとに FormatContent を呼び出し、作業項目が完了すると、Close メソッドを呼び出します。Initialize メソッドが最初に呼び出されない限り、再度 FormatContent メソッドは呼び出されません。

書式設定に失敗すると、FormatContent メソッドは例外をスローできます。ディストリビュータはアプリケーション ログにその例外を記録し、通知に失敗のマークを付けます。失敗した通知は、配信プロトコルに送信されません。通知を再試行するように通知クラスが構成されている場合、通知は次の再試行間隔で書式設定されます。

InitializeClose メソッドは、例外をスローしません。

カスタム コンテンツ フォーマッタは、マネージ コード アセンブリのクラスとして実装する必要があります。このアセンブリは、通知アプリケーションにアクセスできる場所であればどこでも配置できます。

通知の書式設定

Initialize メソッドを呼び出してディストリビュータがコンテンツ フォーマッタを初期化すると、宣言されたすべての引数とダイジェスト配信設定が渡されます。コンテンツ フォーマッタの実装ではこれらの値を使用してフォーマッタ自身を構成し、使用するすべての設定を格納します。ディストリビュータはコンテンツ フォーマッタを呼び出して通知メッセージの書式を設定するときに、FormatContent メソッドを呼び出し、通知データが含まれているハッシュ テーブルの配列をコンテンツ フォーマッタに渡します。通知データには、サブスクライバのロケールとデバイスの種類が含まれます。

アプリケーションによっては、コンテンツ フォーマッタの実装で、ダイジェスト通知、複数のデバイス、および複数のロケールの書式を設定する必要があります。

カスタム コンテンツ フォーマッタの使用

カスタム コンテンツ フォーマッタを使用するには、アプリケーション定義でそのフォーマッタを宣言する必要があります。コンテンツ フォーマッタを宣言するときは、クラス名とアセンブリ名、およびコンテンツ フォーマッタの初期化に必要な任意の引数の名前と値を指定します。詳細については、「コンテンツ フォーマッタの構成」を参照してください。

ms166410.note(ja-jp,SQL.90).gif重要 :
カスタム コンテンツ フォーマッタは、Notification Services エンジンで実行されるディストリビュータと同じ特権で実行されます。Notification Services エンジンを実行するときのアカウントには、アセンブリにアクセスするための権限が必要です。

参照

概念

Notification Services のセキュリティに関する注意点

その他の技術情報

XSLT コンテンツ フォーマッタ
Notification Services のカスタム コンポーネントの開発

ヘルプおよび情報

SQL Server 2005 の参考資料の入手