JAVA/CORBA クラス
lotus.domino パッケージをインポートすることにより、Java プログラムから Lotus Domino オブジェクトを呼び出すことができます。プログラムは、アプリケーション、Lotus Domino エージェント、アプレット、またはサーブレットとしてコーディングできます。ローカル呼び出しはローカルコンピュータ上のランタイムコードにアクセスしますが、このコンピュータには Lotus Domino がインストールされている必要があります。CORBA に準拠したリモート (IIOP) 呼び出しはリモート Lotus Domino サーバーからランタイムコードにアクセスしますが、この場合はローカルコンピュータに Lotus Domino がインストールされている必要はありません。コンパイルは、Lotus Domino Designer がインストールされているコンピュータで行う必要があります。
メモ Lotus Notes/Domino R7 では、Sun Java(TM) 2 Platform、Technology Edition、v 1.4.2 がサポートされます。非互換を避けるため、以前の Lotus Domino サーバーまたは Lotus Notes クライアントにおいて R7 でコンパイルした Java エージェントを実行しないでください。v. 1.4.2 以下の Java Platform において、R7 Java アーカイブ (Notes.jar、domtags.jar) を使用しないでください。
メモ lotus.domino パッケージの内容は、R4.6 lotus.notes のパッケージと同様の内容に新しいクラス、メソッド、その他の拡張を加えたものです。R4.6 lotus.notes パッケージは、従来のものとの互換性のためだけにサポートを続けられます。新しいクラス、メソッド、その他の拡張は含まれません。
要件
サーバーの要件
CORBA に準拠したリモート (IIOP) 呼び出しには、Lotus Domino サーバーへのアクセスが必要です。
DIIOP を使用するために HTTP タスクを実行する必要はありません。サーバーの notes.ini ファイルに次の行が含まれていることを確認してください。
ServerTasks=<any other tasks>,diiop
このタスクは、load console コマンドを使用して後から実行することもできます。
メモ JavaMaxHeapsize の値を 64M 以下に下げないでください。64M 以下に下げると、nhttp.exe を実行しようとしたときに実行時エラーが発生します。JavaMaxHeapsize の値をサーバーの notes.ini ファイルで設定しない場合は、64M が使用されます。
Domino ディレクトリ ([サーバー] - [サーバー] の下) のサーバー文書で、必要に応じて CORBA に準拠したリモート呼び出しの許可と制限を指定します。詳しい説明を表示するには、フィールドの説明を右クリックします。
CORBA に準拠した Lotus Domino オブジェクトアプリケーションまたはアプレットの SSL セキュリティは、Web サーバーの SSL セキュリティの上に構築されます。最初に、「Lotus Domino R5 認証機関」アプリケーションを使用して Web サーバーのセキュリティをセットアップする必要があります。
Designer の要件
lotus.domino パッケージを使用して Java プログラムをコンパイルするには、Lotus Domino Designer R5 以上をインストールする必要があります。
スタンドアロンのアプリケーションには、classpath に Lotus Notes プログラムディレクトリの該当する Java ライブラリのサブディレクトリにある Notes.jar と、Lotus Notes データディレクトリの domino\java\NCSO.jar または domino\java\NCSO.cab を含めます。以下に例を示します。
set CLASSPATH=.;c:\notes\jvm\lib\ext\Notes.jar set CLASSPATH=.;c:\notes\data\domino\java\NCSO.jar
Notes.jar には、上位レベルの lotus.domino パッケージ、ローカル呼び出し用の lotus.domino.local パッケージ、古い lotus.notes パッケージが含まれています。NCSO アーカイブには、上位レベルの lotus.domino パッケージと、リモート呼び出し用の lotus.domino.cso パッケージが含まれています。厳密には、CORBA に準拠したリモート呼び出しをコンパイルしない場合は NCSO アーカイブは必要なく、ローカル呼び出しや古い呼び出しをコンパイルしない場合は Notes.jar は必要ありません。
これらの 3 つの NCSO アーカイブは、内容は同じですが、アーカイブ方法は異なります。
メモ 以前のリリースでは NCSO.jar (圧縮しない) および NCSOC.jar (圧縮する) を使用していました。
import lotus.domino.*;
ランタイムの要件
ローカルな Lotus Domino 呼び出しを行う Java アプリケーションを実行するコンピュータには、Lotus Domino サーバー、Lotus Domino Designer、または Lotus Notes クライアントがインストールされている必要があり、classpath に Notes.jar が含まれている必要があります。
リモートの Lotus Domino 呼び出しを行う Java アプリケーションを実行するコンピュータには、Lotus Domino または Lotus Notes がインストールされている必要はありませんが、NCSO アーカイブのいずれか 1 つが含まれていて、それが classpath に含まれている必要があります。
Lotus Domino 呼び出しを行う Lotus Domino エージェントを実行するコンピュータでは、classpath に Notes.jar が含まれている必要があります。
Lotus Domino 呼び出しを行うアプレットを実行するコンピュータでは、Lotus Domino ソフトウェアや classpath の割り当ては不要です。このアプレットは、Lotus Domino サーバーがインストールされているコンピュータからロードされなければなりません。
メモ WebSphere(R) 環境でリモート (IIOP) 呼び出しを実行する場合は、classpath に NCSOW.jar を使用しないでください。NCSOW.jar は R5.0.4 から提供を開始されたもので、現在ではキットに含まれていません。R5 サーバーでは NCSOW.jar を使用するプログラムを実行できますが、R6 サーバーでは実行できません。NCSO アーカイブは、R5 サーバーおよび Release 6 サーバーの両方で使用できます。
Java オブジェクトのメモリ管理
Java をオブジェクトの作成に使用すると、Java オブジェクトと Lotus Notes バックエンド (C++) オブジェクトの 2 つのオブジェクトが作成されます。Java オブジェクトが NULL に設定され、ガーベッジコレクション用にフラグが付けられても、C++ オブジェクトは影響を受けません。Java オブジェクトと C++ オブジェクトの両方にガーベッジコレクション用のマークを付けるには、recycle メソッドを使用する必要があります。
オブジェクトが Java エージェント内から作成された場合、作成されたすべてのオブジェクト (Java および C++ の両方) は、エージェントの終了時に破壊されます。ただし、長時間実行エージェントまたは多数のオブジェクトを作成するエージェントの場合は、recycle メソッドの使用を考慮してください。サーブレット、JSP、またはスタンドアロン Java アプリケーションを使用する場合、バックエンドオブジェクトを削除するには recycle メソッドを使用する必要があります。
文書などの親を再利用すると、アイテムなどのそのすべての子も再利用されます。セッションを再利用すると、それが使用してきたすべてのオブジェクトも再利用されます。
lotus.domino パッケージを呼び出す
次のガイドラインは、lotus.domino パッケージへの呼び出しを行う Java プログラムに適用されます。
ローカル呼び出しを行うアプリケーションの各スレッドは、NotesThread オブジェクトを初期化しなければなりません。これには、Lotus Domino オブジェクトにアクセスする AWT スレッドが含まれます。リスナースレッドは NotesThread から継承できないため、静的なメソッドを使用する必要があります。
「NotesThread クラス」の項の下の「マルチスレッドの問題」を参照してください。
Lotus Domino 呼び出しを含むスレッドをアプレットで作成する場合は、スレッドコードではローカルの Lotus Domino 呼び出しに NotesThread を使用する必要があります。リモート (IIOP) 呼び出しには使用する必要はありません。環境を判断するには AppletBase.isLocal() を使用します。初期化には NotesThread.sinitThread を使用し、終了には NotesThread.stermThread を使用します。スレッドの作成には AWT イベントの処理が含まれます。
詳しくは、例を参照してください。
Lotus Domino データベースに保存されるアプレットについては [Java アプレット] - [Java アプレットプロパティ] の [Notes CORBA クラスを使用] を選択してください。
NotesFactory.createSession と AppletBase.openSession の user と pwd パラメータは、アクセス先のサーバーの Domino ディレクトリ内のユーザー名とインターネットパスワードとする必要があります。名前とパスワードが指定されない場合は、サーバーによって匿名アクセスが許可されます。
Lotus Domino または WebSphere サーバーに対してシングルサインオンを行うには、createSession(String host, String token)、createSession(String host, org.omg.SecurityLevel2.Credentials token)、createSession(String host, null)、createSession(String host, HttpServletRequest request) のいずれかを使用します。
メモ シングルサインオンは、R5.0.5 で新しく追加されました。
SSL (Secure Sockets Layer) を有効にするには、NotesFactory.createSession(String host, String args[], String user, String pwd) を使用して、args(0) に「-ORBEnableSSLSecurity」と指定します。
lotus.domino クラスにより、特定のデータベース、ビュー、文書、その他のバックエンドオブジェクトにアクセスできます。次の lotus.domino クラスは、直接でパブリックな使用を目的としています。