Class RetryHandler

java.lang.Object
nablarch.fw.handler.RetryHandler
All Implemented Interfaces:
Handler<Object,Object>

public class RetryHandler extends Object implements Handler<Object,Object>
リトライ可能な例外を捕捉した場合に後続ハンドラの処理をリトライするハンドラ。

Retryableインタフェースを実装した例外をリトライ可能な例外と判断する。

リトライ処理の制御はRetryHandler.RetryContextを実装したクラスに委譲する。 RetryHandler.RetryContextを実装したクラスはRetryHandler.RetryContextFactoryから取得するので、 本クラスを使用する場合はRetryHandler.RetryContextFactoryオブジェクトをプロパティに設定すること。

Author:
Kiyohito Itoh
  • Constructor Details

    • RetryHandler

      public RetryHandler()
  • Method Details

    • handle

      public Object handle(Object data, ExecutionContext context)
      入力データに対する処理を実行する。

      リトライ対象でない例外を捕捉した場合は、補足した例外を再送出する。
      リトライ可能な例外を捕捉した場合、かつリトライ上限を超えていない場合は 後続ハンドラの処理をリトライする。 リトライ可能な例外を捕捉した場合、かつリトライ上限を超えている場合は retryLimitExceededExitCodeプロパティと retryLimitExceededFailureCodeプロパティを使用して ProcessAbnormalEndを送出する。

      Specified by:
      handle in interface Handler<Object,Object>
      Parameters:
      data - 入力データ
      context - 実行コンテキスト
      Returns:
      処理結果データ
    • setDestroyReader

      public void setDestroyReader(boolean destroyReader)
      リトライ時にExecutionContext上に設定されたDataReaderを破棄するか否かを設定する。。

      本設定値にtrueを設定した場合、リトライ時にExecutionContext上に設定されたDataReaderを破棄(削除)する。 これにより、後続ハンドラでDataReaderが再生成される。

      Parameters:
      destroyReader - リトライ時にリーダを破棄するか否か
    • setRetryContextFactory

      public void setRetryContextFactory(RetryHandler.RetryContextFactory retryContextFactory)
      リトライコンテキストを生成するRetryHandler.RetryContextFactoryオブジェクトを設定する。
      Parameters:
      retryContextFactory - リトライコンテキストを生成するRetryHandler.RetryContextFactoryオブジェクト
    • setRetryLimitExceededExitCode

      public void setRetryLimitExceededExitCode(int retryLimitExceededExitCode)
      リトライ上限を超えた場合に使用する終了コード(プロセスを終了(System.exit(int))する際に設定する値)を設定する。
      Parameters:
      retryLimitExceededExitCode - リトライ上限を超えた場合に使用する終了コード(プロセスを終了(System.exit(int))する際に設定する値)
    • setRetryLimitExceededFailureCode

      public void setRetryLimitExceededFailureCode(String retryLimitExceededFailureCode)
      リトライ上限を超えた場合に使用する障害コードを設定する。
      Parameters:
      retryLimitExceededFailureCode - リトライ上限を超えた場合に使用する障害コード