lotus.domino パッケージをインポートすることにより、Java™ プログラムから Domino オブジェクトを呼び出すことができます。プログラムは、アプリケーション、Domino エージェント、アプレット、またはサーブレットとしてコーディングできます。ローカル呼び出しはローカルコンピュータ上のランタイムコードにアクセスしますが、このコンピュータには Domino がインストールされている必要があります。CORBA に準拠したリモート (IIOP) 呼び出しはリモート Domino サーバーからランタイムコードにアクセスしますが、この場合はローカルコンピュータに Domino がインストールされている必要はありません。コンパイルは、Domino Designer がインストールされているコンピュータで行う必要があります。
CORBA に準拠したリモート (IIOP) 呼び出しには、Domino サーバーへのアクセスが必要です。
DIIOP を使用するために HTTP タスクを実行する必要はありません。サーバーの notes.ini ファイルに次の行が含まれていることを確認してください。
ServerTasks=<any other tasks>,diiop
このタスクは、load console コマンドを使用して後から実行することもできます。
Domino ディレクトリ (Server¥Servers の下) にあるサーバー文書で、必要に応じてリモート呼び出しの許可と制限を指定します。 詳しい説明を表示するには、フィールドの説明を右クリックします。
サーバーは、約 30 分ごとにセキュリティオプションのキャッシュを更新します。コンソールコマンド「tell diiop refresh」を実行すると、即座に強制的に更新します。
CORBA に準拠した Domino オブジェクトアプリケーションまたはアプレットの SSL セキュリティは、Web サーバーの SSL セキュリティの上に構築されます。最初に、「Domino R5 認証機関」アプリケーションを使用して Web サーバーのセキュリティをセットアップする必要があります。
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 サーバーがインストールされているコンピュータからロードされなければなりません。
Java をオブジェクトの作成に使用すると、Java オブジェクトと Notes バックエンド (C++) オブジェクトの 2 つのオブジェクトが作成されます。Java オブジェクトが NULL に設定され、ガーベッジコレクション用にフラグが付けられても、C++ オブジェクトは影響を受けません。Java オブジェクトと C++ オブジェクトの両方にガーベッジコレクション用のマークを付けるには、recycle メソッドを使用する必要があります。
オブジェクトが Java エージェント内から作成された場合、作成されたすべてのオブジェクト (Java と C++ の両方) は、エージェントの終了時に破壊されます。ただし、長時間実行エージェントまたは多数のオブジェクトを作成するエージェントの場合は、recycle メソッドの使用を考慮してください。サーブレット、JSP、またはスタンドアロン Java アプリケーションを使用する場合、バックエンドオブジェクトを削除するには recycle メソッドを使用する必要があります。
文書などの親を再利用すると、アイテムなどのそのすべての子も再利用されます。セッションを再利用すると、それが使用してきたすべてのオブジェクトも再利用されます。
次のガイドラインは、lotus.domino パッケージへの呼び出しを行う Java プログラムに適用されます。
ローカル呼び出しを行うアプリケーションの各スレッドは、NotesThread オブジェクトを初期化しなければなりません。これには、Domino オブジェクトにアクセスする AWT スレッドが含まれます。リスナースレッドは NotesThread から継承できないため、静的なメソッドを使用する必要があります。
「NotesThread クラス」の項の下の「マルチスレッドの問題」を参照してください。
Domino 呼び出しを含むスレッドをアプレットで作成する場合は、スレッドコードではローカルの Domino 呼び出しに NotesThread を使用する必要があります。リモート (IIOP) 呼び出しには使用する必要はありません。環境を判断するには AppletBase.isLocal() を使用します。初期化には NotesThread.sinitThread を使用し、終了には NotesThread.stermThread を使用します。スレッドの作成には AWT イベントの処理が含まれます。
詳しくは、例を参照してください。
Domino データベースに保存されるアプレットについては [Java アプレット] - [Java アプレットプロパティ] の [Notes CORBA クラスを使用] を選択してください。
NotesFactory.createSession と AppletBase.openSession の user と pwd パラメータは、アクセス先のサーバーの Domino ディレクトリ内のユーザー名とインターネットパスワードとする必要があります。名前とパスワードが指定されない場合は、サーバーによって匿名アクセスが許可されます。
Domino または WebSphere サーバーに対してシングルサインオンを行うには、createSession(String host, String token)、createSession(String host, org.omg.SecurityLevel2.Credentials token)、createSession(String host, null)、createSession(String host, HttpServletRequest request) のいずれかを使用します。
SSL (Secure Sockets Layer) を有効にするには、NotesFactory.createSession(String host, String args[], String user, String pwd) を使用して、args(0) に「-ORBEnableSSLSecurity」と指定します。
lotus.domino クラスにより、特定のデータベース、ビュー、文書、その他のバックエンドオブジェクトにアクセスできます。次の lotus.domino クラスは、直接でパブリックな使用を目的としています。