************************************************************ Microsoft(R) SQL Server(TM) Notification Services 2.0 SP1 リリース ノート 2003 年 5 月 8 日 ************************************************************ (c) Copyright Microsoft Corporation, 2003. All rights reserved. このファイルには、Microsoft SQL Server Notification Services のドキュメントを補足する情報が含まれています。 ************************************************************ 目次 ************************************************************ 1.0 はじめに 1.1 Notification Services 2.0 SP1 の拡張 1.2 Web 上の Readme への補遺 1.3 Notification Services ドキュメントへのアクセス 2.0 インストール 2.1 必要なハードウェアとソフトウェア 2.2 Notification Services のインストール 2.3 Notification Services サンプルの実行 2.4 Notification Services のアンインストール 3.0 Notification Services 2.0 SP1 へのアプリケーションの アップグレード 4.0 製品とドキュメントのメモ 4.1 トラブルシューティング : SSL Security エラー 4.2 NSControl Upgrade の実行前にインスタンスを無効にする 4.3 EventCollector.Write メソッドが値を返さない 4.4 大きな通知バッチ サイズでは要約配布を使用しない 4.5 ドキュメントのイベント ソース名が間違っている 4.6 トラブルシューティング : Notification Services を インストールしないでセットアップが完了する 4.7 イベント メッセージ DLL が見つからないことを示す イベントメッセージ 4.8 暗号引数のキー値は文字列にする 4.9 サブスクライバを無効にするとインスタンスが無効になる 4.10 コンテンツ フォーマット エラーがログの中に記録され ないことに起因する通知配信の失敗 4.11 クラスタ上で Notification Services を実行する場合は、 の値をクラスタ名にする必要がある 4.12 SP1: NSControl Create はデータベース間所有権の継承を 有効にするので、Sysadmin の特権が必要になる 4.13 SP1: XSLT コンテンツ フォーマッタを使用したプレーン テキストの記述 4.14 SP1: ストアド プロシージャ NSDiagnosticFailedNotifications に対して加えられた変更 4.15 .NET Framework Version 1.1.4322 でビルドされたカスタム コンポーネントの使用 * "SP1:" という文字で始まる項目は、Notification Services 2.0 SP1 に適用されますが、それより前のバージョンには適用されません。 ************************************************************ 1.0 はじめに ************************************************************ Notification Services 2.0 SP1 は、Notification Services の完全 リリース (単独で動作するリリース) です。 既に Notification Services 2.0 を使用している場合は、 Notification Services 2.0 SP1 をサイドバイサイドでインストール し、次に使用中のアプリケーションをアップグレードすることが できます。アプリケーションをアップグレードする方法の詳細に ついては、セクション 3.0 を参照してください。 まだ Notification Services 2.0 をインストールしていない場合は、 Notification Services 2.0 SP1 をインストールし、それを使用して 独自の通知アプリケーションをビルドし、実行することができます。 ------------------------------------------------- 1.1 Notification Services 2.0 SP1 で拡張された機能 ------------------------------------------------- * セットアップは、.NET Framework Version 1.0 および 1.1 を サポートしています。 * NSControl Create は、いくつかのインデックスを追加します。 その中には、削除のパフォーマンスを向上させるためのイベント テーブル用インデックスや、サブスクリプション処理パフォー マンスを向上させるための通知テーブル用インデックスが含まれ ています。 * NSDiagnosticFailedNotifications は、通知の配信が失敗する たびに、1 つのレコードを返すようになりました (セクション 4.10 で説明するコンテンツ フォーマット エラーを除きます)。 * 標準的な XSLT コンテンツ フォーマッタを構成して、プレーン テキストを書き込むこともできます。詳細については、セクション 4.11 を参照してください。 * NSControl Create は、インスタンス データベースとアプリケー ションデータベースに対してデータベース間所有権の継承を有効 にします。詳細については、セクション 4.12 を参照してください。 * ADF の中で または の値を変更し、次に NSControl Update を使用してアプリケー ションを更新する場合は、Notify 関数は再コンパイルされ、次の 変更点が適用されるようになります。 * 1 つの通知クラスの ノードの中で項目の追加、 変更、または削除を行い、次にアプリケーションを更新する場合 は、NSControl はその通知クラス全体を再作成することなく、 プロトコルを更新します。 * サンプル アプリケーション Realtor は、大文字と小文字を区別 する照合順序の下で動作するようになりました。 * ストアド プロシージャ NSEventFlushBatch は、 マルチスレッド化されたイベントの送信を行うときに潜在的な デッドロックが発生することを回避するために、更新されました。 * Turkish (トルコ語) ロケールを使用するオペレーティング シス テム上での接続の問題を解決するために、データベース接続文字 列が変更されました。 * Windows Server 2003 上では、サンプル アプリケーションの サブスクリプションを管理する ASP.NET アプリケーションは、 AUTHORITY\NETWORKSERVICE アカウントの下で動作します (他の オペレーティング システム上では、そのアプリケーションは 引き続き ASPNET アカウントの下で動作します)。 ------------------------------ 1.2 Web 上の Readme への補遺 ------------------------------ Notification Services 2.0 SP1 に関する最新のドキュメントは、 http://support.microsoft.com?kbid=818351 にある Microsoft Product Support Services の Web サイトから入手できます。 ------------------------------------------------- ************************************************************ 1.3 Notification Services ドキュメントへのアクセス ************************************************************ セットアップ プログラムが Notification Services ドキュメント をインストールします。Notification Services をインストール しないでドキュメントをインストールできます。この機能により、 Notification Services をインストールする前に、インストールの 手順を読み、セットアップ オプションについて学習できます。 オンライン ドキュメント、および Global Documentation Pack を 含むドキュメント ダウンロードへのリンクは、 http://www.microsoft.com/japan/sql/ns/document.asp に記載され ています。 ************************************************************ 2.0 インストール ************************************************************ Notification Services セットアップでは、5 つのコンポーネント と 1 つのサブコンポーネントをインストールできます。 * エンジン コンポーネント これらのコンポーネントは、Notification Services イベントの 収集、生成、書式設定、および配布機能を実行します。 スケールアウトされた (複数のサーバーを使用するよう拡張した) アプリケーションを配置するときは、ホストされるイベント プロ バイダ、ジェネレータ、およびディストリビュータを実行する各 サーバーに、そのコンポーネントをインストールする必要があり ます。 * クライアント コンポーネント これらのコンポーネントは、独立イベント プロバイダおよびサブ スクリプション管理アプリケーションをホストするサーバーに インストールする必要があります。これらのコンポーネントは、 独立イベント プロバイダおよびアプリケーションが Notification Services とやり取りを行うためのインターフェイスを備えてい ます。Notification Services のインスタンスを管理するために 使用する NSControl ユーティリティもクライアント コンポー ネントの一部としてインストールされます。 * 一括イベント送信サブコンポーネント このサブコンポーネントは、XML データを使用する場合に、 クライアント コンポーネントと共にインストールする必要が あります。 * データベース コンポーネント これらのコンポーネントは、インスタンスとアプリケーション データベースをホストするデータベース サーバーにインストール する必要があります。データベース コンポーネントは、通知の 生成に使用する拡張ストアド プロシージャを含みます。 * ドキュメント Notification Services ドキュメントへのアクセスを希望する 任意 の場所にインストールできます。 * サンプル アプリケーションのセット Notification Services に精通するために使用できるサンプル アプリケーションのセットです。 Microsoft Visual Studio(R) .NET の内部からサンプルを実行 できます。 すべてのコンポーネントを 1 台のサーバーにインストールする ことも、必要に応じて別のサーバーにコンポーネントを分割して インストールすることもできます。 ------------------------------------ 2.1 必要なハードウェアとソフトウェア ------------------------------------ Notification Services をインストールする前に、お使いのコン ピュータが以下の要件を満たしていることを確認します。 重要 :Notification Services のエンジン コンポーネントまたは クライアント コンポーネントをインストールする前に、.NET Framework Version 1.0 または 1.1 をインストールする必要が あります。それらより新しいバージョンの .NET Framework を インストールする場合は、Version 1.0 または 1.1 とサイドバイ サイドでインストールしてください。 重要 :Notification Services のエンジン コンポーネントまたは イベントの一括送信コンポーネントをインストールする前に、 SQLXML 3.0 をインストールする必要があります。これより新しい バージョンの SQLXML をインストールする場合は、SQLXML 3.0 を 削除しないでください。新しいバージョンを、SQLXML 3.0 とサイド バイサイドでインストールしてください。 主要なコンポーネントのハードウェア ============================================================ * コンピュータ Pentium 450 MHz 以上。 Pentium 733 MHz 以上を推奨。 * メモリ (RAM) 128 MB 以上。 256 MB 以上を推奨。 * ハードディスク Notification Services コンポー 空き容量 ネント :10 MB。 データベースが Notification Services と同じサーバーに存在する 場合は、データベース テーブル、ログ ファイル、および一時データ ベース テーブル用に追加のディスク空き領域が 必要になります。 エンジン コンポーネント用のソフトウェア ============================================================ * オペレーティング Microsoft Windows(R) 2000 SP2 (以降) システム または Windows XP Professional、 Windows Server 2003。 * Microsoft Data MDAC Version 2.6 以降。 Access Components Microsoft .NET Framework をインス (MDAC) トールするために必要です。また、 Microsoft SQLXML でも必要です。 * SQL Server 2000 SQL Server 2000 クライアント ツール。 クライアント ツール SQLXML で必要です。 * Microsoft SQLXML SQLXML Version 3.0 以降および そのサービスパック。 * .NET Framework .NET Framework Version 1.0 もしくは 1.1、およびそのサービスパック。 .NET Framework、MDAC、および SQLXML を入手するには、 次の Web サイトを参照してください。 http://go.microsoft.com/fwlink/?linkid=7733 クライアント コンポーネント用のソフトウェア ============================================================ * オペレーティング Microsoft Windows(R) 2000 SP2 (以降) システム または Windows XP Professional、 Windows Server 2003。 * Microsoft Data MDAC Version 2.6 以降。 Access Components Microsoft .NET Framework をインス (MDAC) トールするために必要です。また、Microsoft SQLXML でも必要です。 * .NET Framework .NET Framework Version 1.0 もしくは 1.1、およびそのサービスパック。 一括イベント送信サブコンポーネント用のソフトウェア ============================================================ * SQL Server ツール SQL Server 2000 クライアント ツール。 SQLXML で必要です。 * Microsoft SQLXML SQLXML Version 3.0 以降および そのサービスパック。 データベース コンポーネント用のソフトウェア ============================================================ * SQL Server SQL Server 2000 Standard Edition、 SQL Server 2000 Enterprise Edition、 SQL Server 2000 Developer Edition、 または SQL Server 2000 Evaluation Edition (120 日間限定評価版) Notification Services は、SQL Server 2000 Desktop Engine (MSDE 2000)、SQL Server 2000 Personal Edition、および SQL Server 2000 CE Edition のいずれもサポートしていません。 SQL Server 2000 に最新の Service Pack を適用することを お勧めします。 ドキュメント用のソフトウェア ============================================================ * インターネット ソフトウェア Microsoft Internet Explorer 5.01 以降。 サンプル用のソフトウェア ============================================================ * 開発ツール すべてのサンプルは、ソリューション ファイル (.sln) を備えた Visual Studio .NET ソリューションとして提供されます。 Visual Studio .NET なしでもサンプルを 使用できますが、テキスト エディタまた はその他の XML エディタでファイルを 編集する必要があります。 * Internet Information サンプルを実行するシステムでは、 Services (IIS) Internet Information Services (IIS) 5.0 以降がインストールされ、実行され ている必要があります。 これには、Simple Mail Transfer Protocol (SMTP) サービス、World Wide Web Publishing サービス、 および IIS Admin サービスを含みます。 ---------------------------------------- 2.2 Notification Services 2.0 SP1 のインストール ---------------------------------------- インストールの注意事項 * Notification Services セットアップを実行するには、使用する アカウントがローカル Administrators グループのメンバである 必要があります。データベース コンポーネントをインストール するには、使用するアカウントまたはセットアップ中に指定する アカウントが、SQL Server sysadmin 固定サーバー ロールの メンバである必要があります。 * インストールはローカルに実行する必要があります。リモート セットアップは利用できません。 * データベース コンポーネントをインストールするときは、SQL Server 2000 データベース エンジンが実行されていることを 確認する必要があります。セットアップは SQL Server の起動 を試みません。 インストールの手順 1. Notification Services 2.0 のサンプルが既にインストールされ ている場合は、2.0.2114.0\Samples フォルダにある RemoveSamplesDB.cmd スクリプトを使用して、それらのサンプル を削除してください (詳細については、セクション 2.3 を参照 してください)。 2. Notification Services セットアップを実行します。既にこの セットアップ ファイルをダウンロードした場合は、ファイル名 は MSSQLNS20SP1...exe になっています。 3. [カスタム セットアップ] 画面で、インストールするコンポー ネントを選択します。システムが、上記で一覧したソフトウェア の要件を満たしていることを確認します。システムがコンポー ネントの要件を満たしていない場合は、そのコンポーネントを インストールできません。 利用できないコンポーネントのインストールを希望しない場合は、 訂正手順を実行する必要はありません。 4. データベース コンポーネントをインストールしている場合は、 [データベース コンポーネントのセットアップ] 画面と [SQL Server ログイン情報] 画面で追加情報を入力します。 * SQL Server データベース エンジンの複数のインスタンスをイン ストールしている場合は、[データベース コンポーネントの セットアップ] 画面で 1 つのインスタンスを選択します。 InstallXPs ユーティリティを使って、別のインスタンスに コンポーネントをインストールできます。 * [SQL Server ログイン情報] 画面で、SQL Server へのログ インに使用する認証の種類を選択します。SQL Server 認証を 使用する場合は、ユーザー名とパスワードを入力します。 5. [プログラムをインストールする準備ができました] 画面で、 [インストール] をクリックします。 インストールに関する追加の指示は、「Notification Services Books Online」に記載されています。 ---------------------------------------- 2.3 Notification Services 2.0 SP1 サンプルの実行 ---------------------------------------- セットアップでは、サンプル アプリケーションは、サンプルを含む フォルダ Notification Services Vn.n.n.n\Samples にインストール されます。 サンプルを構成するには、コマンドライン スクリプト SetupSamples.cmd を使用します。次に、コマンドライン スクリプト RunSamples.cmd を使用するか、Visual Studio .NET を使用すること により、それらのサンプルを実行できます。 サンプル アプリケーションの詳細については、SQL Server Notification Services Books Online の「Notification Services のサンプル プログラミング」のページを参照してください。 メモ :Notification Services 2.0 と Notification Services 2.0 SP1 には、同じサンプル アプリケーションが用意されています。 これらのアプリケーションは同じ名前を使用しているので、2.0 と SP1 でサンプルをサイドバイサイドで実行することはできません。 SP1 のサンプルを実行する前に、v2.0.2114.0\Samples フォルダに ある RemoveSamplesDB.cmd スクリプトを実行して、2.0 のサンプル アプリケーションのインスタンスを削除してください。サンプル アプリケーションのインスタンスを削除しておくと、Notification Services 2.0 をアンインストールする際に、サンプル アプリケー ションによってアンインストールが中断されることも防止できます。 -------------------------------------------- 2.4 Notification Services のアンインストール -------------------------------------------- Notification Services をアンインストールする方法。 1. vn.n.n.n\Samples フォルダから RemoveSamplesDB.cmd を実行 して、削除したいバージョンの Notification Services を使用 するすべてのサンプルを削除します。 2. 削除しているバージョンの Notification Services のすべての インスタンスを停止します。インスタンスを停止するには次の コマンドを実行します。 net stop NS$ 3. SQL 認証を使用している場合は、UninstallXPs.cmd を実行して データベース コンポーネントを削除します。アンインストール では、SQL Server のユーザー名とパスワードを問い合わせません。 UninstallXPs スクリプトがこの情報を提供できます。 4. コントロール パネルで [アプリケーションの追加と削除] を クリックします。 5. [Microsoft SQL Server Notification Services] を選択し、 [削除]をクリックします。 6. 画面に表示される指示に従います。 ************************************************************ 3.0 Notification Services 2.0 SP1 へのアプリケーションの アップグレード ************************************************************ 既存の Notification Services アプリケーションを Notification Services 2.0 SP1 へアップグレードするには、それらのアプリ ケーションを実行しているインスタンスをアップグレードする 必要があります。 メモ : 以下の例は、Windows 認証を使用して SQL Server に接続 している場合に、アップグレードを行う方法を示しています。SQL Server 認証を使用して SQL Server に接続している場合は、 -sqlusername および -sqlpassword のパラメータを指定して、 NSControl Disable、NSControl Enable、NSControl Upgrade、 NSControl Register の各コマンドを実行する必要があります。 同じサーバーまたはリモート サーバー上に配置されたデータベース を使用している、1 台のサーバー上で動作している 1 つのインス タンスをアップグレードするには : 1. Notification Services 2.0 SP1 をインストールします。インス タンスと、データベースが異なるサーバー上に存在する場合は、 そのインスタンスを実行する場所にエンジン コンポーネントを インストールし、データベースを実行する場所にデータベース コンポーネントをインストールする必要があります。 複数のデータベースを使用している場合は、InstallXPs コマンド を使用して、各サーバーに必ずデータベース コンポーネントを インストールしてください。 このコマンドの詳細は、「Notification Services Books Online」 の「Installing Database Components on Additional Instances of SQL Server」のトピックに説明があります。 2. アプリケーション データベースとインスタンス データベースを バックアップします。 データベースをバックアップする方法の詳細については、「SQL Server Books Online」を参照してください。 3. インスタンスが動作しているサーバー上で、Version 2.0.2114.0 の NSControl を使用しているインスタンスを登録解除する必要が あります。 a. [スタート] メニューの [プログラム] - [Microsoft SQL Server Notification Services (2.0.2114.0)] をポイントし、 次に [Notification Services コマンド ウィンドウ] を クリックして、コマンド プロンプト ウィンドウを開きます。 b. 該当するインスタンスを無効にします。 例 :nscontrol disable -name StockInstance c. NS$ サービスを停止します。 例 :net stop NS$StockInstance d. そのインスタンスを登録解除します。 例 :nscontrol unregister -name StockInstance e. まだアンインストールしていない場合は、該当するサンプル アプリケーションをアンインストールします。 例 :cd Samples RemoveSamplesDB f. コマンド プロンプト ウィンドウを閉じます。 4. 次に、Notification Services 2.0 SP1 バージョンの NSControl を使用して、インスタンスの登録とアップグレードを行う必要が あります。 a. [スタート] メニューの [プログラム] - [Microsoft SQL Server Notification Services 2.0 SP1] をポイントし、 次に [Notification Services コマンド ウィンドウ] を クリックして、コマンド プロンプト ウィンドウを開きます。 b. 該当するインスタンスを登録します。 例 :nscontrol register -name StockInstance -server MyDBServer -service -serviceusername "MyDomain\MyUserName" -servicepassword "" c. そのインスタンスをアップグレードします。 例 :nscontrol upgrade -name StockInstance -server MyDBServer d. NS$ サービス アカウントに SP1 拡張ストアド プロシージャを実行するためのアクセス権を 与えます。 例 :grantxpexec "MyDomain\MyUserName" e. そのインスタンスを有効にします。 例 :nscontrol enable -name StockInstance f. NS$ サービスを開始します。 例 :net start NS$StockInstance インスタンスをスケールアウトした場合、つまり NS$ サービス、独立したイベント プロバイダ、およびサブスクリプション 管理アプリケーションを複数のサーバー上で実行している場合は、 上記のプロシージャを 1 台のサーバー上で実行する必要があります。 次に、追加の各サーバー上で、このインスタンスの登録解除と再登録 を行う必要があります。 すべてのインスタンスの SP1 へのアップグレードが完了したら、 Notification Services 2.0.2114.0 をアンインストールすることが できます。 一般的な配置の構成に基づく指示については、 http://go.microsoft.com/fwlink/?LinkId=16143 にあるホワイト ペーパー「Upgrading Applications to Notification Services 2.0 SP1」をダウンロードしてください。 ************************************************************ 4.0 製品とドキュメントのメモ ************************************************************ 以下は、Notification Services Books Online ドキュメントの完成 後に生じた問題点です。 ----------------------------------------------- 4.1 トラブルシューティング : SSL Security エラー ----------------------------------------------- インスタンスの作成中または NS$ サービスの実行中 にイベント ログに SSL セキュリティ エラーが記録される場合は、 Notification Services が SQL Server 2000 に接続できない可能性が あります。このエラーは、以下の問題点によって発生する場合があり ます。 * Microsoft Windows 2000 コンピュータに Certificate Server をイ ンストールしていて、証明機関 (CA) 名がコンピュータのホスト名と 同じか、コンピュータのホスト名を使って開始している場合、SQL Server 2000 に接続を試みると失敗することがあります。 この問題を解決するには、SQL Server 2000 の最新の Service Pack を入手してください。詳細については、以下の Web サイトを参照 してください。 http://support.microsoft.com?kbid=302409 * SQL Server を実行している対象サーバーまたは Windows 資格情報を 認証するサーバーとの間に低速ネットワーク接続が存在する場合に、 Notification Services が SQL Server に接続を試みると失敗する ことがあります。SQL Server を実行しているコンピュータに SSL (Secure Sockets Layer) 証明書がインストールされている場合、 およびその SSL 証明書が暗号化を実行する必要条件を満たしている 場合のみ、この問題が発生します。 この問題を解決するには、SQL Server 2000 の最新の Service Pack を入手してください。詳細については、以下の Web サイトを参照 してください。 http://support.microsoft.com?kbid=322144 -------------------------------------------------------- 4.2 NSControl Upgrade の実行前にインスタンスを無効にする -------------------------------------------------------- NSControl Upgrade を実行して Notification Services のインス タンスをStandard Edition から Enterprise Edition にアップ グレードする場合、Standard Edition をアンインストールする前に、 そのインスタンスを無効にします。 Standard Edition から Enterprise Edition へのアップグレードを 実行するには、以下の手順を実行します。 1. NSControl Disable コマンドを使用して、Standard Edition を 使用するすべてのインスタンスを無効にします。 2. Net Stop コマンドを使用して対応する NS$ サービスを停止します。 3. Notification Services Standard Edition をアンインストール します。 4. Notification Services Enterprise Edition をインストールしま す。 5. NSControl Upgrade を使用して、Standard Edition を使っていた 各インスタンスを Enterprise Edition にアップグレードします。 6. NSControl Enable を使用して、アップグレードしたすべての インスタンスを有効にします。 7. Net Start コマンドを使用して対応する NS$ サービスを開始します。 ----------------------------------------------- 4.3 EventCollector.Write メソッドが値を返さない ----------------------------------------------- EventCollector.Write メソッドのトピックでは、このメソッドが 整数値を返すと説明しています。EventCollector.Write は値を返 しません。このメソッドの訂正情報は以下のようになります。 [Visual Basic .NET] Public Function Write(ByVal As Object) [C#] public void Write(object ); [C++] public: void Write(Object* ); [JScript] public function Write( : Object); --------------------------------------------------- 4.4 大きな通知バッチ サイズでは要約配布を使用しない --------------------------------------------------- アプリケーション定義ファイル (ADF) で を True に設定することによって、通知クラスでの要約配布を有効に している場合、 要素を使用して通知バッチ サイズを設定しないでください。 に 大きな値を設定すると、SQL Server の接続数が急激に増加する ことになり、使用可能なメモリをすべて使い果たします。 ------------------------------------------------- 4.5 ドキュメントのイベント ソース名が間違っている ------------------------------------------------- Notification Services イベントは Windows アプリケーション ログに記録されます。Windows イベント ビューアはアプリケーション ログの [ソース] 列にイベントのソースを表示します。すべての Notification Services イベントのソースは NotificationServices です。「Event Logging Overview (イベント ログ記録の概要)」 トピックと「Choosing Monitoring Tools (監視ツールの選択)」 トピックではこのソースを間違って NS$ と記載 しています。 ------------------------------------------------------------ 4.6 トラブルシューティング : Notification Services をインス トールしないでセットアップが完了する ------------------------------------------------------------ セットアップを実行するときに、[InstallShield ウィザードを完了 しました] 画面がすぐに表示され、以下のテキストを表示するときは、 セットアップを実行するために使用しているアカウントが必要な権限 を持っていない場合があります。 ウィザードは、Microsoft SQL Server Notification Services の インストールを完了する前に中断されました。システムの状態は変 更されていません。改めてインストールする場合は、再度セットアッ プを実行してください。 まず、セットアップの実行に使用しているアカウントがローカル Administrator 特権を持っていることを確認します。アカウントが ローカル Administrator 特権を持っている場合でも、コンピュータに 以下の 2 つの条件が存在すると、依然として問題が発生する可能性が あります。 * レジストリ エントリ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole にキー値 "DefaultAccessPermission" が存在する。 * コンポーネント サービスに割り当てられている既定のアクセス 許可がセットアップの実行に使用するアカウントを含んでいない。 注 : 既定では、レジストリ値 DefaultAccessPermission は HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole には存在 しません。この値は他のアプリケーションによって作成されるか、 コンポーネント サービス ツールを使用して COM の既定のアクセス 許可にグループまたはユーザーを追加するときに作成されます。 セットアップの実行に使用するアカウントをコンポーネント サービ スに追加する方法。 1. [スタート] メニューから [ファイル名を指定して実行] をク リックします。 2. [名前] ボックスに、「Dcomcnfg.exe」と入力し、[OK] をクリ ックします。 3. お使いのオペレーティング システムの手順を使用して [既定の COM セキュリティ] タブを表示します。 * Windows 2000 オペレーティング システムを実行している 場合は、[既定のセキュリティ] タブをクリックします。 * Windows XP オペレーティング システムを実行している場合は、 以下の手順を実行します。 a. [コンポーネント サービス]、[コンピュータ]、 [マイ コンピュータ] の順に選択します。 b. [マイ コンピュータ] を右クリックし、[プロパティ] を 選択します。 c. [既定の COM セキュリティ] タブをクリックします。 4. [既定値の編集] をクリックします。 5. [追加] をクリックし、セットアップの実行に使用するアカウント を追加します。 ------------------------------------------------------------ 4.7 イベント メッセージ DLL が見つからないことを示すイベント メッセージ ------------------------------------------------------------ コンピュータに複数のバージョンの Notification Services を インストールしていて、あるバージョンをアンインストールする ときに、イベント ログの Notification Services メッセージに 以下のテキストが含まれていることがあります。 このメッセージは、インスタンスがイベント メッセージ DLL を 見つけられないことを示しています。 イベント ID (####) (ソース NotificationServices 内) に関する 説明が見つかりませんでした。リモート コンピュータからメッ セージを表示するために必要なレジストリ情報またはメッセージ DLL ファイルがローカルコンピュータにない可能性があります... イベント メッセージ全体のテキストはこの後にもテキストが存在 します。 ただし、イベント メッセージの Web コンテンツへのリンクは メッセージに含まれません。 この問題を解決するには、NSControl Register を使用して、インス トール済みのバージョンを使用する Notification Services のイン スタンスをすべて再登録します。 この結果、イベント メッセージ DLL へのポインタが修復されます。 詳細については、Notification Services Books Online の 「Re-Registering an Instance (インスタンスの再登録)」を参照 してください。 ---------------------------------- 4.8 暗号引数のキー値は文字列にする ---------------------------------- NSControl Create コマンド、NSControl Update コマンド、および NSControl Register コマンドは、配布チャネル引数とイベント プロバイダ引数を暗号化するために使用するキー値を指定する省略 可能な "argumentkey" 引数を持っています。このキー値は文字列に する必要があります。文字列にスペースを含める場合は、文字列を 引用符で囲みます。詳細については、Notification Services Books Online の「Configuring Argument Encryption (引数暗号化の設定)」 を参照してください。 -------------------------------------------------------- 4.9 サブスクライバを無効にするとインスタンスが無効になる -------------------------------------------------------- NSControl Disable を使用して、あるインスタンスのサブスクライバ だけを無効にしようとすると、NSControl はインスタンス全体および そのインスタンスがホストするすべてのアプリケーションを無効にし ます。 この問題を解決するには、以下の 2 つの手法のいずれかを使用します。 * サブスクライバ コンポーネントを無効にした後に、次に示す NSControl Enable を使って、インスタンスのその他のコンポー ネントをすべて再度有効にします。 nscontrol enable -n -distributor -events -generator -subscriptions * サブスクライバを無効にするときに、次のように無効にするコン ポーネントに他のコンポーネントを含め、その後そのコンポーネント を再度有効にします。 nscontrol disable -n -generator -subscribers nscontrol enable -n -generator 次の NSControl Status コマンドを使って、インスタンスの状態を 確認できます。 nscontrol status -n --------------------------------------------------------- 4.10 コンテンツ フォーマット エラーがログの中に記録されない ことに起因する通知配信の失敗 --------------------------------------------------------- XSLT ファイルが有効ではないなど、コンテンツ フォーマット エラーが原因で通知の配信が失敗した場合に、その通知が「配信に 失敗した通知」としてログの中に記録されることはありません。 これにより、次のような誤った結果をもたらします。 - NSNotificationDistribution ビューから 表示できる配布ログの中には、コンテンツ フォーマット エラー が原因で失敗した通知が記録されません。 - ストアド プロシージャ NSDiagnosticNotificationClass は、 失敗した同じ通知を (NotificationsNotYetDelivered 列で) "not yet delivered" と表示します。この通知は、配布ログの中で 「配信に失敗した通知」として明示されていないからです。 --------------------------------------------------------- 4.11 クラスタ上で Notification Services を実行する場合は、 の値をクラスタ名にする必要がある --------------------------------------------------------- Notification Services アプリケーションを作成する場合は、ディス トリビュータ、ジェネレータ、およびホストされているイベント プロバイダという各コンポーネントをどこで実行するのか指定する 必要があります。この指定を行うには、ADF の中にある の各ノードの中で、 要素に対して値を指定する必要があります。NSControl は、この データをアプリケーション データベース内に読み込みます。 NS$ サービスが開始される際に、このサービスは 自らがどこで動作しているのか (そのホスト名) を決定し、次に その値を、ディストリビュータ、ホストされているイベント プロ バイダ、およびジェネレータそれぞれの の値と比較 します。そのホスト名が の値と一致する場合は、 このサービスはそのコンポーネントを開始します。一致しないコン ポーネントは、"保留の有効" 状態になります。 このサービスは、そのホストを次のように決定します。 * クラスタ化されていないサーバーに関しては、ホスト名は単純に コンピュータ名と同じものです。 * クラスタ化されたサーバーに関しては、ホスト名はクラスタ名と 同じものです (ノード名や仮想サーバー名ではありません)。 したがって、クラスタ上で Notification Services を実行する場合は、 の値をクラスタ名と同じ値にする必要があります。 ---------------------------------------------------------- 4.12 SP1: NSControl Create はデータベース間所有権の継承を有効 にするので、Sysadmin の特権が必要になる ---------------------------------------------------------- SQL Server 2000 SP3 は、データベース間所有権の継承を構成する ためのオプションを採用しました。SP3 をインストールする場合は、 すべてのユーザー データベースに対して、データベース間所有権の 継承は既定で無効になっています。SP3 をインストールした後で、 システム ストアド プロシージャ sp_dboption を使用して、個別の ユーザー データベースに対して、データベース間所有権の継承を 有効にすることができます。 Notification Services の 1 つのインスタンスは、2 つまたはそれ 以上のデータベースを使用します。1 つはインスタンス データベース、 それ以外はアプリケーション データベースです。 Notification Services のストアド プロシージャがインスタンス データベースとアプリケーション データベース内にある オブジェクトにアクセスできるように、これらのデータベースは データベース間所有権の継承を必要とします。 NSControl Create を実行すると、NSControl はインスタンス データ ベースとアプリケーション データベースに対して、データベース間 所有権の継承を有効にすることを試みます。SQL Server 2000 のデータ ベースが SP3 以前のものである場合は、データベース間所有権の継承 に関するコマンドは無視されます。 固定サーバー ロールである sysadmin のメンバだけが、データ ベース間所有権の継承を構成できます。その結果、サーバー ロール sysadmin のメンバの下で NSControl を実行した場合のみ、NSControl はデータベース間所有権の継承を有効にします。固定サーバー ロール dbcreator のメンバであるユーザーも NSControl Create を実行でき ますが、その場合は、インスタンス データベースとアプリケーション データベースに対してデータベース間所有権の継承が有効になることは ありません。 したがって、サーバー ロール sysadmin のメンバではないユーザー が NSControl Create を実行する場合は、そのユーザーが Notification Services のインスタンスを実行する前に、サーバー ロール sysadmin のメンバがインスタンス データベースと 各アプリケーション データベースに対して、データベース間 所有権の継承を有効にする必要があります。 データベース間所有権の継承の詳細は、「SQL Server 2000 Books Online (アップデート - SP3」に記載されています。次の各トピック は、データベース間所有権の継承に関する課題を解決するのに役立ち ます。 - 複数データベースの組み合わせ所有権に関する旧バージョンとの互 換性 - 所有権の継承の使用 - sp_dboption - 環境設定オプションの設定 「SQL Server 2000 Books Online (アップデート - SP3」は、 http://www.microsoft.com/japan/sql/techinfo/productdoc/2000/books.asp で入手できます。 ------------------------------------------------------------ 4.13 SP1: XSLT コンテンツ フォーマッタを使用したプレーン テキストの記述 ------------------------------------------------------------ Notification Services 2.0 では、XSLT コンテンツ フォーマッタは、 常に有効な XML を記述します。その結果、次の各文字をそれぞれの エンティティ参照という形で記述します。 > (>)、< (<)、' (')、" (")、および & (&)。 SP1 では、XSLT コンテンツ フォーマッタは、プレーン テキストを 記述できます。プレーン テキストは、これらのエンティティ参照を 等価の文字列に変換します。xsl:output 要素の中で、テキスト出力 を構成することができます。 次の例は、output method (出力方法) を text に設定した、 "NoOp.xslt" ファイルを示しています。この例では、変換されたエン ティティ参照を示すテキストが一部追加されています。 Today's Notifications: SP1 での変更により、XML 出力のフォーマットが変更されました。 既定では、XSLT コンテンツ フォーマッタは、XML を記述する際に キャリッジ リターンもインデントも使用しません。XML を自動的 にインデント設定するには、"xsl:output" 要素の "indent" 属性 を使用します。 イベント データに予約文字またはエンティティ参照が含まれる場合、 次のことに注意してください。 * イベント データにエンティティ参照または XML フラグメントが 含まれている場合は、コンテンツ フォーマットの DisableEscaping 属性を true に設定します。このように設定すると、コンテンツ フォーマッタがデータを不必要に変換する (例 : & を &amp; に変換するなど) ことを防ぐことができます。 * イベント データに予約文字 (& など) が含まれている場合は、 コンテンツ フォーマットの DisableEscaping 属性を false に 設定します。このように設定すると、最終的な変換を行う前に、 コンテンツ フォーマッタで予約文字を有効な XML に変換する ことができます。 xsl:output 要素の詳細については、MSDN Online の次のページを 参照してください。 http://go.microsoft.com/fwlink/?LinkId=16145 --------------------------------------------------------- 4.14 SP1: ストアド プロシージャ NSDiagnosticFailedNotifications に対して加えられた変更 --------------------------------------------------------- Notification Services 2.0 では、ストアド プロシージャ NSDiagnosticFailedNotifications は、失敗した通知を返しません でした。Notification Services 2.0 SP1 では、この点は解決され ました。 NSDiagnosticFailedNotifications は、失敗した配信の試みそれぞれ に対して 1 つの行を返します。1 つの通知が複数回失敗した場合は、 結果セットで、その通知に対応する複数の行が示されます。 結果セットに示される列が、変更されたことに注意してください。 次のような 2 つの列が追加されました。 - DeliveryRequestTime - SentTime DeliveryRequestTime は、ディストリビュータがその通知を、配信 するために配信プロトコルに渡した時刻です。ADF の中で、 ディストリビュータのログ オプションである が "true" に設定 されている場合にのみ、1 つの値が示されます。 SentTime は、配信プロトコルがその通知に関する配信ステータスを 報告した時刻です。 管理者が NSDiagnosticFailedNotifications を実行している場合は、 このレポートで、失敗したすべての通知に関して、StartDateTime と EndDateTime の間にある SentTime の値を表示することに注意 してください。 次のような 2 つの列が削除されました。 - NumberOfDeliveryAttempts - LastFailureTime 更新されたストアド プロシージャに関するドキュメントは、 http://support.microsoft.com?kbid=818352 にある Microsoft Product Support Services の Web サイトから入手できます。 ----------------------------------------------------------- 4.15 .NET Framework Version 1.1.4322 でビルドされたカスタム コンポーネントの使用 ----------------------------------------------------------- Notification Services 2.0 SP1 は .NET Framework Version 1.0.3705 でビルドされています。既定では、Notification Services はこの バージョンの読み込みと使用を試みます。使用するカスタム コン ポーネントが .NET Framework Version 1.1.4322 でビルドされて いる場合は、このバージョンも読み込まれます。 Notification Services およびカスタム コンポーネントが上記以外の バージョンの .NET Framework を使用してビルドされている場合は、 クラス ライブラリの相違が原因となって、次のようなアプリケーション エラーが発生することがあります。 * 2009: Notification Services は、イベント プロバイダの インスタンスを作成できませんでした。 * 6005: アセンブリは、必要なコンテンツ フォーマッタ クラスを 含んでいません。 これらのエラーを解決するには、.NET Framework Version 1.0.3705 を使用してカスタム コンポーネントをビルドします。これを実行 するには、Version 1.0.3705 のアセンブリが格納されている ディレクトリをカスタム コンポーネント プロジェクトの参照パスに 追加します。 カスタム コンポーネントを .NET Framework Version 1.1.4322 で ビルドする必要がある場合は、Notification Service でこのバージョン を使用するように設定することもできます。この設定を行うには、 ノードを NSService.exe.config ファイルに追加します。 このファイルは、Notification Services の vN.N.N.N\Bin フォルダ に格納されています。このファイルに ノードを追加した 例は、次のとおりです。 要素の値には、Notification Services で使用 できる.NET Framework のバージョンを指定します。このバージョンの 指定順によって、Notification Services に読み込まれる .NET Framework バージョンの順序が決まります。上の例では、 最初に .NET Framework Version 1.1.4322 の読み込みが実行されます。 このバージョンを読み込めなかった場合、.NET Framework Version 1.0.3705 の読み込みが実行されます。 NSService.exe.config ファイルに加えた変更を反映するには、 NS$ サービスを再起動する必要があります。