JAVA/CORBA クラス
NotesThread クラスは java.lang.Thread から派生して、Lotus Notes/Domino 用の特別な初期化コードや終了コードを含んでいます。このような Thread の派生は、Lotus Notes/Domino クラスに対してローカルに呼び出しを行う Java プログラムを実行するために必要です。これは、リモート呼び出しには必要ありません。ローカル呼び出しとリモート呼び出しの両方を行うアプリケーションは、静的メソッド sinitThread と stermThread をいつ使用するかを動的に判断できます。リモート呼び出しは、ローカルスレッドの実行中に行うことができます。ただし、あるセッションで取得したオブジェクトを、他のセッションへの呼び出しに使用してはいけません。AppletBase や AgentBase から派生したスレッドやエージェントを起動しないアプレットは、リモート呼び出し用とローカル呼び出し用に分けてコーディングする必要はありません。そのための機能がベースコードで提供されているためです。
継承を通してスレッドを実行する
継承を通してスレッドを実行するには、Thread の代わりに NotesThread から派生させ、run の代わりに runNotes メソッドを含めます。
Runnable インターフェースを通してスレッドを実行するには、Runnable を実装して、スレッドを使用するほかのクラスの場合と同じように run メソッドを含めます。
静的メソッドを通してスレッドを実行するには、sinitThread() を呼び出してスレッドを初期化し、stermThread() でスレッドを終了します。sinitThread() への各呼び出しに対して、stermThread() を 1 回だけ呼び出します。stermThread は finally ブロックに置くことをお勧めします。
マルチスレッドは、必要な場合を除いて使用を避けてください。必要な場合とは、ファイル入出力処理中に、Web の要求が処理されるような場合です。次のガイドラインを参考にしてください。
NotesThread クラスの仕様は、次のとおりです。
public class NotesThread extends java.lang.Thread { public NotesThread(); public NotesThread(Runnable t); public NotesThread(String name); public NotesThread(Runnable t, String name); public NotesThread(ThreadGroup group, String name); public NotesThread(ThreadGroup group, Runnable t, String name); public NotesThread(ThreadGroup group, Runnable t); public void initThread(); public void termThread(); public static void sinitThread(); public static void stermThread(); public final void run(); public void runNotes() throws NotesException; public void finalize(); public static void load(boolean debug) throws NotesException; }
例 関連項目