jp.terasoluna.fw.batch.restart
クラス JobRestartTableHandler

java.lang.Object
  上位を拡張 jp.terasoluna.fw.batch.restart.JobRestartTableHandler

public class JobRestartTableHandler
extends java.lang.Object

リスタート情報取得・更新用クラス。

  • jobRestart-sqlMap.xmlに定義された以下のSQL文を実行する。
  • 
             <!-- リスタート情報更新(更新) -->
             <update id="UPDATE_JOB_RESTART_POINT" parameterClass="jobRestartInfo">
                 UPDATE RESTART_CONTROL SET 
                     RESTART_POINT = #restartPoint# , 
                     JOB_CONTEXT   = #jobContext#, 
                     STATE         = #state#, 
                     UPDATE_TIME   = current_timestamp 
                 WHERE REQUEST_NO  = #requestNo# 
                 AND  JOB_ID       = #jobId#  
                 AND  PARTITION_NO = #partitionNo#
             </update>
         
             <!-- リスタート情報更新(新規追加) -->
             <insert id="INSERT_JOB_RESTART_POINT" parameterClass="jobRestartInfo">
                 INSERT INTO RESTART_CONTROL 
                       (REQUEST_NO   , JOB_ID   , PARTITION_NO   , PARTITION_KEY   , RESTART_POINT   , JOB_CONTEXT   , STATE , UPDATE_TIME       , REGISTER_TIME) 
                 VALUES(#requestNo# , #jobId# , #partitionNo# , #partitionKey# , #restartPoint# , #jobContext# , #state#   , current_timestamp , current_timestamp) 
             </insert>
         
          ※リスタート情報クリア用SQLは以下の二つから選択することが出来る。
          ※デフォルトSQLは対象データ削除である。
             <!-- リスタート情報クリア(処理完了後対象データの状態更新) -->
             <update id="UPDATE_JOB_RESTART_CLEAR" parameterClass="jobRestartInfo">
                 UPDATE RESTART_CONTROL SET 
                     STATE       = #state# , 
                     UPDATE_TIME = current_timestamp 
                 WHERE REQUEST_NO   = #requestNo# 
                 AND   JOB_ID       = #jobId#  
                 AND   PARTITION_NO = #partitionNo#
             </update>
             <!-- リスタート情報クリア(処理完了後対象データ削除) -->
             <delete id="UPDATE_JOB_RESTART_CLEAR" parameterClass="jobRestartInfo">
                 DELETE FROM RESTART_CONTROL 
                 WHERE REQUEST_NO   = #requestNo# 
                 AND   JOB_ID       = #jobId#  
                 AND   PARTITION_NO = #partitionNo#
             </delete>
         
             <!-- リスタート依頼情報取得 -->
             <select id="SELECT_JOB_RESTART_INFO" parameterClass="jobRestartInfo" resultClass="jobRestartInfo">
                 SELECT REQUEST_NO AS requestNo, 
                        JOB_ID as jobId, 
                        PARTITION_KEY as partitionKey, 
                        RESTART_POINT as restartPoint, 
                        JOB_CONTEXT as jobContext, 
                        STATE as state, 
                        UPDATE_TIME,
                        REGISTER_TIME as registerTime 
                 FROM RESTART_CONTROL 
                 WHERE REQUEST_NO    = #requestNo# 
                 AND   JOB_ID        = #jobId#  
                 AND   PARTITION_NO  = #partitionNo#
                 AND   STATE         = #state#
             </select>
     


    フィールドの概要
    private static java.lang.String INSERT_JOB_RESTART_POINT
              リスタート情報更新(新規追加)用SQLキー。
    private static java.lang.String JOB_END_STATE
              リスタート処理状況:処理完了。
    private static java.lang.String JOB_START_STATE
              リスタート処理状況:起動中。
    private  JobRestartInfoFactory jobRestartInfoFactory
              ジョブリスタート情報格納用Object。
    private  QueryDAO queryDAO
              SELECT用DAO。
    private static java.lang.String UPDATE_JOB_RESTART_POINT
              リスタート情報更新(更新)用SQLキー。
    private  UpdateDAO updateDAO
              UPDATE用DAO。
     
    コンストラクタの概要
    JobRestartTableHandler()
               
     
    メソッドの概要
    protected  JobContext changeByteToJobContext(byte[] obj)
              byte配列をジョブコンテキストオブジェクトに変換する。
    protected  byte[] changeJobContextToByte(JobContext jobContext)
              ジョブコンテキストオブジェクトをbyte配列に変換する。
     JobContext getRestartJobContext(JobContext jobContext, JobStatus jobStatus)
              ジョブコンテキスト復元処理。
    protected  void initJobRestartInfo(JobRestartInfo jobRestartInfo, JobContext jobContext, JobStatus jobStatus)
              ジョブ処理状況、ジョブコンテキストのデータを更新対象のリスタート情報へ 設定する。
    private  int insertRestartPoint(JobRestartInfo jobRestartInfo)
              リスタート情報の「起動状況」更新用メソッド。
     void registerRestartPoint(JobContext jobContext, JobStatus jobStatus)
              リスタートポイント更新処理。
     int restartPointClear(JobStatus jobStatus, java.lang.String sqlkey)
              リスタート情報のクリア処理用メソッド(レコード更新)。
     void setJobRestartInfoFactory(JobRestartInfoFactory jobRestartInfoFactory)
              ジョブリスタート情報格納用実装クラスのファクトリを設定する。
     void setQueryDAO(QueryDAO queryDAO)
              SELECT用DAOのセッター。
     void setUpdateDAO(UpdateDAO updateDAO)
              更新用DAOのセッター。
    private  int updateRestartPoint(JobRestartInfo jobRestartInfo)
              リスタート情報の「起動状況」更新用メソッド。
     
    クラス java.lang.Object から継承されたメソッド
    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
     

    フィールドの詳細

    JOB_END_STATE

    private static final java.lang.String JOB_END_STATE
    リスタート処理状況:処理完了。

    関連項目:
    定数フィールド値

    JOB_START_STATE

    private static final java.lang.String JOB_START_STATE
    リスタート処理状況:起動中。

    関連項目:
    定数フィールド値

    INSERT_JOB_RESTART_POINT

    private static final java.lang.String INSERT_JOB_RESTART_POINT
    リスタート情報更新(新規追加)用SQLキー。

    関連項目:
    定数フィールド値

    UPDATE_JOB_RESTART_POINT

    private static final java.lang.String UPDATE_JOB_RESTART_POINT
    リスタート情報更新(更新)用SQLキー。

    関連項目:
    定数フィールド値

    jobRestartInfoFactory

    private JobRestartInfoFactory jobRestartInfoFactory
    ジョブリスタート情報格納用Object。 SpringのDI機能を用いて設定する。


    queryDAO

    private QueryDAO queryDAO
    SELECT用DAO。 SpringのDI機能を用いて設定する。


    updateDAO

    private UpdateDAO updateDAO
    UPDATE用DAO。 SpringのDI機能を用いて設定する。

    コンストラクタの詳細

    JobRestartTableHandler

    public JobRestartTableHandler()
    メソッドの詳細

    getRestartJobContext

    public JobContext getRestartJobContext(JobContext jobContext,
                                           JobStatus jobStatus)
    ジョブコンテキスト復元処理。

    パラメータ:
    jobContext - ジョブコンテキスト
    jobStatus - ジョブステータス
    戻り値:
    復元されたジョブコンテキスト

    registerRestartPoint

    public void registerRestartPoint(JobContext jobContext,
                                     JobStatus jobStatus)
    リスタートポイント更新処理。

    パラメータ:
    jobStatus - ジョブの状況
    jobContext - ジョブコンテキスト

    setJobRestartInfoFactory

    public void setJobRestartInfoFactory(JobRestartInfoFactory jobRestartInfoFactory)
    ジョブリスタート情報格納用実装クラスのファクトリを設定する。

    パラメータ:
    jobRestartInfoFactory - ジョブリスタート情報格納用クラスのファクトリ

    setQueryDAO

    public void setQueryDAO(QueryDAO queryDAO)
    SELECT用DAOのセッター。

    パラメータ:
    queryDAO - SELECT用DAO

    setUpdateDAO

    public void setUpdateDAO(UpdateDAO updateDAO)
    更新用DAOのセッター。

    パラメータ:
    updateDAO - 更新用DAO

    restartPointClear

    public int restartPointClear(JobStatus jobStatus,
                                 java.lang.String sqlkey)
    リスタート情報のクリア処理用メソッド(レコード更新)。

    パラメータ:
    jobStatus - ジョブ処理状況
    sqlkey - リスタート情報のクリア用SQLキー
    戻り値:
    更新されたレコード数。

    initJobRestartInfo

    protected void initJobRestartInfo(JobRestartInfo jobRestartInfo,
                                      JobContext jobContext,
                                      JobStatus jobStatus)
    ジョブ処理状況、ジョブコンテキストのデータを更新対象のリスタート情報へ 設定する。
    以下の情報を設定する。
    ジョブリクエスト番号、ジョブID、パーティション番号、 パーティションキー、 ジョブコンテキスト(byte[]に変換し設定)

    パラメータ:
    jobRestartInfo - 更新対象のリスタート情報
    jobContext - ジョブコンテキスト
    jobStatus - ジョブ処理状況

    changeJobContextToByte

    protected byte[] changeJobContextToByte(JobContext jobContext)
    ジョブコンテキストオブジェクトをbyte配列に変換する。

    パラメータ:
    jobContext - ジョブコンテキスト
    戻り値:
    ジョブコンテキストのバイト配列。

    changeByteToJobContext

    protected JobContext changeByteToJobContext(byte[] obj)
    byte配列をジョブコンテキストオブジェクトに変換する。

    パラメータ:
    obj - 変換対象のObject
    戻り値:
    ジョブコンテキスト。

    insertRestartPoint

    private int insertRestartPoint(JobRestartInfo jobRestartInfo)
    リスタート情報の「起動状況」更新用メソッド。

    パラメータ:
    jobRestartInfo - 更新対象のリスタート情報
    戻り値:
    int 更新されたレコード数。

    updateRestartPoint

    private int updateRestartPoint(JobRestartInfo jobRestartInfo)
    リスタート情報の「起動状況」更新用メソッド。

    パラメータ:
    jobRestartInfo - 更新対象のリスタート情報
    戻り値:
    int 更新されたレコード数。