Share via


Flight サンプル

更新 : 2006 年 7 月 17 日

Flight サンプルは、サブスクライブされたユーザーのサブスクリプションに従って航空券価格の通知を生成する、イベント ドリブンの Microsoft SQL Server 2005 Notification Services アプリケーションです。

シナリオ

旅行者は航空券価格通知をサブスクライブしています。各サブスクリプションでは、旅行者は、出発地と到着地、希望価格、および航空会社 (任意) を指定します。

Flight アプリケーションを実行している企業は、XML データを監視フォルダにドロップすることによって航空券価格イベント データをアプリケーションに送信します。次に、Notification Services がこのデータを取得し、一致するサブスクリプションを持つサブスクライバに対する通知を生成します。

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

  • イベントのチケット価格が、サブスクリプションのチケット価格より安い。
  • イベントの出発空港が、サブスクリプションの出発空港と同じである。
  • イベントの到着空港が、サブスクリプションの到着空港と同じである。
  • イベントの航空会社が、サブスクリプションの航空会社 (指定されている場合) と同じである。

1 つのサブスクライバ宛てに複数の通知を同時に送信する場合、Notification Services はダイジェスト配信を使用して複数の通知を結合します。次に、Notification Services は XSLT コンテンツ フォーマッタを使用して通知をフォーマットし、指定された配信チャネル (電子メールまたはファイル) を使用して通知を配布します。

言語

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

機能

Flight サンプルでは、Notification Services の次の機能が使用されます。

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

イベント クラス

基本イベント キュー (記録なし)

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

イベント ドリブン サブスクリプション

通知クラス

ダイジェスト配信

イベント プロバイダ

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

コンテンツ フォーマッタ

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

配信プロトコル

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

前提条件

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

  • SQL Server 2005 (次のコンポーネントを含む)
    • データベース エンジン
    • Notification Services
    • SQL Server Management Studio
    • Notification Services サンプル (これらのサンプルは SQL Server 2005 に含まれています。これらの最新バージョンは、SQL Server デベロッパー Web サイトからダウンロードできます)
    • .NET Framework SDK 2.0 または Microsoft Visual Studio 2005 (.NET Framework SDK は無償で入手できます。詳細については、「.NET Framework SDK のインストール」を参照してください)

次の Windows コンポーネントがインストールされていて操作可能な状態であることも確認します。

  • インターネット インフォメーション サービス (IIS) のコンポーネントである簡易メール転送プロトコル (SMTP) サービス。Microsoft Windows Server 2003 では、IIS の既定のインストールでは SMTP はインストールされません。SMTP Service のインストールおよび使用方法の詳細については、Windows のマニュアルを参照してください。

Notification Services インスタンスのビルド

このインスタンスをビルドするには、次の手順を行う必要があります。

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

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

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

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

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

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

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

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

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

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

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

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

  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 がインスタンスの登録を完了したら、[閉じる] をクリックします。

ms160946.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. FlightInstanceNSMain データベースへの権限を許可します。

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

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

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

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

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

厳密な名前のキー ファイルの生成

強力な名前のキー ファイルをまだ作成していない場合は、次の指示に従ってキー ファイルを生成してください。

厳密な名前のキー ファイルを生成するには

  1. Microsoft Visual Studio 2005 コマンド プロンプトを開きます。[スタート] メニューの [すべてのプログラム] をポイントし、[Microsoft .NET Framework SDK 2.0] をポイントします。次に、[SDK コマンド プロンプト] をクリックします。

    -- または --

    Microsoft .NET Framework コマンド プロンプトを開きます。[スタート] メニューの [すべてのプログラム] をポイントし、[Microsoft .NET Framework SDK 2.0] をポイントします。次に、[SDK コマンド プロンプト] をクリックします。

  2. ディレクトリの移動コマンド (CD) を使用して、コマンド プロンプト ウィンドウの現在のディレクトリから、サンプルがインストールされているフォルダに移動します。

    ms160946.note(ja-jp,SQL.90).gif注 :
    サンプルが配置されているフォルダを調べるには、[スタート] ボタンをクリックし、[すべてのプログラム]、[Microsoft SQL Server]、[マニュアルとチュートリアル] の順にポイントして、[サンプル ディレクトリ] をクリックします。既定のインストール場所を使用している場合、サンプルは <system_drive>:\Program Files\Microsoft SQL Server\100\Samples にあります。
  3. コマンド プロンプトで、次のコマンドを実行してキー ファイルを生成します。

    sn -k SampleKey.snk

    ms160946.note(ja-jp,SQL.90).gif重要 :
    厳密な名前のキー ペアの詳細については、MSDN の .NET Development Center にある「Security Briefs: Strong Names and Security in the .NET Framework」を参照してください。

サンプルの実行

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

  • インスタンスの開始
  • サブスクライバおよびサブスクリプションの追加
  • イベントを含む XML ファイルの送信
  • 結果の通知の表示

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

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

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

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

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

  1. Flight または Flight_VB Visual Studio ソリューションをビルドします。

    Microsoft .NET Framework SDK を使用している場合は、次の手順を行います。

    1. [スタート] をクリックして [すべてのプログラム] をポイントし、[Microsoft .NET Framework SDK v2.0] をポイントして [SDK Command Prompt] をクリックします。
    2. Flight サンプルのルート フォルダを探します。次のコマンドを入力して既定の場所を指定します。
      cd \Program Files\Microsoft SQL Server\90\Samples\Notification Services\Flight
    3. 次を入力して、Visual Studio ソリューションをビルドします。
      [C#] 
      msbuild Flight.sln
      [Visual Basic] 
      msbuild Flight_VB.sln

    または、Visual Studio 2005 を使用している場合は、次の手順を行います。

    1. 選択したソリューション ファイル (Flight.sln または Flight_VB.sln) を開きます。
    2. ソリューションをビルドします。
  2. AddSubscribers.exe を実行します。

    このファイルの既定の場所は、C:\Program Files\Microsoft SQL Server\90\Samples\Notification Services\Flight\AddSubscribers\language\AddSubscribers\bin\Debug です。

  3. AddSubscriptions.exe を実行します。

    C:\Program Files\Microsoft SQL Server\90\Samples\Notification Services\Flight\AddSubscriptions\language\AddSubscriptions\bin\Debug

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

手順 3: イベントの送信

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

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

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

手順 4: 通知の表示

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

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

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

サンプルの削除

Flight サンプルを削除するには、次の手順を実行します。

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

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

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

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

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

参照

その他の技術情報

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

ヘルプおよび情報

SQL Server 2005 の参考資料の入手

変更履歴

リリース 履歴

2006 年 4 月 14 日

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

2005 年 12 月 5 日

変更内容 :
  • キー ファイルの名前や場所など、キー ファイルを生成する手順を変更しました。