|
|
| Sun ONE Messaging and Collaboration イベント通知サービスマニュアル |
第 3 章 イベント通知サービス Java (JMS) API リファレンス
この章では、 ENS における Java (JMS) API の実装について、および Java API について説明します。
イベント通知サービス Java (JMS) API の実装
イベント通知サービス Java (JMS) API の実装
ENS Java API は、iPlanet Messaging Server 5.2 および Sun ONE Calendar Server 5.1 に組み込まれています。Java API は、Java Message Service 仕様 (JMS) に準拠しています。
ENS は、Java Message Service に対するプロバイダの役割を果たします。つまり、JMS は ENS に Java API を提供します。このソフトウェアは、ベースライブラリとデモプログラムで構成されています。
Java API を使用するための前提条件
Java API を使用するには、ENS を使用可能にしておく必要があります。iPlanet Messaging Server で ENS を使用可能にする方法については、『iPlanet Messaging Server 5.2 管理者ガイド』の付録 C を参照してください。Sun ONE Calendar Server では、デフォルトで ENS を使用できます。
また、iPlanet Messaging Server と Sun ONE Calendar Server には含まれていない次のソフトウェアをインストールする必要があります。
このソフトウェアは、http://java.sun.com からダウンロードできます。
サンプル Java プログラム
iPlanet Messaging Server 5.2 サンプルプログラムの JmsSample および JBiff は、server-root/bin/msg/enssdk/java/com/iplanet/ens/samples ディレクトリに格納されています。JmsSample は、汎用 ENS サンプルプログラムです。JBiff は、iPlanet Messaging Server 固有のサンプルプログラムです。
これらも、http://java.sun.com からダウンロードできます。
環境の設定
この節では、サンプルプログラムをコンパイルして実行するために必要な手順について説明します。
CLASSPATH に次の項目の組み込みを設定します。
ens.jar ファイル - ens.jar
(iPlanet Messaging Server では、ens.jar は server-root/java/jars/ ディレクトリにある)
Java Message Service - full-path/jms1.0.2/jms.jar
server-root/bin/msg/enssdk/java ディレクトリに移動します。
javac com/iplanet/ens/samples/JmsSample.java
CLASSPATH に次の項目の組み込みを設定します。
ens.jar ファイル - ens.jar
(iPlanet Messaging Server では、ens.jar は server-root/java/jars/ ディレクトリにある)
Java Message Service - full-path/jms1.0.2/jms.jar
Java Mail - full-path/javamail-1.2/mail.jar
Java Activation Framework - full-path/jaf-1.0.1/activation.jar
server-root/bin/msg/enssdk/java ディレクトリに移動します。
javac com/iplanet/ens/samples/JBiff.java
server-root/bin/msg/enssdk/java ディレクトリに移動します。
java com.iplanet.ens.samples.JmsSample
次の 3 つの項目の入力が要求されます。
イベントを公開します。
iPlanet Messaging Server でイベントを公開するには、次の 2 つの方法があります。
ENS の apub C サンプルプログラムを使用できます。詳細については、「iPlanet Messaging Server のコーディング例」 を参照してください。
ENS を使用可能にした場合は、iBiff が iPlanet Messaging Server 関連のイベントを公開するように設定します。
Sun ONE Calendar Server の場合、イベントは Calendar Server によって公開されます。
JBiff デモプログラムを実行するには
前提条件:JBiff デモプログラムを実行するには、iPlanet Messaging Server で ENS を使用可能にしておく必要があります。その手順については、『iPlanet Messaging Server 5.2 管理者ガイド』の付録 C を参照してください。
注 デモは現在、ENS イベント参照 enp://127.0.0.1/store を使用するようハードコード化されています。これは、iBiff 通知プラグインが使用するデフォルトのイベント参照です。
server-root/bin/msg/enssdk/java ディレクトリに移動します。
java com.iplanet.ens.samples.JBiff
ユーザ ID (userid)、ホスト名 (hostname)、およびパスワード (password) の入力を求められます。
コードは、ENS サーバおよび IMAP サーバがそのホスト上で稼動中であることを前提としています。userid および password は、IMAP アカウントにアクセスするための IMAP ユーザ名およびパスワードです。
2 つのテストプログラムは、ENS サブスクライバです。電子メールメッセージが iPlanet Messaging Server を介して転送されると、iBiff からイベントを受信します。または、apub C サンプルプログラムを使用して、イベントを生成することもできます。詳細については、「iPlanet Messaging Server のコーディング例」 を参照してください。
Java (JMS) API の概要
Java API for ENS は、標準 Java Messaging Service (JMS) API のサブセットを使用し、次の 2 つの新しい固有メソッドが追加されています。
JMS では、2 つの ENS 固有クラスが提供する TopicConnectionFactory および Topic の作成が必要です。
標準 JMS のクラスとメソッドの詳細については、次のサイトにある JMS マニュアルを参照してください。
http://java.sun.com/products/jms/docs.html
新しい固有メソッド
2 つの固有メソッドクラスとは、EnsTopicConnFactory および EnsTopic です。
com.iplanet.ens.jms.EnsTopicConnFactory
メソッドについて
このメソッドは、javax.jms.TopicConnectionFactory を返すコンストラクタです。JNDI 形式の検索で TopicConnectionFactory オブジェクトを取得する代わりに、このメソッドを使用できます。
構文
public EnsTopicConnFactory (String name,
String hostname,
int port,
OutputStream logStream)
引数
表 3-1    EnsTopicConnFactory の引数
引数
型
説明
このメソッドについて
このメソッドは、javax.jms.Topic を返すコンストラクタです。JNDI 形式の検索で javax.jms.Topic オブジェクトを取得する代わりに、このメソッドを使用できます。
構文
public EnsTopic (String eventRef)
実装上の注意
この節では、ENS Java API を実装するときに注意すべき点について説明します。
現在の実装における欠点
現行の Java API の実装では、初期プロバイダインタフェースを備えていません。
JMS Topic Connection Factory および ENS Destination が明示的に呼び出されます。これらは、com.iplanet.ens.jms.EnsTopicConnFactory および com.iplanet.ens.jms.EnsTopic です。ENS では、TopicConnectionFactory オブジェクトや Topic オブジェクトの取得には JNDI を使用しません。
通知の配信
通知は、javax.jms.TextMessage として配信されます。ENS イベント参照のパラメータとその値は TextMessage に対するプロパティ名として提供されます。ペイロードは、TextMessage のデータとして提供されます。
JMSDeliveryMode は常に NON_PERSISTENT に設定されている (次の配信のためにメッセージを保存しない)
JMSRedelivered は常に false に設定されている
JMSMessageID は内部 ID に設定されており、iPlanet Messaging Server の電子メールメッセージのヘッダーにある SMTP MessageID には設定されていない
ペイロードは常に javax.jms.TextMessage。ENS のペイロードに相当する
JMSDestination は、完全イベント参照に設定されている (この通知に固有のパラメータ/値を含む)
JMSCorrelationID - 内部シーケンス番号に設定される
JMSTimestamp - メッセージが送信された時刻に設定される
JMSType - 通知の種類
追加のプロパティ:
イベント参照の各パラメータと値は、ヘッダーではプロパティになる。プロパティ値はすべて String 型
未使用ヘッダーは、 JMSExpiration、JMSpriority、JMSReplyTo
前へ 目次 索引 次へ
Copyright 2002 Sun Microsystems, Inc. All rights reserved.
最終更新日 2002 年 8 月 30 日