Java プログラムを実行する

lotus.domino パッケージをインポートすることにより、Java™ プログラムから Domino オブジェクトを呼び出すことができます。プログラムは、アプリケーション、Domino エージェント、アプレット、またはサーブレットとしてコーディングできます。ローカル呼び出しはローカルコンピュータ上のランタイムコードにアクセスしますが、このコンピュータには Domino がインストールされている必要があります。CORBA に準拠したリモート (IIOP) 呼び出しはリモート Domino サーバーからランタイムコードにアクセスしますが、この場合はローカルコンピュータに Domino がインストールされている必要はありません。コンパイルは、Domino Designer がインストールされているコンピュータで行う必要があります。

注: Notes/Domino Release 7 では、Sun Java 2 Platform Technology Edition v 1.4.2 がサポートされます。 非互換を避けるため、以前の Domino サーバーまたは Notes クライアントにおいて Release 7 でコンパイルした Java エージェントを実行しないでください。v. 1.4.2 より前の Java Platform において、Release 7 Java アーカイブ (Notes.jar、domtags.jar) を使用しないでください。

注: lotus.domino パッケージの内容は、R4.6 lotus.notes のパッケージと同様の内容に新しいクラス、メソッド、その他の拡張を加えたものです。R4.6 lotus.notes パッケージは、従来のものとの互換性のためだけにサポートを続けられます。新しいクラス、メソッド、その他の拡張は含まれません。

サーバーの要件

CORBA に準拠したリモート (IIOP) 呼び出しには、Domino サーバーへのアクセスが必要です。

DIIOP を使用するために HTTP タスクを実行する必要はありません。サーバーの notes.ini ファイルに次の行が含まれていることを確認してください。

ServerTasks=<any other tasks>,diiop

このタスクは、load console コマンドを使用して後から実行することもできます。

注: JavaMaxHeapsize の値を 64M 以下に下げないでください。64M 以下に下げると、nhttp.exe を実行しようとしたときに実行時エラーが発生します。JavaMaxHeapsize の値をサーバーの notes.ini ファイルで設定しない場合は、64M が使用されます。

Domino ディレクトリ (Server¥Servers の下) にあるサーバー文書で、必要に応じてリモート呼び出しの許可と制限を指定します。 詳しい説明を表示するには、フィールドの説明を右クリックします。

サーバーは、約 30 分ごとにセキュリティオプションのキャッシュを更新します。コンソールコマンド「tell diiop refresh」を実行すると、即座に強制的に更新します。

CORBA に準拠した Domino オブジェクトアプリケーションまたはアプレットの SSL セキュリティは、Web サーバーの SSL セキュリティの上に構築されます。最初に、「Domino R5 認証機関」アプリケーションを使用して Web サーバーのセキュリティをセットアップする必要があります。

Designer の要件

lotus.domino パッケージを使用して Java プログラムをコンパイルするには、Domino Designer R5 以上をインストールする必要があります。

スタンドアロンのアプリケーションには、classpath に Notes プログラムディレクトリの該当する Java ライブラリのサブディレクトリにある Notes.jar と、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 パッケージが含まれています。厳密には、リモート呼び出しをコンパイルしない場合は NCSO アーカイブは必要なく、ローカル呼び出しや古い呼び出しをコンパイルしない場合は Notes.jar は必要ありません。

これらの 3 つの NCSO アーカイブは、内容は同じですが、アーカイブ方法は異なります。

クラスコードでは、次の上位レベルの lotus.domino パッケージをインポートしなければなりません。

import lotus.domino.*;

ランタイムの要件

ローカルな Domino 呼び出しを行う Java アプリケーションを実行するコンピュータには、Domino サーバー、Domino Designer、または Notes クライアントがインストールされている必要があり、classpath に Notes.jar が含まれている必要があります。

リモートの Domino 呼び出しを行う Java アプリケーションを実行するコンピュータには、Domino または Notes がインストールされている必要はありませんが、NCSO アーカイブのいずれか 1 つが含まれていて、それが classpath に含まれている必要があります。

Domino 呼び出しを行う Domino エージェントを実行するコンピュータでは、classpath に Notes.jar が含まれている必要があります。

Domino 呼び出しを行うアプレットを実行するコンピュータでは、Domino ソフトウェアや classpath の割り当ては不要です。このアプレットは、Domino サーバーがインストールされているコンピュータからロードされなければなりません。

注: WebSphere® 環境でリモート (IIOP) 呼び出しを実行する場合は、classpath に NCSOW.jar を使用しないでください。 NCSOW.jar は R5.0.4 から提供を開始されたもので、現在ではキットに含まれていません。R5 サーバーでは NCSOW.jar を使用するプログラムを実行できますが、R6 サーバーでは実行できません。NCSO アーカイブは、R5 サーバーと Release 6 サーバーの両方で使用できます。

Java オブジェクトのメモリ管理

Java をオブジェクトの作成に使用すると、Java オブジェクトと Notes バックエンド (C++) オブジェクトの 2 つのオブジェクトが作成されます。Java オブジェクトが NULL に設定され、ガーベッジコレクション用にフラグが付けられても、C++ オブジェクトは影響を受けません。Java オブジェクトと C++ オブジェクトの両方にガーベッジコレクション用のマークを付けるには、recycle メソッドを使用する必要があります。

オブジェクトが Java エージェント内から作成された場合、作成されたすべてのオブジェクト (Java と C++ の両方) は、エージェントの終了時に破壊されます。ただし、長時間実行エージェントまたは多数のオブジェクトを作成するエージェントの場合は、recycle メソッドの使用を考慮してください。サーブレット、JSP、またはスタンドアロン Java アプリケーションを使用する場合、バックエンドオブジェクトを削除するには recycle メソッドを使用する必要があります。

文書などの親を再利用すると、アイテムなどのそのすべての子も再利用されます。セッションを再利用すると、それが使用してきたすべてのオブジェクトも再利用されます。

lotus.domino パッケージを呼び出す

次のガイドラインは、lotus.domino パッケージへの呼び出しを行う Java プログラムに適用されます。

lotus.domino クラスを使用する

lotus.domino クラスにより、特定のデータベース、ビュー、文書、その他のバックエンドオブジェクトにアクセスできます。次の lotus.domino クラスは、直接でパブリックな使用を目的としています。