本文へジャンプ

ソフトウェア > Lotus > Lotus Developer Domain > 

Iris Today Archives

データベース購読


Lotus Software
by Cara Haagenson
レベル:ビギナー
対象:Notes 5.0
原文の掲載:1999年12月1日

Iris Today Archivesの原文(US)

インデックス
データベースに対して購読を設定する
どのようにしてデータベースから購読更新情報を取り出しているか?
購読機能の使用とパフォーマンスについて
購読フォームのカスタマイズについて
購読結果ビューのカスタマイズについて
まとめ

自分の関心のある内容についての情報が登録された場合に、自動的に、そして即時に通知される仕組みがあれば大変便利だと思いませんか?これまでは自ら定期的にデータベースを開いて、未読文書を開きながら多くの無関係な文書の中から探し出していたのでは手間も時間もかかる上に、その情報が作成されてから時間が経過してることもありえます。これらの状況から脱するために、ノーツ R5には「データベース購読」と呼ばれる機能が追加されており、指定したデータベースから更新情報を受けとる「購読」の仕組みが備わっています。

エンド・ユーザーの方だけでなく、システム管理者やアプリケーション開発者の方々にも役に立つ情報を含めて、「データベース購読」の機能について解説していきます。具体的な内容は以下の通りです。
  • クライアントにおけるデータベース購読のセットアップと使用方法
  • ドミノ サーバーと組み合わせてノーツ・クライアントを使用し、データベース購読結果を受けとる方法
  • データベース購読を使用した場合の、ノーツ・クライアントとドミノ サーバーへのパフォーマンス・インパクト
  • エンド・ユーザーがモニターできる項目を、データベース設計者が、どのようにカスタマイズすればよいのか

データベースに対して購読を設定する
ノーツ・クライアントを起動すると、まず最初に起動されるのが Welcome ページです。この画面では、様々な重要情報を一つの画面にまとめて表示できるようになっています。デフォルトの設定では、Welcome ページには「ベーシック」と呼ばれるスタイルが設定されています。これをカスタマイズして自分のメール・ボックスやカレンダーや好みのWeb ページを表示できます。表示内容をカスタマイズする際に、選択可能な項目として「データベース購読」があります。このデータベースの購読機能は、指定したドミノのデータベースをモニターして自分が設定した条件に合致する文書が新規に作成されたり、更新された文書を表示させるものです。この際、データベースには適切なアクセス権限を持っていることと、そのデータベースが置かれているドミノ サーバーに対して、適切なアクセス権限を持っている必要があります。 ノーツをインストールするとデフォルトで、自分のメール・ボックスに対して購読の設定がされ、新規メールが到着した場合には、自動的に通知が行われます。

購読結果を Welcome ページに表示させる方法は以下の通りです。
  1. Welcome ページの画面右上にあるドロップダウン・リストから、「新規ページ・スタイルの作成」を選択します。すでに、個人のページを作成、使用している場合にはドロップダウン・リストの右横にある「オプション」ボタンを押します。
  2. ダイアログ・ボックスが表示されますので、「ページ名」に名前を入れます。そして、ページのレイアウトを選択します。
  3. 「内容」のタブの画面に切り替えて、「フレームの選択」のセクションのところで、フレームを選択します。
  4. 「フレーム内容」のセクションで、「データベース購読」を選択し、OK ボタンを押します。
これで、Welcome ページでデータベース購読の結果を表示できるようになりました。

下の画面は、メール・データベースに購読機能を設定して、新規メールを Welcome 画面に表示させたところです。ここではデータベース購読のフレーム・セット内に送信者名と題名が表示されるように設計されています。

Welcome Page

次に、データベース購読の設定方法について説明していきます。まず最初にドミノのデータベースや組織内のサーバーで購読機能の動作に対しての制限範囲を知っておく必要があります。購読の動作に制限ができるのは、ドミノの管理者とデータベース設計者です。ドミノの管理者は、どのサーバーやデータベースでデータベース購読を使用できるかを選択できます。正確に言うと、「モニター機能」を動作させるかどうかを設定できます。例えば、パフォーマンスの低下を避けるために、多くのユーザーが頻繁にアクセスするデータベースについては購読をさせたくない場合には、モニター機能を動作させないということがあります。また、データベース設計者が、データベースの中の何をモニターさせるかを決めておくことも可能です。例えば、設計者が個人ビューに保存されたもの以外は全て文書についてモニターできるように設定できます。逆に、データベース全体についてモニターさせないようにすることも可能です。このように購読が制限されたデータベースに対して購読を設定した場合には、購読できない旨を示すエラー・メッセージが表示されます。

購読の制限については、データベースのプロパティーで設定します。詳細については、R5 システム管理 ヘルプの「データベースのパフォーマンスを最適化するデータベース・プロパティーを設定する」、R5 デザイナー・ヘルプの"[購読] を有効にする"を参照してください。

購読の設定は、以下の手順で設定します。
  1. 購読を設定したいデータベースを開き、メニューから、[作成] - [購読] を選択します。
  2. 購読のフォームが表示されますので、オプションを適宜設定してそのデータベースで通知を受けたい内容を設定します。
  3. OK ボタンを押します。

複数のデータベースに対して購読の設定を行うと、各データベースで購読フォームがそれぞれ異なることに気がつくかと思います。例えば、色が違ったり、モニターできる項目が異なったり、フォントやヘッダー部分が異なることがあります。このように、データベースの設計者は、フォームについても変更を加えることができます。設計者が購読のフォームをカスタマイズしていない場合には、エンド・ユーザーが [作成] - [購読] を選択した際に、headline.nsf にあるデフォルトのフォームが自動的に開かれるようになっています。

次に、ノーツ・クライアントが新規の購読結果をチェックできるようになっていることを以下の手順で確認します。
  1. メニューから、[ファイル] - [プリファレンス] - [ユーザー] を選択します。
  2. 「基本」を選択して、「起動時のオプション」の「購読の確認」にチェックが入っていることを確認します。
  3. OK ボタンを押します。

複数のデータベースの購読を設定したあとで、自分が設定したデータベース購読フォームを headline.nsf (データベース名は "Headlines") で見ることができます。画面左側にある「お気に入りブックマーク」のフォルダーから「データベース購読」をクリックして開きます。この Headline.nsf は data ディレクトリーにある headline.nsf から自動的に作成されるデータベースです。もし、headline.nsf ("Heaadlines") が「お気に入りブックマーク」のフォルダーに見つからない場合は、メニューから [ファイル] - [データベース] -[開く] を選択して headline.nsf ("Heaadlines") を開いてみてください。

Database Subscriptions

headline.nsf には購読の設定文書と共にデフォルトの購読フォームが保存されています。これは購読の設定を行う際に必ず必要となるものです。また、モニターする各イベントに対して取得された購読結果や、それらを表示するフレーム・セットも格納されています。購読結果にはタイトルの情報が含まれており、それが購読のフレーム・セットの中に表示されます。このタイトルはデータベースの設計者によって設定されているものです。こうして表示された購読結果をクリックするとその文書が開く仕組みになっています。そのデータベースを探して開く手間が省けますので非常に便利です。

購読機能にはオプション設定が用意されており、これを使って管理できます。このオプションにアクセスするには、Welcome ページの 購読フレームにある「カスタマイズ」をクリックするか、headline.nsf を開き「購読のオプション」をクリックします。

Subscription Options

「購読のオプション」のビューから、それぞれの購読設定について購読を有効にするか無効にするかを設定できます。また、headline.nsf から購読結果の内容をいつ消去するかの設定も行えます。この機能を使って、1週間だけすべてのデータベース購読を無効にして、翌週にはまた有効に戻すという使い方もできます。このように、データベース購読の設定をしたことと、その設定に基づきモニターを有効にしたこととはイコールではありません。購読を無効に設定しても、購読の設定文書自体は残り、明示的に削除するまで headline.nsf に残ったままとなります。データベース購読の管理方法の詳細については、ノーツ R5 ヘルプの"データベース購読"の項目をご覧ください。
 
上に戻る
 
どのようにしてデータベースから購読更新情報を取り出しているか?
すでに、起動画面の Welcome ページで購読の結果を表示するように設定し、そしていくつかのデータベースに購読をセットしていますので、しばらく待っているとノーツ・クライアントが購読結果を表示し始めます。ところで、どの情報をサーバーから引き出すのかについて、ノーツ・クライアントはどのようにして分かるのでしょうか?ここでは、パワー・ユーザーやアプリケーション開発者、システム管理者向けに、クライアントが購読結果を表示する裏側でどのようなメカニズムで動いているのかについて解説します。

以下に示した図では、ノーツ・クライアントとドミノ サーバーがどのよう連携してデータベースの購読情報を送り出したり、引き出したりしているかについて示しています。以下、順を追ってその流れを説明します。

Subscription diagram
  1. 購読のフォームに記入すると、$HLFormula と呼ばれるドミノの計算フィールドで計算式が生成されます。この計算式では、データベース内でどのような条件で文書がモニターされるかを決定します。そして、その文書が格納されるとその計算式がイベント定義として保存され、サーバーに送信されます。この計算式については、購読フォームの Advanced Tab をクリックすると見ることができます。
  2. こうして作成された、イベント定義はネットワークを介してクライアントによりサーバーに登録されます。これは、クライアントのバックグラウンド・タスクで処理され、サーバーのモニター・リストに格納されます。この処理がなされる過程で、各イベント毎に、クライアントとイベントに対してユニーク ID が割り当てられます。こうして登録されたイベント定義は基本的に削除されず登録された状態になります。但し、イベント定義が登録されてから 21 日間のあいだクライアントからのアクセスがなかった場合、あるいは設定を消去した場合やクライアントの購読機能を無効にした場合にはこの登録されたイベントは消去されます。
  3. サーバー側にはモニター・リストに登録されたイベント定義が保持されており、サーバー上のデータベース内の文書に変更 (作成を含む) が発生すると、イベント定義と照らし合わせ合致するものがないかを確認します。合致するものがあった場合には、記録が必要と判断して、NSFNoteUpdate を実行します。これはメモリー上の文書をサーバーに書き込み、文書のサマリー情報を記録する API ファンクションです。このサマリー情報が購読の結果として購読イベント・リストに保存されます。
  4. クライアントは新規メールの通知間隔の倍の頻度で、サーバーにアクセスして購読結果を確認します。これは、例えばプリファレンスの設定で「新規メールの通知」の間隔を 4 分に設定している場合には、2 分間隔で購読結果をチェックすることになります。この時、前回チェックした時から何らかの更新が発生している場合は、サーバーはクライアントに対してバックグラウンド・タスクで更新情報を送信し、その内容は headline.nsf に文書として保存されます。格納された文書は、各購読設定文書に対応した非表示ビューに表示され、最終的にその内容が Welcome ページに表示されます。また、headline.nsf を開いて直接見ることもできます。
ノーツ・クライアントが購読のイベント定義をネットワークを介して登録を行い、初回の購読を行う際に、そのデータベースがあるサーバーを使用します。何らかの理由でそのサーバーから応答がない場合、他のレプリカがあるサーバーに対して接続を試み、成功するまでドメイン・カタログに登録されたサーバー全てについて接続を試みます。ドメイン・カタログに載っているサーバーのいずれからも反応がない場合、あるいはデータベース購読を許可していない場合、あるいはサーバーへのアクセス権限がない場合にはローカル・レプリカにアクセスします。どのサーバーへアクセスしたのか、また最終アクセスの日時の履歴が、headline.nsf に格納された各購読文書に記録される仕組みになっています。
 
上に戻る
 
購読機能の使用とパフォーマンスについて
R5 で導入された購読機能を使用するにあたって、パフォーマンスとのかね合いで注意すべき点がいくつかあります。 クライアント側に関しては、購読機能を使用すると、更新情報を参照するためにパフォーマンスが低下します。購読するデータベース数ではなく、クライアントが定期的にサーバーをポーリングする場合は、パフォーマンスが低下します。パフォーマンスが気になる場合には、ユーザー・プリファレンスの、「基本」 - 「起動時オプション」 - 「購読の確認」のチェックを必要に応じて外しておくことをお薦めします。このチェックを外しておくと、メモリーの消費量が 4 MB 程度減ります。前述の通り、新規メールの購読設定文書は、あらかじめセットされ、デフォルトで動作するようになっています。この購読が必要ない場合には、「購読の確認」のチェックを外してクライアントを身軽にしておきます。

サーバー側に関しては、サーバーは各クライアントから送られてくる計算式やイベント定義について、同じ内容のものがないか識別する機能を持っています。この機能により。同じ計算式が送られてきた場合には、メモリー上に複数の同じ内容を展開するのではなく、ひとつしか置かないようにし、クライアント ID のリストと共に格納するようになっています。これにより、同じ計算式でサーバーが何度もチェックをかけないようになり、さほどパフォーマンスへ影響しないようになっています。また、クライアント上でイベント定義を保持しておく仕組みにより、サーバーは適宜イベント定義を破棄できるように設計されています。実際には、メモリー上で保持しているイベントが多くなってきた場合や登録されて 21 日以上クライアントからチェックされていないイベント定義については自動的に破棄されます。
 
上に戻る
 
購読フォームのカスタマイズについて
データベースの設計者が購読フォームをカスタマイズする場合には、$Subscription のフォームを使用します。購読フォームをカスタマイズするメリットは、データベース内の何をモニターするのかを事細かに設定できる事にあります。カスタマイズされた購読フォームがない場合には、headline.nsf の購読フォームがデフォルトとして自動的に使われる仕組みになっています。

デフォルトの購読フォーム
Default subscription form

購読フォームをカスタマイズする最も簡単な方法は、headline.nsf にあるデフォルトの購読フォームをコピーして、設計しているデータベースにコピーするやりかたです。手順は以下の通りです。
  1. ドミノ・デザイナーで、メニューから [ファイル] - [データベース] - [開く] を選択します。
  2. Headlines を選択して開きます。
  3. 左側のペインから、「フォーム」を選択します。
  4. 右側に一覧表示されるものの中から、$Subscription を選択して、コピーします。
  5. 続いて、自分が設計しているデータベースを開きます。
  6. フォームの一覧を表示させ、右側に一覧にフォーカスをあてます。
  7. ペーストします。
コピーされたフォームには、購読に必要なフイールドがすべて揃っていますので、ここからカスタマイズを行うことができます。

メモ:購読のフォームのカスタマイズについての詳細は、「R5 デザイナー・ヘルプ」の「式フイールド」をご覧ください。

では、ここで異なる購読フォームの例をいくつかご紹介しましょう。下に示したのは、ノーツ・メール R5 の購読フォームです。メールに関連するオプションが用意されています。

メールの購読フォーム
Mail subscription form

下に示したものは、R5 のディスカッション・データベースの購読フォームです。表示されている画像やフイールドが異なったものとなっています。

ディスカッションの購読フォーム
Discussion subscription form
 
上に戻る
 
購読結果ビューのカスタマイズについて
その他にカスタマイズできる内容として、購読結果として、どのビューを利用してフレーム・セットに表示するかを設定できます。これは、$HeadlinesView というビューをデータベース内に作成するか、あるいは $HLHeadlineView というテキスト・フイールドを購読フォーム上に作成して、その中に購読結果を表示するビューの名前を記述するようにします。ビューを指定しない場合や購読フォームの中にビューの名前を加えていない場合には、データベースのデフォルトのビューが使われます。

例えば、メール・データベースのデフォルトのビューは「受信ボックス」で送信者名と日付、受信日、メッセージ・サイズ、件名が表示されますが、新規メールの購読で表示されるものは、送信者の名前と件名だけです。これは、メール・データベース内にある非表示の $HeadlinesView を使って Welcome ページに表示しているためです。
 
上に戻る
 
まとめ
この購読の機能は、新規にデータが作成されそれを即時に知ることが重要である場合には、エンド・ユーザーが自らデータベースを探して情報収集する手間、時間をかける必要がないため、とても役立つ機能です。今後のリリースで、フェイル・オーバーの機能を拡張するなどクライアント側のパフォーマンスを向上させる予定ですのでご期待ください。また、購読の設定および結果表示関連のユーザー・インターフェースについても使い易く改善する予定です。さらに管理者が設定した購読設定をエンド・ユーザーが選択して使用できるようにすることも考えています。

IBMはIBM Corporationの商標。
Lotus、Lotus Domino、Lotus NotesはIBMの商標。
その他、記載された社名および製品名は、それぞれ各社の商標または登録商標です。

 
上に戻る