チュートリアル: リモート データベース サーバーの配置

この配置チュートリアルでは、リモート サーバーにデータベースがある場合に、Notification Services インスタンスを配置する方法について説明します。この配置方法はサーバー 1 台の配置よりスケーラビリティに優れており、中規模から大規模のアプリケーションに適したソリューションといえます。

ms171337.note(ja-jp,SQL.90).gifメモ :
Notification Services の配置はすべて一意です。このトピックの手順は、独自の配置手順を開発およびテストするためのガイドラインとして使用してください。

以下の図に、この配置シナリオのハードウェア構成を示します。このシナリオでは、NS1 および SQL1 の 2 台のサーバーを使用します。NS1 に Notification Services をインストールし、SQL1 にデータベース エンジン をインストールします。

リモートサーバー構成

NS1 は、Notification Services エンジン コンポーネントを実行し、1 つまたは 2 つのディスク ドライブを使用します。このサーバーではドライブの数は重要ではありません。SQL1 は、インスタンス データベースおよびアプリケーション データベースをホストします。データベースのパフォーマンスを向上させるため、SQL1 に複数のディスク ドライブを用意し、データベース ファイル、ログ ファイル、tempdb、およびデータベース エンジン をそれぞれ別のディスク ドライブに格納します。

前提条件

Notification Services のインスタンスを配置する前に、以下のすべての前提条件が満たされていることを確認します。

  • NS1 には既にオペレーティング システムがインストールされており、必要な Service Pack と更新プログラムがすべて適用されていること。
  • SQL1 には既に Microsoft Windows および Microsoft SQL Server 2005 データベース エンジン がインストールされており、必要な Service Pack と更新プログラムがすべて適用されていること。
  • サーバーの管理権限を持つアカウントでこれらの手順を実行していること。
  • ユーザーまたはドメイン管理者が、Notification Services が使用するアカウントを既に作成済みまたは指定済みであること。ここでは、このアカウントを DOMAIN\NSService とします。
  • ソース ファイルおよびデータ ファイルに必要なファイル共有を作成し、使用するアカウントと DOMAIN\NSService アカウントに必要な権限を付与していること。
  • データベース エンジン で TCP/IP または名前付きパイプのネットワーク プロトコルが有効になっていること。SQL Server 2005 では、これらのネットワーク プロトコルが既定で無効になっています。詳細については、「SQL Server セキュリティ構成」を参照してください。

配置の概要

この配置チュートリアルでは、Notification Services エンジンを実行する NS1 サーバーで、次の手順を実行します。

  1. Notification Services をインストールします。
  2. NSService アカウントに Windows 権限を与えます。
  3. Notification Services のインスタンスを作成し、有効にします。
  4. Notification Services のインスタンスを登録します。これにより、Notification Services エンジン コンポーネントを実行する Windows サービスが作成されます。
  5. 通知を生成する準備ができたら、Notification Services のインスタンスを起動します。

データベースをホストする SQL1 サーバーで、次の手順を実行します。

  • Windows アカウントにデータベース権限を与えます。
    ms171337.note(ja-jp,SQL.90).gifメモ :
    Notification Services では、SQL Server 認証もサポートされます。 可能な場合は、Windows 認証を使用します。

次の手順では、Notification Services コマンド プロンプトを使用して配置のスクリプトを作成する方法を紹介します。SQL Server Management Studio を使用して Notification Services のインスタンスを配置することもできます。SQL Server Management Studio による単一サーバー配置の手順については、「SQL Server Notification Services サンプル」を参照してください。

NS1 での作業

NS1 サーバーで次の手順を実行して、Notification Services のインスタンスを作成、登録、および有効化します。

手順 1: ソフトウェアのインストール

  1. Notification Services をインストールします。その他のコンポーネントもインストールできますが、このチュートリアルの手順では必要ありません。

    コンポーネントのインストールの詳細については、「SQL Server Notification Services のインストール」を参照してください。

手順 2: DOMAIN\NSService アカウントへの Windows 権限の付与

  1. [スタート] ボタンをクリックし、[すべてのプログラム][Microsoft SQL Server 2005][Notification Services] を順にポイントします。次に、[Notification Services コマンド プロンプト] をクリックして、Notification Services コマンド プロンプト ウィンドウを開きます。

  2. ローカル Users グループに DOMAIN\NSService アカウントを追加します。コマンド プロンプトで、次の net localgroup コマンドを入力します。

    net localgroup users DOMAIN\NSService /add

    ローカル グループにアカウントを追加する方法については、Windows のマニュアルを参照してください。

手順 3: Notification Services のインスタンス作成および有効化

  1. コマンド プロンプトで次のコマンドを入力して、インスタンス データベースとアプリケーション データベースを作成します。

    nscontrol create -in "Path\ICFName"

    ICF によっては、追加のコマンド プロンプト引数やパラメータが必要になることもあります。

  2. 次のコマンドを入力して、インスタンスを有効にします。

    nscontrol enable -nameinstanceName-serverdatabaseServer

    Notification Services エンジンがインストールおよび起動されていないため、エンジン コンポーネントが Enable Pending 状態になります。

    インスタンスを登録してから有効にする場合は、-server 引数を省略できます。

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

  1. コマンド プロンプトで、次のコマンドを入力します。

    nscontrol register -nameinstanceName-serverdatabaseServer-service

        -serviceusername DOMAIN\NSService

        -servicepassword"password"

    このコマンドが完了すると、NS$instanceName という名前の Windows サービスがローカル コンピュータに作成されます。

ms171337.note(ja-jp,SQL.90).gifメモ :
SQL Server 認証を使用する場合は、インスタンスを登録するときに、SQL Server 認証のログインとパスワードを指定します。その後、このログインに権限を与えます。

以上で、NS1 サーバーでの作業が終了しました。

SQL1 での作業

Notification Services エンジンに SQL Server 権限とデータベース権限を与える必要があります。SQL Server ワークステーション コンポーネントを NS1 にインストールした場合は、これらの手順を NS1 で実行できます。

手順 1: SQL Server 権限とデータベース権限の付与

  1. コマンド プロンプト ウィンドウを開きます。

  2. コマンド プロンプトで次のコマンドを入力して、DOMAIN\\NSService アカウントの SQL Server ログインを作成します。

    sqlcmd -E -SdatabaseServer-Q "CREATE LOGIN [DOMAIN\NSService] FROM WINDOWS;"

  3. 以下のコマンドを入力します。インスタンス データベースにアクセスするための権限が DOMAIN\NSService アカウントに与えられ、このアカウントが NSRunService データベース ロールに追加されます。

    sqlcmd -E -SdatabaseServer-Q "USEinstanceDatabase**;**

    **    CREATE USER [DOMAIN\NSService];**

    **    EXEC sp_addrolemember N'NSRunService', N'DOMAIN\NSService';"**

  4. アプリケーション データベースを単独で使用している場合は、次のコマンドを入力します。アプリケーション データベースにアクセスするための権限が DOMAIN\NSService アカウントに与えられ、このアカウントが NSRunService データベース ロールに追加されます。

    sqlcmd -E -SdatabaseServer-Q "USEapplicationDatabase**;**

    **    CREATE USER [DOMAIN\NSService];**

    **    EXEC sp_addrolemember N'NSRunService', N'DOMAIN\NSService';"**

    このインスタンスで複数のアプリケーションをホストする場合は、アプリケーション データベースの数だけこの手順を繰り返してください。

これで Notification Services のインスタンスの配置が終わりました。サブスクライバとサブスクリプションのデータを読み込み、アプリケーションにイベントを送信できるはずです。Notification Services によるデータの処理は、Windows サービスを開始しないと開始されません。次に、Windows サービスの開始について説明します。

Notification Services のインスタンスの開始

インスタンスで通知の生成を開始する準備ができたら、Windows サービスを起動します。NS1 サーバーで、コマンド プロンプト ウィンドウを開き、次のコマンドを入力します。

**net start NS$**instanceName

詳細については、「Notification Services インスタンスの開始と停止」を参照してください。

トラブルシューティング

アプリケーションで通知が生成されない場合は、Notification Services コマンド プロンプトで次のコマンドを入力して、インスタンスの状態を確認します。

nscontrol status-name instanceName

すべてのコンポーネントが正しいサーバーで実行されていること、および状態が Enabled になっていることを確認します。詳細については、「インスタンス、アプリケーション、およびコンポーネントの状態表示」を参照してください。

Windows アプリケーション ログを調べて、エラーを確認することもできます。詳細については、「Notification Services のトラブルシューティング」を参照してください。

参照

概念

Notification Services のインスタンスの配置
ホストされないイベント プロバイダの配置
サブスクリプション管理インターフェイスの配置

その他の技術情報

nscontrol create コマンド
nscontrol enable コマンド
nscontrol register コマンド
sqlcmd ユーティリティ

ヘルプおよび情報

SQL Server 2005 の参考資料の入手