JAVA/CORBA クラス


NotesThread クラス

NotesThread クラスは java.lang.Thread から派生して、Lotus Notes/Domino 用の特別な初期化コードや終了コードを含んでいます。このような Thread の派生は、Lotus Notes/Domino クラスに対してローカルに呼び出しを行う Java プログラムを実行するために必要です。これは、リモート呼び出しには必要ありません。ローカル呼び出しとリモート呼び出しの両方を行うアプリケーションは、静的メソッド sinitThread と stermThread をいつ使用するかを動的に判断できます。リモート呼び出しは、ローカルスレッドの実行中に行うことができます。ただし、あるセッションで取得したオブジェクトを、他のセッションへの呼び出しに使用してはいけません。AppletBase や AgentBase から派生したスレッドやエージェントを起動しないアプレットは、リモート呼び出し用とローカル呼び出し用に分けてコーディングする必要はありません。そのための機能がベースコードで提供されているためです。

継承を通してスレッドを実行する

継承を通してスレッドを実行するには、Thread の代わりに NotesThread から派生させ、run の代わりに runNotes メソッドを含めます。


ほかのスレッドと同様に Lotus Domino スレッドを開始します。
Runnable インターフェースを通してスレッドを実行する

Runnable インターフェースを通してスレッドを実行するには、Runnable を実装して、スレッドを使用するほかのクラスの場合と同じように run メソッドを含めます。


「implements Runnable」と「extends NotesThread」のどちらを指定してもクラスが動作するように、run メソッドと runNotes メソッドの両方を含めることもできます。
静的メソッドを通してスレッドを実行する

静的メソッドを通してスレッドを実行するには、sinitThread() を呼び出してスレッドを初期化し、stermThread() でスレッドを終了します。sinitThread() への各呼び出しに対して、stermThread() を 1 回だけ呼び出します。stermThread は finally ブロックに置くことをお勧めします。


マルチスレッドの問題

マルチスレッドは、必要な場合を除いて使用を避けてください。必要な場合とは、ファイル入出力処理中に、Web の要求が処理されるような場合です。次のガイドラインを参考にしてください。


NotesThread の仕様

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;
}


関連項目