クラス ExecThreadManager


  • public final class ExecThreadManager
    extends Object
    帳票処理を行う各スレッドを管理するクラスです。 各スレッドは、内部的にプールされます。 スレッドのIDはOOoQueue#getThreadId()で返される値です。 スレッドが生成されるタイミングは、そのIDで初めてスタック要求が来た(insertQueue()が呼ばれた)時です。 指定のスレッドを終了するには、funishThread( key )を呼び出します。 全てのスレッドを終了するには、funishAllThreads()を呼び出します。 現時点での実装では、生成されたスレッドに対しての監視は行っていません。 これは、特定のスレッドがフリーズした際、外部から強制終了を行おうとすると、 監視スレッドもフリーズしてしまう問題があるためです。 (但し、1つのsoffice.binのプロセスに対してシリアルに対して処理している限りでは、 フリーズ問題は発生しないようです)
    機能分類
    帳票システム
    バージョン
    4.0
    作成者
    Hiroki.Nakamura
    導入されたバージョン:
    JDK1.6
    • メソッドの詳細

      • insertQueue

        public static void insertQueue​(ExecQueue queue)
        キューを該当するスレッドにスタックする。
        パラメータ:
        queue - ExecQueueオブジェクト
        変更履歴:
        4.3.0.0 (2008/07/15) スレッドIDにシステムIDを付加
      • insertQueueOnNewThread

        public static void insertQueueOnNewThread​(ExecQueue queue)
        キューを該当するスレッドにスタックする このメソッドでは、既に同じスレッドが存在するかどうかをチェックせずに必ず 新しいスレッドを生成し、キューを処理します。 また、処理が完了した後、そのスレッドは、WAITすることなく終了します。
        パラメータ:
        queue - ExecQueueオブジェクト
        変更履歴:
        5.1.6.0 (2010/05/01) 新規作成
      • finishAllThreads

        public static void finishAllThreads()
        全てのスレッドを終了します。 ※ REP21/result2.jsp で、使用。
        変更履歴:
        6.4.3.3 (2016/03/04) Map#forEach で対応する。
      • finishThread

        public static void finishThread​(String threadId)
        指定のスレッドを終了します。 ※ REP21/entry.jsp で、使用。
        パラメータ:
        threadId - スレッドID
      • getThreadInfo

        public static ConcurrentMap<String,​String> getThreadInfo()
        スレッド情報のマップを返します。 ※ REP21/result2.jsp で、使用。
        戻り値:
        スレッド情報のマップ
        変更履歴:
        6.4.3.1 (2016/02/12) PMD refactoring. HashMap → ConcurrentHashMap に置き換え。, 6.4.3.3 (2016/03/04) 戻すMapが、not null制限つきであることを示すため、ConcurrentMap に置き換えます。, 6.4.3.3 (2016/03/04) Map#forEach で対応する。
      • setDebug

        public static void setDebug​(boolean flag)
        デバッグフラグの設定。
        パラメータ:
        flag - デバッグフラグ [true:デバッグ/false:通常]
        変更履歴:
        4.3.0.0 (2008/07/15) デバッグ追加