次の方法で共有


Newsletter サンプル

更新 : 2006 年 7 月 17 日

Newsletter サンプルでは、簡単な Web ベースのサブスクリプション管理アプリケーションの作成方法を示します。このサンプルは、HTML ベースのインターフェイス層とサブスクリプション管理中間層を含む、n 層デザインを持ちます。Microsoft Visual Studio Web プロジェクトでは、Web プロジェクトの実行時に Visual Web Developer Web Server が作成されるため、より簡単にサンプルを使用することができます。このサンプルは IA64 ではサポートされていません。

シナリオ

Adventure Works Cycles は、顧客指向のニュースレターをパブリッシュし、プロモーション イベントを提供します。このアプリケーションを使用して、顧客はニュースレターとプロモーション イベントに関する通知の受け取りをサブスクライブすることができます。

顧客は Web ページを使用して任意の種類の情報 (ニュースレターまたはプロモーション) のサブスクリプションを作成し、いつ配信されるか (イベント ドリブンまたは定期的) を選択します。

Adventure Works Cycles では、ニュースレター データおよびプロモーション イベント データを含んでいるファイルは監視対象フォルダにドロップされます。ジェネレータが実行されると、イベント記録ルールが実行されて定期的なサブスクリプションに使用される記録が更新され、未処理のイベント バッチに対してイベント ドリブン ルールが実行されます。次に、処理される予定のすべての定期的なサブスクリプションに対して、定期的なサブスクリプション ルールが実行されます。定期的なサブスクリプション ルールが実行されると、各サブスクリプションの最終通知生成がいつ行われたかの追跡に使用されるサブスクリプション記録が更新されます。この情報は、通知が重複しないことを確認するために使用されます。

通知は以下の条件を満たすときに生成されます。

  • イベントのドキュメントの種類 (ニュースレターまたはプロモーション) が、サブスクリプションのドキュメントの種類と一致する。
  • ニュースレターまたはイベントのカテゴリが、サブスクリプションのカテゴリと一致する。
  • サブスクリプションが定期的なサブスクリプションである場合、前回のジェネレータ ルール実行と現在のジェネレータ ルール実行までの間にスケジュールされている。
  • サブスクリプションが定期的なサブスクリプションである場合、イベントがデータベースにコミットされた時間が、サブスクリプションが前回通知を生成した時間よりも長い。

生成された通知は XSLT コンテンツ フォーマッタを使用してフォーマットされ、それから File 配信プロトコルを使用して送信されます。

言語

XML、XSD、XSLT、および Microsoft Visual C# または Microsoft Visual Basic。

機能

Newsletter サンプルは、Microsoft SQL Server Notification Services の次の機能を使用します。

アプリケーション エリア 機能

イベント クラス

基本イベント クラス (イベント ドリブン サブスクリプションの場合) およびイベント記録 (定期的なサブスクリプションの場合)

サブスクリプション クラス

イベント ドリブン サブスクリプションおよび定期的なサブスクリプション

通知クラス

ダイジェスト配信

イベント プロバイダ

ファイル システム監視イベント プロバイダ

コンテンツ フォーマッタ

XSLT コンテンツ フォーマッタ

配信プロトコル

ファイルおよび SMTP 配信プロトコル

サブスクリプション管理アプリケーション

Visual Web Developer Web Server を使用する Microsoft ASP.NET

前提条件

このサンプルを実行する前に、次のソフトウェアがインストールされていることを確認してください。

  • Microsoft SQL Server 2005 (次のコンポーネントを含む)
    • データベース エンジン。
    • Notification Services。
    • SQL Server Management Studio。
    • Notification Services サンプル。これらのサンプルは SQL Server 2005 に含まれています。これらの最新バージョンは、SQL Server デベロッパー Web サイトからダウンロードできます。
  • Visual Web Designer を含む Microsoft Visual Studio 2005

サンプルのビルド

サンプルをビルドするには、次の手順を行う必要があります。

  • Notification Services のインスタンスの作成
  • Notification Services のインスタンスの登録
  • SQL Server およびデータベースの権限の許可

Newsletter サンプルのこれらのタスクを行う方法は、次の手順のとおりです。

手順 1: Notification Services のインスタンスの作成

  1. SQL Server Management Studio を起動して、SQL Server のインスタンスに接続します。

  2. オブジェクト エクスプローラで Notification Services フォルダを右クリックして、[新しい Notification Services インスタンス] をクリックします。

  3. [新しい Notification Services インスタンス] ダイアログ ボックスで [参照] をクリックして、Newsletter サンプルのルート フォルダで InstanceConfig.xml ファイルをクリックします。

  4. [パラメータ] ボックスで、次の 3 つのパラメータの値を入力します。

    • SampleDirectory は Newsletter サンプルのルート フォルダのパスです。既定の場所は C:\Program Files\Microsoft SQL Server\90\Samples\Notification Services\Newsletter です。
    • NotificationServicesHost はローカル サーバー名です。
    • SQLServer は SQL Server インスタンスの名前です。
  5. [インスタンスの作成後にインスタンスを有効にする] チェック ボックスをオンにします。

  6. [OK] をクリックします。

  7. Notification Services がインスタンスの作成を完了したら、[閉じる] をクリックします。

手順 2: Notification Services のインスタンスの登録

  1. SQL Server Management Studio で Notification Services ノードを開いて [NewsletterInstance] を右クリックし、[タスク] をポイントして [登録] をクリックします。

  2. [登録] ダイアログ ボックスで、[Windows サービスを作成する] チェック ボックスをオンにします。Windows サービスによって、このコンピュータで Notification Services のインスタンスが実行されます。

  3. [サービス ログオン] の下で、Windows アカウントとパスワードを入力します。これは、サービスを実行する Windows アカウントです。Windows 認証を使用して SQL Server へアクセスしている場合、Windows サービスはこのアカウントも使用して SQL Server に接続します。

  4. SQL Server 認証を使用して SQL Server へアクセスする必要がある場合、[認証] の下の [SQL Server 認証] をクリックしてから SQL Server のログイン名とパスワードを入力します。

    Windows 認証を使用することを推奨します。

  5. [OK] をクリックします。

  6. Notification Services がインスタンスの登録を完了したら、[閉じる] をクリックします。

ms160957.note(ja-jp,SQL.90).gifメモ :
データベース所有者またはシステム管理者のアカウントを使用して Notification Services サンプルを配置する場合、そのアカウントに SQL Server の各権限を許可する必要はありません。これらの権限を許可するとエラーが発生する可能性があります (そのエラーは無視できます)。独自のアプリケーションを配置するときは、セキュリティを向上させるため、できる限り低い権限を持つアカウントを使用する必要があります。

手順 3: SQL Server、データベース、およびフォルダ権限の許可

  1. オブジェクト エクスプローラで、[セキュリティ] ノードを展開します。

  2. Windows サービスに新しいデータベース ログイン アカウントを作成する必要がある場合、[ログイン] を右クリックして [新しいログイン] をクリックし、ログイン アカウントを作成します。

    • Windows 認証を使用するには、[Windows 認証] をクリックし、インスタンスを登録するときに指定したものと同じ Windows アカウントを入力します。
    • SQL Server 認証を使用する必要がある場合は、[SQL Server 認証] をクリックし、インスタンスを登録するときに指定したものと同じ SQL Server ログインとパスワードを入力します。
  3. Windows サービスで使用されるログインで既に SQL Server へアクセスできる場合、そのログインを右クリックして [プロパティ] を選択します。

  4. [ログイン] ダイアログ ボックスの左側のペインで、[ユーザー マッピング] をクリックします。

  5. NewsletterInstanceNSMain データベースへの権限を許可します。

    1. [このログインにマップされたユーザー] ボックスで [NewsletterInstanceNSMain] をクリックします。
    2. [NewsletterInstanceNSMain のデータベース ロール メンバシップ] ボックスで [NSRunService] をクリックします。
  6. NewsletterInstanceNewsletter データベースへの権限を許可します。

    1. [このログインにマップされたユーザー] ボックスで [NewsletterInstanceNewsletter] をクリックします。
    2. [NewsletterInstanceNewsletter のデータベース ロール メンバシップ] ボックスで [NSRunService] をクリックします。
  7. [OK] をクリックして、SQL Server 権限を適用します。

  8. Windows エクスプローラを使用して、Events フォルダのセキュリティを構成します。

    1. Newsletter サンプルの Events フォルダに移動します。
    2. Events フォルダを右クリックして [共有とセキュリティ] をクリックし、[セキュリティ] タブを選択します。
    3. [追加] をクリックして、Windows サービスで使用されるアカウントを追加します。
    4. [グループ名またはユーザー名] ボックスで、追加したアカウントをクリックします。
    5. [アクセス許可] ボックスで、[読み取り] 権限および [変更] 権限を選択します。
    6. [OK] をクリックして、変更を適用します。
  9. Notifications フォルダのセキュリティを構成します。

    1. Newsletter サンプルの Notifications フォルダに移動します。
    2. Notifications フォルダを右クリックして [共有とセキュリティ] をクリックし、[セキュリティ] タブを選択します。
    3. [追加] をクリックして、Windows サービスで使用されるアカウントを追加します。
    4. [グループ名またはユーザー名] ボックスで、追加したアカウントをクリックします。
    5. [アクセス許可] ボックスで、[書き込み] 権限を選択します。
    6. [OK] をクリックして、変更を適用します。

サンプルの実行

このサンプルを実行するには、次の手順を行う必要があります。

  • インスタンスの開始
  • Web アプリケーションを使用してのサブスクライバおよびサブスクリプションの追加
  • イベントを含む XML ファイルの送信

これらのタスクを行う方法と、結果の通知を表示する方法は、次の手順のとおりです。

手順 1: インスタンスの開始

  1. オブジェクト エクスプローラで、Notification Services フォルダを開きます。

  2. [NewsletterInstance] を右クリックして [開始] を選択します。

手順 2: サブスクライバおよびサブスクリプションの追加

  1. Visual Studio 2005 を開きます。

  2. [ファイル] メニューの [開く] をポイントし、[Web サイト] をクリックします。

  3. [Web サイトを開く] ダイアログ ボックスで、Newsletter サンプルの SubscriptionManagementWeb\cs\SubscriptionManagementWeb フォルダに移動して [開く] をクリックします。

  4. F5 キーを押して、Web アプリケーションを実行します。

    Web ページを使用して、サンプル ユーザーのサブスクリプションを Newsletter アプリケーションに追加します。既定のサブスクリプション値が通知されます。

ms160957.note(ja-jp,SQL.90).gifメモ :
運用アプリケーションの場合、またはこのアプリケーションを制限付きのアカウントで実行している場合は、インスタンス データベースとアプリケーション データベースの NSSubscriberAdmin データベース ロールにこのアプリケーションの SQL Server ログインを追加してください。

手順 3: イベントの送信

  1. Windows エクスプローラで、Newsletter サンプルのルート フォルダに移動し、EventData.xml ファイルを Events サブフォルダにコピーします。

    ファイルをコピーすると、ファイル システム監視イベント プロバイダがデータをファイルから読み取り、そのデータをアプリケーションに送信して、ファイルの拡張子を .done に変更します。

    データの読み取り時や送信時にエラーが発生した場合、イベント プロバイダはファイルの拡張子を .err に変更します。エラーの詳細については、Windows イベント ビューアを参照してください。

手順 4: 通知の表示

  1. Notification Services が通知を作成するまで約 1 分間待機します。

  2. Windows エクスプローラを使用して、Newsletter サンプルの Notifications フォルダへ移動します。FileNotifications.txt という名前のファイルを探します。このファイルには通知が含まれています。

  3. 電子メール メッセージがドロップされるフォルダへ移動します。これは通常 C:\Inetpub\mailroot にあるフォルダのいずれかにあります。SMTP サーバーの状態によって、通知は Pickup フォルダまたは Queue フォルダのいずれかにあります。SMTP サービスが実行されている場合、メッセージが Badmail フォルダに移動していることもあります。

サンプルの削除

次の手順に従って、Newsletter サンプルを削除します。

Newsletter サンプルを削除するには

  1. オブジェクト エクスプローラで、Notification Services フォルダを開きます。

  2. [NewsletterInstance] を右クリックし、[停止] をクリックします。

  3. [NewsletterInstance] を右クリックして [タスク] をポイントし、[登録解除] をクリックします。

  4. [NewsletterInstance] を右クリックして [タスク] をポイントし、[削除] をクリックします。

参照

その他の技術情報

SQL Server Notification Services サンプル
Notification Services のセキュリティの設定

ヘルプおよび情報

SQL Server 2005 の参考資料の入手

変更履歴

リリース 履歴

2006 年 7 月 17 日

変更内容 :
  • このサンプルを実行する前提条件として Visual Web Designer を追加しました。

2006 年 4 月 14 日

変更内容 :
  • データベース所有者権限を使用したサンプルの実行に関する注意事項を追加しました。