次の方法で共有


Profit Margin サンプル

更新 : 2006 年 7 月 17 日

Profit Margin サンプルは、個々の従業員の利益率についての通知の生成や、このデータのサブスクライブ ユーザーへの送信を行う、イベント ドリブンの Microsoft SQL Server Notification Services アプリケーションです。このサンプルは SSAS イベント プロバイダを使用して、SSAS データベースに対するクエリを実行し、その結果をイベントとして Notification Services アプリケーションに返します。

ms160923.note(ja-jp,SQL.90).gifメモ :
このサンプルは Itanium ベースのサーバーで実行することはできません。Business Intelligence Development Studio がインストールされていないためです。

シナリオ

この会社では、SSAS データベースを使用して、販売実績を分析します。販売部門の従業員は、担当するいずれかの再販業者が利益目標を達成したときに通知を受け取るため Profit Margin アプリケーションにサブスクライブできます。

アプリケーションに指定されたスケジュールで、SSAS イベント プロバイダは MDX クエリを実行してイベントを収集します。ジェネレータが実行されると、これらのイベントは記録に追加されます。次の条件に一致したとき、ジェネレータはイベント記録から通知を生成します。

  • サブスクライバの名前が、イベント内の従業員の名前と一致する。
  • 再販業者の売上総利益率が、再販業者の売上総利益率目標よりも大きい。

結果の通知は XSL 変換を使用して書式設定され、ファイルに送信されます。

言語

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

機能

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

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

Event クラス

基本イベント キューと 1 つの記録

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

1 つのイベント ドリブン サブスクリプション クラス

通知クラス

1 つの通知クラス (ダイジェスト配信またはマルチキャスト配信を使用しない)

イベント プロバイダ

2 つの SSAS イベント プロバイダ (1 つは静的、1 つは動的)

コンテンツ フォーマッタ

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

配信プロトコル

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

前提条件

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

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

サンプルのビルド

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

  • SSAS データベースを配置します。
  • Notification Services のインスタンスを作成します。
  • Notification Services のインスタンスを登録します。
  • SQL Server およびデータベースの権限を許可します。

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

手順 1: Adventure Works DW OLAP データベースの配置

  1. SQL Server Business Intelligence Development Studio を起動し、[ファイル] メニューの [開く] をポイントして、[プロジェクト/ソリューション] をクリックします。

  2. C:\Program Files\Microsoft SQL Server\90\Tools\Samples\AdventureWorks Analysis Services Project を参照して、Adventure Works DW.dwproj ファイルを選択し、[開く] をクリックします。

  3. [ソリューション エクスプローラ] で、[Adventure Works DW] を右クリックして [配置] をクリックします。

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

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

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

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

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

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

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

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

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

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

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

  2. [登録] ダイアログ ボックスで、[Windows サービスを作成する] チェック ボックスをオンにします。

    Windows サービスによって、このコンピュータで Notification Services のインスタンスが実行されます。

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

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

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

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

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

手順 4: SQL Server およびデータベースの権限の許可

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

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

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

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

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

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

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

  8. Adventure Works DW データベースへの権限を許可します。

    1. SQL Server Management Studio で、SSAS に接続します。
    2. SSAS の [データベース] フォルダを展開し、[Adventure Works DW] を展開します。
    3. [ロール] を右クリックし、[新しいロール] をクリックします。
    4. [ロール名] ボックスに、「ProfitMarginNS」と入力します。
    5. 左側のペインで、[メンバシップ] をクリックし、このサンプルの Notification Services Windows サービスを実行するために使用するアカウントを追加します。
    6. 左側のペインで、[キューブ] をクリックします。
    7. AdventureWorks キューブの場合は、[アクセス] フィールドをクリックし、[読み取り] を選択します。
    8. [OK] をクリックして、キューブ権限を適用します。
  9. Events フォルダのセキュリティを構成します。

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

    1. Profit Margin サンプルの 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) を使用して、コマンド プロンプト ウィンドウの現在のディレクトリから、サンプルがインストールされているフォルダに移動します。

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

    sn -k SampleKey.snk

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

サンプルの実行

このサンプルを実行するには、次の手順を行います。

  • インスタンスの開始
  • サブスクライバおよびサブスクリプションの追加
  • SSAS データ ウェアハウスへのイベントの追加

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

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

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

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

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

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

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

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

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

    1. 選択したソリューション ファイル (ProfitMargin.sln または ProfitMargin_VB.sln) を開きます。
    2. F6 キーを押して、ソリューションをビルドします。
  2. AddSubscribers.exe を実行します。

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

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

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

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

手順 3: Analysis Services データ ウェアハウスへのイベントの追加

  1. SQL Server Management Studio で新しい SQL Server クエリ ウィンドウを開きます。

  2. ProfitMargin\SQL Scripts フォルダの TriggerEvent.sql ファイルを開き、AdventureWorks データ ウェアハウスにデータを追加します。このデータはイベントを生成します。

    ms160923.note(ja-jp,SQL.90).gifメモ :
    このスクリプトを再度実行する場合は、SELECT @SalesOrderNumber 文字値を変更して新しい販売注文を追加することにより、SalesOrderNumber を変更する必要があります。
  3. 次のようにして、キューブを再処理します。

    1. SQL Server Management Studio のオブジェクト エクスプローラで [接続] をクリックし、[分析サーバー] をクリックします。
    2. [サーバーへの接続] ダイアログ ボックスで、[サーバー名] ボックスに AdventureWorksDW キューブをホストするサーバー名を入力し、[接続] をクリックします。
    3. オブジェクト エクスプローラで [分析サーバー] ノードを開いて [データベース] フォルダを開き、[Adventure Works DW]、[キューブ]、[Adventure Works]、[メジャー グループ] の順に展開し、[Reseller Sales] を探します。
    4. [Reseller Sales] を右クリックして [処理] をクリックします。
    5. [OK] をクリックして、[Reseller Sales] キューブを再処理します。

手順 4: 通知の表示

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

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

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

サンプルの削除

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

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

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

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

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

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

参照

その他の技術情報

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

ヘルプおよび情報

SQL Server 2005 の参考資料の入手

変更履歴

リリース 履歴

2006 年 4 月 14 日

追加内容 :
  • データベース所有者権限を使用したサンプルの実行に関する注意事項を追加しました。
  • Business Intelligence Development Studio は Itanium ベースのサーバーにはインストールされていないことに関する注意事項を追加しました。

2005 年 12 月 5 日

変更内容 :
  • キー ファイルの名前や場所など、キー ファイルを生成する手順を変更しました。
  • AdventureWorks DW キューブに権限を許可する手順を追加しました。
  • キューブを配置する手順を更新しました。