前へ     目次     索引     DocHome     次へ     
iPlanet Calendar Server 5.1 イベント通知サービスマニュアル



第 1 章   イベント通知サービスの概要


この章では、iPlanet イベント通知サービス (ENS) のコンポーネント、アーキテクチャ、およびアプリケーションプログラミングインタフェース (API) の概要について説明します。

この章は、次の節で構成されています。



イベント通知サービスの概要

イベント通知サービス (ENS) は、iPlanet 基礎を成す公開購読サービスで、次の iPlanet 製品で利用できます。

  • iPlanet Calendar Server 5.0 以降

  • iPlanet Messaging Server 5.1 以降 (統合されていますが、有効にはなっていません)



    iPlanet Messaging Server で ENS を使用可能にする手順や管理する手順については、『iPlanet Messaging Server 5.2 管理者ガイド』の付録 C を参照してください。



ENS は、関係する特定の種類のイベントを収集する中心点として、iPlanet アプリケーションが使用するディスパッチャの役割を果たします。 イベントとは、リソースの 1 つ、または複数のプロパティの値に対する変更です。 この構成では、URI (Uniform Resource Identifier) はイベントを表しています。 この種のイベントがいつ発生するかを知りたいアプリケーションはすべて ENS に登録します。ENS では、イベントを順番に識別し、通知と購読を照合します。 イベントの例は次のとおりです。

  • ユーザの受信箱への新規メールの着信

  • ユーザのメールボックスが割り当てを超過している

  • カレンダーの通知

特に、ENS は分類できるイベントのレポートを受け付け、イベントの特定のカテゴリに関係すると登録のある他のアプリケーションに通知します。

イベント通知サービス は、パブリッシャおよびサブスクライバにサーバと API を提供します。 パブリッシャは、通知サービスがイベントを有効にします。サブスクライバは、通知サービスに対して特定のイベントの通知を受信したいと知らせます。 ENS API の詳細については、イベント通知サービス API の概要を参照してください。


iPlanet Calendar Server におけるENS

iPlanet Calendar Server では、デフォルトで ENS が使用できます。 iPlanet Calendar Server で ENS を使用するための設定は特に必要ありません。

iPlanet Calendar Server が生成する、アラーム以外の通知を購読するユーザは、サブスクライバを作成する必要があります。

iPlanet Calendar Server には、ENS C パブリッシャとサブスクライバのコードサンプルが付属しています。 そのコードについては、「iPlanet Calendar Server サンプルコード」 を参照してください。

iPlanet Calendar Server のコーディング例は、製品の次のディレクトリにあります。

/opt/SUNWics5/cal/csapi/samples/ens


iPlanet Messaging ServerにおけるENS

ENS および iBiff (iPlanet Messaging Server の ENS パブリッシャ、また、iPlanet Messaging Server の通知プラグインとも呼ばれています) は、iPlanet Messaging Server に付属しています。 ただし、デフォルトでは、有効になっていません。

iPlanet Messaging Server で通知を購読するには、最初に iPlanet Messaging Server ホスト上で次の 2 つの項目を実行します。

  • iBiff 通知プラグインを読み込みます。

  • メッセージングサーバを停止してから、再起動します。

iPlanet Messaging Server で、ENS を使用可能にする手順については、『iPlanet Messaging Server 5.2 管理者ガイド』の付録 C を参照してください。

iPlanet Messaging Server 通知を購読したいユーザは、ENS API に対するサブスクライバを作成する必要があります。 そのために、サブスクライバはさまざまな iPlanet Messaging Server 通知を理解する必要があります。 詳細については、第 5 章「iPlanet Messaging Server 固有の情報」を参照してください。

iPlanet Messaging Server には、ENS C パブリッシャとサブスクライバのコーディング例が付属しています。 詳細については、「iPlanet Messaging Server のコーディング例」を参照してください。

iPlanet Messaging Server のコーディング例は、製品の次のディレクトリにあります。

server-root/bin/msg/enssdk/examples


イベント参照

イベント参照は、ENS が処理するイベントを識別します。 イベント参照は、次の URI 構文 (RFC 2396 で指定) を使用します。

scheme://authority
resource
/[?param1=value1&param2=value2&param3=value3]

この構文の変数は次のとおりです。

  • scheme は、httpimapftpwcap などのアクセス方式です。

    iPlanet Calendar Server および iPlanet Messaging Server では、ENS スキーマは、enp です。

  • authority は、リソースへのアクセスを制御する DNS ドメインまたはホスト名です。

  • resource は、authority コンテキスト内のリソースへのパスです。 複数のパスコンポーネントで構成するには、スラッシュ (メ/モ) で区切ります。

  • param は、リソースの状態を表すパラメータの名前です。

  • value は、パラメータの値です。 パラメータとその値の組み合わせは複数個指定できます。指定しなくてもかまいません。

通常、すべての iPlanet Calendar Server イベントは次のように始まります。

enp:///ics

デフォルトでは、iPlanet Messaging Server 通知プラグイン iBiff は、次のスキーマとリソースを使用します。

enp://127.0.0.1/store



イベント参照には URI 構文がありますが、スキーマ、権限、およびリソースには特別な意味はありません。 ENS では、単なる文字列として使用され、それ以上には解釈されません。




iPlanet Calendar Server イベント参照の例

次に示すのは、jac というカレンダー ID で、すべてのイベントアラームを購読する、イベント参照 URI の例です。

enp:///ics/alarm?calid=jac



エンドユーザが使用するためのものではありません。




iPlanet Messaging Server イベント参照の例

次に示すのは、ユーザ ID が blim というユーザのために、すべての NewMsg イベントの購読を要求するイベント参照の例です。

enp://127.0.0.1/store?evtType=NewMsg&mailboxName=blim

ENS を iPlanet Messaging Server とともに使用する場合は、指定するユーザ ID は大文字小文字が区別されます。



エンドユーザが使用するためのものではありません。




ENS 接続プール

ENS の接続プール機能を使用すると、サブスクライバのプールは単一のイベント参照から通知を受信できます。 各イベントについて、ENS はプールからサブスクライバを 1 つ選択して、通知を送信します。つまり、プール内の 1 つのサブスクライバだけが通知を受け取ります。 ENS サーバは、複数のサブスクライバ間で通知の送信を均衡させます。 この機能によって、複数のサブスクライバがまとまって単一のイベント参照からの通知をすべて受信するような、サブスクライバのプールをクライアントに持たせることができます。

たとえば、イベント参照 enp://127.0.0.1/store に対して通知が公開されているとすると、サブスクライバは通常、このイベント参照を購読して通知を受け取ります。 このイベント参照へのすべての通知をサブスクライバのプールで受け取るには、プール内の各サブスクライバはこのイベント参照ではなく、イベント参照 enp+pool://127.0.0.1/store を購読するだけで十分です。 ENS サーバは、プールからサブスクライバを 1 つ選択して、通知を送信します。



パブリッシャは、依然として単純なイベント参照 (この例では enp://127.0.0.1/store) に通知を送信します。つまり、パブリッシャはサブスクライバプールを知らないということです。




複数プール拡張

接続プールは、複数のサブスクライバプールをサポートできます。 つまり、サブスクライバプールを 2 つ持たせ、各プールがイベント参照からのすべての通知を受け取ることができます。 サブスクライバのイベント参照の構文は次のとおりです。

enp+pool[.poolid]://domain/event

この poolid は、base64 アルファベットだけを使用した文字列です (base64 アルファベットの内容については RFC1521の Table 1 を参照してください)。 たとえば、イベント参照 enp://127.0.0.1/store に対してサブスクライバプールを 2 つ持つ例では、各プールが次のイベント参照を購読します。

enp+pool.1://127.0.0.1/store --> 最初のサブスクライバプール用 enp+pool.2://127.0.0.1/store --> 2 番目のサブスクライバプール用



イベント通知サービスのアーキテクチャ



Solaris プラットフォームでは、ENS はデーモン enpd として、さまざまなカレンダーサーバやメッセージングサーバの構成で他の iPlanet デーモンとともに実行され、リソースのプロパティに発生するイベントを収集およびディスパッチします。 Windows NT プラットフォームでは、ENS はサービス enpd.exe として実行されます。

ENS では、イベントはリソースに発生した変更で、リソースはカレンダーや受信箱のようなエンティティです。 たとえば、カレンダー (リソース) にエントリを追加するとイベントが発生し、ENS によって格納されます。 そこで、このイベントが購読され、通知がサブスクライバに送信されます。

ENS アーキテクチャを使用すると、次の 3 つの動作が実行できます。

  • 通知 - イベントの発生を記述するメッセージです。イベントパブリッシャにより送信され、それはイベントへの参照のほか、付加的な URI に追加されるパラメータ / 値のペア、そしてイベント・コンシューマにより使われ通知サービスからは非透過な任意のデータ (ペイロード) を含んでいます。イベントに関心があるものはどんなものでも購読できます。

  • 購読 - イベントを購読するために送信されるメッセージです。 イベント参照、クライアント側要求識別情報、およびURI に追加される任意のパラメータ / 値のペアを含んでいます。購読は、「次のイベント」に適用されます (サブスクライバが「次のイベント」を通知するよう要求します)。

  • 購読の解除 - このメッセージは、既存の購読をキャンセル (購読を解除) します。 イベントサブスクライバは、指定したイベントの通知の中継を停止するよう ENS に知らせます。


通知

ENS は、通知を送信して、イベントのサブスクライバに通知します。 「通知する」は、「公開する」ともいいます。 通知には、次の項目を含めることができます。

  • イベント参照 (オプションで、パラメータと値の組み合わせを含めることができます)

  • オプションのアプリケーション固有のデータ (ENS に対しては「非透過」ですが、パブリッシャとサブスクライバはデータの形式についてあらかじめ合意しています)

オプションのアプリケーション固有のデータは、「ペイロード」とも呼ばれます。

通知には、次の 2 種類があります。

  • 低信頼通知 - イベントパブリッシャから通知サーバに送信される通知。 コンシューマが存在するかまたはそれらが通知を受けるかということについてパブリッシャが知らないか関心がない場合は、この要求は確実にアクノリッジされる必要はありません。 ただし、パブリッシャとサブスクライバとが相互に認識している場合は、パブリッシャとサブスクライバとの間に RENL (Reliable Event Notification Link) を設定することに合意できます。 この場合、サブスクライバがパブリッシャの通知を処理すると、アクノリッジメント通知がパブリッシャに返されます。

  • 高信頼通知 - 購読の結果として、サーバからサブスクライバへ送信される通知。 このタイプの通知に対しては、肯定応答を返す必要があります。 高信頼通知には、低信頼通知と同じ属性が含まれます。

詳細については、「パブリッシャ API」を参照してください。


購読

ENS は、イベントサブスクライバが送信するイベント通知要求を受け取ります。この要求が購読です。 購読は、セッションの存続期間中、またはそれがキャンセル (購読の解除) されるまで有効となります。

購読には、次の項目を含めることができます。

  • イベント参照 (オプションで、パラメータ / 値のペアを含めることができます)

  • 要求識別情報

詳細については、44ページの「サブスクライバ API」を参照してください。


購読の解除

ENS が、既存の購読をキャンセルする要求を受け取ります。 詳細については、「サブスクライバ API」を参照してください。


iPlanet Calendar Server が ENS と対話するしくみ

図 1-1 に、ENS が アラームキューおよび csadmindcsnotifyd の 2 つのデーモンを介して iPlanet Calendar Server と対話するしくみを示します。

図 1-1 iPlanet Calendar Server における ENS の概要



iPlanet Calendar Server アラームキュー

ENS は、アラームディスパッチャで、アラームの配信と生成が分離されています。 また、電子メールや無線通信など複数の配信方式が可能となります。 csadmind デーモンは、アラームキューの状態の変化を感知して、イベントを検出します。 アラームキューの状態は、アラームがキューに格納されるたびに変化します。 アラームは、カレンダーイベントがアラームを生成したときに、キューに格納されます。 次の URI は、これらのイベントの種類を表します。

イベントの場合

enp:///ics/eventalarm?calid=calid&uid=uid&rid=rid&aid=aid

Todo (仕事) の場合

enp:///ics/todoalarm?calid=calid&uid=uid&rid=rid&aid=aid

この構文の各変数は次のとおりです。

  • calid は、カレンダー ID です。

  • uid は、カレンダー内のイベント/ todo (仕事) ID です。

  • rid は、再帰イベント/ todo (仕事) の再帰 ID です。

  • aid は、イベント/ todo (仕事) 内のアラーム ID です。 アラームが複数ある場合は、aid が正しいアラームを指定します。

パブリッシャ csadmind は、アラームをキューから削除し、通知を enpd へ送信します。 次に、enpd デーモンは、この種類のイベントの購読者がいるかどうかを調べ、検出した購読に対する通知をサブスクライバ csnotifyd に送信します。 アラーム通知 (リマインダ) に対する、それ以外のサブスクライバは、iPlanet Calendar Server のインストール中に作成し、配備できます。 これらの 3 つのデーモン間の対話により、iPlanet Calendar Server のイベント通知が実装されます。


iPlanet Calendar Server デーモン

iPlanet Calendar Server には、ENS デーモンの enpd と対話する、次の 2 つのデーモンが含まれています。

  • csadmind

    csadmind デーモンには、アラームイベントを ENS へ送信して、通知を通知サービスに送信するパブリッシャが含まれています。これが iPlanet Calendar Server のアラームキューを管理します。 また、スケジューラを実装し、そうしてアラームがいつ生成されたかを知ることになります。この時点で、csadmind はイベントを公開します。ENS では、イベント通知の受信およびディスパッチが行われます。

    アラームを確実に送信するために、csadmind は特定のイベントやイベントの種類に対して肯定応答を要求します (アラームの送信の信頼性 参照)。 csadmind デーモンは、RENL (Reliable Event Notification Links) を使用して、アクノリッジメントを達成します。

  • csnotifyd

    csnotifyd デーモンは、特定のイベントへの関心を示す (購読する) サブスクライバです。購読しているイベントに関する通知を ENS から受け取り、これらのイベントや todo (仕事) の通知を電子メールでクライアントに送信します。

    ENS アーキテクチャには購読を解除する機能がありますが、csnotifyd では次の 2 つの理由によりイベントの購読が解除されません。 正常に動作しているときに、購読の解除または再購読を行う必要はないからです。また、購読は一時的に保存される (メモリーに保存される) だけなので、ENS への接続が切断されるとすべての購読が暗黙に購読の解除をされるからです。

    csnotifyd デーモンは、enp:///ics/alarm/ を購読します。 todo (仕事) またはイベントは、パラメータで指定されます。


アラームの送信の信頼性

アラームイベントの紛失を防ぐために、csadmindcsnotifyd は、ENS の RENL 機能を特定の種類のアラームに対して使用します。これらのアラーム通知に対して、csadmind はそれが送信したそれぞれの通知に対し終端間 (end to end) のアクノリッジメントを要求します。また、csnotifyd は、処理を正常に処理すると、受け取った各 RENL アラーム通知に対するアクノリッジメント通知を生成します。

RENL アラームの場合、ネットワーク、ENS デーモン、または csnotifyd が通知の処理に失敗すると、csadmind がアクノリッジメントを受け取らないため、アラームキューからアラームを削除しません。 したがって、タイムアウト後、アラームが再公開されます。


iPlanet Calendar Server 例

iPlanet Calendar Server における ENS の公開と購読の一般的な流れを示します。

  1. イベントサブスクライバの csnotifyd から、あるイベントに対する関心を表します。(購読)。

  2. イベントパブリッシャの csadmind は、イベントを検出し、通知を送信します。(通知の公開)

  3. ENS がイベントをサブスクライバに公開します。

  4. イベントサブスクライバは、イベントへの関心をキャンセルします。(購読の解除) この手順は、ENS への接続が切断されると暗黙に実行されます。

図 1-2 で、この流れを示します。また、表 1-1 で、この図の説明をします。

図 1-2 iPlanet Calendar Server のイベント通知サービスの公開と購読の流れの例



表 1-1 イベント通知サービスの公開と購読の流れの例

動作

ENS の応答

  1. csnotifyd デーモンが ENS に購読要求を送信する

 

ENS が購読を購読データベースに格納する  

  1. csadmind デーモンが ENS に通知要求を送信する

 

ENS は、通知に対応する購読を購読データベースで検索する  

  1. csnotifyd デーモンが ENS から通知を受け取る

 

ENS がパブリッシャから通知を受け取ると、内部購読テーブルを検索して、通知のイベント参照に一致する購読を検出する。 次に、この購読を所有するサブスクライバへ通知のコピーを購読ごとに中継する  

  1. このバージョンの csnotifyd は、現在のところ、ENS にキャンセル要求を送信しない

 

購読は、データベースではなくメモリーだけに保存されるので、ENS への接続が切断されるとすべての購読が暗黙で解除される  


iPlanet Messaging Server が ENS と対話するしくみ

図 1-3 は、ENS が iPlanet Messaging Server と対話するしくみを示したものです。 この図では、各楕円形がプロセスを表し、各矩形は楕円で囲まれたプロセスを実行するホストコンピュータを表します。

iPlanet ENS サーバは、通知を iPlanet Messaging Server 通知プラグインから ENS クライアント (iBiff サブスクライバ) に配信します。 ENS サーバより前の通知については、順序に保証はありません。イベントは異なるプロセス (MTAstored、および imapd) から送信されるためです。

通知は、MTA プロセス、stored プロセス、および imap プロセスの iBiff プラグインから ENS enpd に転送されます。 ENS クライアントは、ENS を購読し、通知を受け取ります。 iBiff が使用可能な場合、iPlanet Messaging Server は iBiff プラグインを使用して通知を公開しますが、これらの通知を購読する iPlanet Messaging Server サービスはありません。 通知をコンシュームしたり、必要な処理を実行するためには、顧客提供の ENS サブスクライバまたはクライアントを作成するべきです。 つまり、iPlanet Messaging Server 自体は機能を実現するために、通知に依存することも通知を使用することもありません。そのため、iPlanet Messaging Server をインストールしたとき、デフォルトでは ENS と iBiff は動作しないようになっています。

iPlanet Messaging Server のアーキテクチャでは、指定した一連のメールボックスに対して、指定したホストコンピュータがサービスを提供します。 指定したメールボックスに複数のホストコンピュータがサービスを提供することはありません。 指定したメールボックスを操作するプロセスはいくつかありますが、指定したメールボックスにサービスを提供するコンピュータホストは 1 つだけです。 したがって、通知を受け取るためには、エンドユーザは、関心のあるメールボックスにサービスを提供している ENS デーモンを購読するだけで十分です。

iPlanet Messaging Server を使用すると、すべてのメールボックス用に 1 台の ENS サーバ (すなわち、メッセージストアにサービスを提供するすべてのコンピュータホストに対して 1 台の ENS サーバ) を持つことまたは、複数の ENS サーバ、おそらくコンピュータホストごとに 1 台の ENS サーバを持つことのどちらかが可能となります。 2 番目のシナリオの方がスケーラブルです。 また、このシナリオでは、エンドユーザが関心のあるメールボックスのイベントを取得するには、複数の ENS サーバを購読しなければなりません。

したがって、アーキテクチャでは、コンピュータホストごとに ENS サーバが必要です。 ENS のサーバプロセスとクライアントプロセスを互いに同じ場所に配置したり、メッセージングサーバと同じ場所に配置したりする必要はありません。

図 1-3 iPlanet Messaging Server における ENS の概要




イベント通知サービス API の概要



この節では、C API および Java Messaging Service (JMS) API のサブセットである Java API の、ENS の 2 つの API について説明します。 iPlanet Messaging Server 5.2 および iPlanet Calendar Server 5.1 以降、ENS に Java API が追加されています。 Java API は、Java Message Service 仕様 (JMS) に準拠しています。 JMS API を使用した Java サブスクライバのサンプルが 2 つ用意されています。

ENS C API の詳細については、第 2 章「イベント通知サービス C API リファレンス」を参照してください。 Java (JMS) API の詳細については、第 3 章「イベント通知サービス Java (JMS) API リファレンス」を参照してください。 JMS のマニュアルについては、次の URL にアクセスしてください。

http://java.sun.com/products/jms/docs.html


ENS C API の概要

ENS は、次の 3 つの API を実装しています。

  • パブリッシャ API

    パブリッシャが購読対象イベントの通知を ENS に送信すると、ENS はこれをサブスクライバに配信します。 iPlanet Calendar Server では、アプリケーションがオプションで通知の受信のアクノリッジメントを要求することもできます。 これを行うには、RENL (Reliable Event Notification Link) が必要です。 RENL は、パブリッシャ、サブスクライバ、およびアクノリッジメントの対象になる通知を識別する一意の ID で構成されます。 パブリッシャは、publish_a に渡される end2end_ack コールバックを呼び出して、アプリケーションにアクノリッジメントの受信を知らせます。 現状では、iPlanet Calendar Server だけが RENL をサポートしています。

  • サブスクライバ API

    サブスクライバは、特定のイベントへの関心を表す、通知サービスに対するクライアントです。 通知サービスは、パブリッシャからこれらのイベントのうちの 1 つに関する通知を受け取ると、サブスクライバにその通知を中継します。

    サブスクライバは購読を解除する (活性化している購読をキャンセルする) こともできます。

    iPlanet Calendar Server で、RENL を使用可能にするには、サブスクライバが ENS に対してその存在を宣言し、次に ENS がサブスクライバアプリケーションに代わって通知のアクノリッジメントを透過的に作成します。 サブスクライバは、いつでも RENL を廃棄できます。

  • 公開および購読ディスパッチャ API

    非同期パブリッシャを使用する場合、ENS は、コールバックを呼び出すためにスレッドプールからスレッドを借りる必要があります。 アプリケーションは、独自のスレッドプールを作成して ENS に渡すことも、または、ENS に独自のスレッドプールを作成、管理させることもできます。 いずれの場合も、ENS はディスパッチャオブジェクトを作成し、そのオブジェクトを使用して、使用するディスパッチャ (pas_dispatcher_t) をインスタンス化します。

    GDisp (libasync) は、サポートされているディスパッチャです。


ENS Java API の概要

ENS 用の Java APIは、標準 JMS API のサブセットを使い、次の 2 つの新しい専用メソッドを持っています。

  • com.iplanet.ens.jms.EnsTopicConnFactory

  • com.iplanet.ens.jms.EnsTopic

次に示す JMS オブジェクトクラスのリストは、ENS 用 Java API で使用されるものです。

  • javax.jms.TopicSubscriber

  • javax.jms.TopicSession

  • javax.jms.TopicPublisher

  • javax.jms.TopicConnection

  • javax.jms.TextMessage

  • javax.jms.Session

  • javax.jms.MessageProducer

  • javax.jms.MessageConsumer

  • javax.jms.Message

  • javax.jms.ConnectionMetaData

  • javax.jms.Connection



    ENS 用 Java API は、すべての JMS オブジェクトクラスを実装しているわけではありません。 カスタマイズするときは、このリストにあるオブジェクトクラスだけを使用してください。




カスタムアプリケーションの作成と実行

ユーザ自身のカスタムパブリッシャとサブスクライバアプリケーションの作成を支援するために、iPlanet Messaging Server および iPlanet Calendar Server にはコーディング例が付いています。 この節では、コーディング例、API のインクルード (ヘッダー) ファイル、およびカスタムプログラムの作成と実行に必要なライブラリの場所を示します。



この節の説明は、C API にのみ適用されます。




コーディング例の場所


iPlanet Calendar Server
iPlanet Calendar Server には、ユーザが始めるのを支援するために、4 つの簡単なサンプルプログラムが付いています。これらのサンプルのコードは、次のディレクトリにあります。

/opt/SUNWics5/cal/csapi/samples/ens


iPlanet Messaging Server
iPlanet Messaging Server 5.1 以降には、通知を受信する方法の理解を支援するためのサンプルプログラムが付いています。 これらのサンプルプログラムは、server-root/bin/msg/enssdk/examples ディレクトリにあります。


インクルードファイルの場所


iPlanet Calendar Server
パブリッシャおよびサブスクライバ API には、publisher.hsuscriber.h、および pasdisp.h (公開および購読ディスパッチャ) のインクルード (ヘッダー) ファイルがあります。これらのファイルは、CSAPI include ディレクトリにあります。 デフォルトの include パスは、次のとおりです。

/opt/SUNWics5/cal/csapi/include


iPlanet Messaging Server
デフォルトの iPlanet Messaging Server の include パスは、次のとおりです。

server-root/bin/msg/enssdk/include


動的にリンクまたは共有されるライブラリ


iPlanet Calendar Server
カスタムコードは、動的にリンクされる libens ライブラリとリンクする必要があります。このライブラリには、パブリッシャおよびサブスクライバの API が実装されています。 一部のプラットフォームでは、libens に依存するすべてのライブラリを、リンク指示の一部に含める必要があります。 それらの従属ライブラリを順番に示します。

  1. libgap

  2. libcyrus

  3. libyasr

  4. libasync

  5. libnspr3

  6. libplsd4

  7. libplc3

上記のライブラリは、iPlanet Calendar Server で使用されるため、サーバの bin ディレクトリに配置されています。 デフォルトの libens パスは、次のとおりです。

/opt/SUNWics5/cal/bin



Windows NT の場合、パブリッシャおよびサブスクライバアプリケーションを作成するには、上記のすべてのライブラリに対応するアーカイブファイル (.lib ファイル) も必要となります。 アーカイブファイルは、CSAPI ライブラリのディレクトリ lib にあります。 デフォルトのパスは、次のとおりです。

drive:\Program Files\iPlanet\cal\csapi\lib




iPlanet Messaging Server
iPlanet Messaging Server のライブラリは、次のディレクトリにあります。

server-root/bin/msg/lib

必要なライブラリを判断するには、server-root/bin/msg/enssdk/examples/Makefile.sample を参照してください。この makefile には、apub プログラムと asub プログラムをコンパイルして実行する方法に関する指示が含まれています。 また、このファイルは、必要なライブラリ、および LD_LIBRARY_PATH がどうなるべきかについても説明しています。

図 1-4 Makefile.sample ファイル

#
# サンプル makefile
#
# C コンパイラ
CC = gcc

# LIBS
# ライブラリパスには <server-root>/bin/msg/lib を含める
LIBS = -lens -lgap -lxenp -lcyrus -lchartable -lyasr -lasync

all: apub asub

apub: apub.c
$(CC) -o apub -I ../include apub.c $(LIBS)

asub: asub.c
$(CC) -o asub -I ../include asub.c $(LIBS)

run:
@echo ユrun <server-root>/msg-<instance>/start-ensユ
@echo run asub localhost 7997
@echo run apub localhost 7997




Windows NT のディストリビューションには、次のファイルが追加されています。

server-root\bin\msg\enssdk\examples

bin\msg\enssdk\examples\libens.lib

bin\msg\enssdk\examples\libgap.lib

bin\msg\enssdk\examples\libxenp.lib

bin\msg\enssdk\examples\libcyrus.lib

bin/msg\enssdk\examples\libchartable.lib

bin\msg\enssdk\examples\libyasr.lib

bin\msg\enssdk\examples\libasync.lib

bin\msg\enssdk\examples\asub.dsw

bin\msg\enssdk\examples\apub.dsp

bin\msg\enssdk\examples\asub.dsp

Windows NT 上で作成するには、次の手順に従います。

  1. asub.dsw に、サンプル VC++ ワークスペースが用意されています。 その中には、asub.dsp および apub.dsp という、2 つのプロジェクトがあります。

    リンクする必要のある .lib ファイルは、asub.c および apub.c と同じディレクトリにあります。

  2. 実行するには、次の実行パスに DLL が必要です。

    libens.dll
    libgap.dll
    libxenp.dll
    libcyrus.dll
    libchartable.dll
    libyasr.dll
    libasync.dll

    この作業を最も簡単に行う方法は、PATH\msg\libserver-root を含めることです。




実行時ライブラリパス変数


iPlanet Calendar Server
/opt/SUNWics5/cal/bin ディレクトリからカスタムプログラムが必要とする実行時ライブラリを見つけられるように、ユーザ環境の実行時ライブラリのパス変数にこのディレクトリを含めます。この変数の名前は、プラットフォームによって異なります。

  • SunOS および Linux LD_LIBRARY_PATH

  • Windows NT PATH

  • HPUX SHLIB_PATH


iPlanet Messaging Server
iPlanet Messaging Server では、LD_LIBRARY_PATHserver-root/bin/msg/lib に設定します。


前へ     目次     索引     DocHome     次へ     
Copyright (C) 2002 Sun Microsystems, Inc. Some preexisting portions Copyright (C) 2000 Netscape Communications Corp. All rights reserved.

最終更新日: 2002 年 1 月 31 日