com.nec.webotx.batch.util
クラス BSDBRetryStepListener

java.lang.Object
  上位を拡張 com.nec.webotx.batch.util.AbstractDBRetry
      上位を拡張 com.nec.webotx.batch.util.BSDBRetryStepListener
すべての実装されたインタフェース:
StepExecutionListener, StepListener, InitializingBean, ApplicationContextAware, Ordered

public class BSDBRetryStepListener
extends AbstractDBRetry
implements StepExecutionListener, Ordered, ApplicationContextAware

DB接続リトライ ステップリスナー

Stepの実行中に発生した例外がリトライ可能な例外である場合に、 DBの正常性確認を実施後にステップを再実行させるためのExitStatusを返却するStepExecutionListenerです。

以下の項目が設定可能です。

プロパティ名デフォルト値説明
retryInterval60000DB障害時の接続確認間隔 [ミリ秒]
retryLimit10DB障害時の接続確認上限 [回]
retryableExceptionClassesorg.springframework.dao.
DataAccessResourceFailureException
リトライ可能例外のリスト
validationQuerycommitDB接続の正常性を確認するためのSQL
order0StepExecutionListenerの順序
backoffPolicy retryIntervalに応じたBackoffPolicyDB接続のリトライ間隔を調整するためのBackoffPolicy
retryableExceptionClassifierretryableExceptionClassesに指定した例外かどうかを判定するClassifierリトライ可能な例外であるかを判定するClassifier
shouldRetryStatusSHOULD_RETRYステップを再実行可能な場合に返却するExitStatus
retryOverStatusRETRY_OVERDB接続リトライに失敗した場合に返却するExitStatus
couldNotRetryStatusCOULD_NOT_RETRYステップを再実行できない可能性に陥っておりリトライ不可能な場合に返却するExitStatus
shouldRetryLimit0 (無制限)SHOULD_RETRYによってステップを再実行させる回数
validationTargetExcludes - DB接続リトライ対象のなかから除外するDataSourceのBean名
failEarlyOnCouldNotRetryfalseリトライ不可能な例外が発生している場合に、ジョブを即時にエラー終了させます。

下記のようなBeanを定義し、ステップのリスナに組み込んで利用します。

 <bean id="dbRetryStepListener"
       class="com.nec.webotx.batch.util.BSDBRetryStepListener">
     <property name="retryLimit" value="15"/>
     <property name="retryInterval" value="60000"/>
     <property name="retryableExceptionClasses">
         <list>
             <value>org.springframework.jdbc.CannotGetJdbcConnectionException</value>
             <value>org.springframework.dao.DataAccessResourceFailureException</value>
         </list>
     </property>
 </bean>
 

バージョン:
Batch Server V8.41.01

入れ子のクラスの概要
protected static class BSDBRetryStepListener.ShouldRetryCounter
           
 
クラス com.nec.webotx.batch.util.AbstractDBRetry から継承された入れ子のクラス/インタフェース
AbstractDBRetry.CouldNotRertyError, AbstractDBRetry.DBRetryContext, AbstractDBRetry.DBRetryInterruptedException, AbstractDBRetry.DBRetryOverException
 
フィールドの概要
static String DATASOURCE_BEAN_NAME_LIST_BEAN
          ジョブ実行リソースコンテキスト内で定義されたDataSourceのBean名一覧のListのBean名
 
クラス com.nec.webotx.batch.util.AbstractDBRetry から継承されたフィールド
executionLog, message
 
インタフェース org.springframework.core.Ordered から継承されたフィールド
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
 
コンストラクタの概要
BSDBRetryStepListener()
           
 
メソッドの概要
 void afterPropertiesSet()
           
 ExitStatus afterStep(StepExecution stepExecution)
           
 void beforeStep(StepExecution currentStepExecution)
           
 int getOrder()
           
protected  boolean isRetryableFailures(List<Throwable> failures)
           
 void setApplicationContext(ApplicationContext applicationContext)
           
 void setCouldNotRetryStatus(String couldNotRetryStatus)
           
 void setFailEarlyOnCouldNotRetry(boolean failEarlyOnCouldNotRetry)
           
 void setOrder(int order)
           
 void setRetryableExceptionClassifier(Classifier<Throwable,Boolean> retryableExceptionClassifier)
           
 void setRetryOverStatus(String retryOverStatus)
           
 void setShouldRetryLimit(int shouldRetryLimit)
           
 void setShouldRetryStatus(String shouldRetryStatus)
           
 void setValidationTargetExcludes(List<String> validatitonTargetExcludes)
           
 void setValidationTargetIncludes(List<String> validationTargetIncludes)
          DB接続の正常性確認の対象にするデータソースのBean名を指定します。
protected  boolean woJdbcRetryable(Throwable t)
           
 
クラス com.nec.webotx.batch.util.AbstractDBRetry から継承されたメソッド
debugLog, doRetry, endRetryContext, getBackoffPolicy, getRetryableExceptionClasses, getRetryContext, getRetryInterval, getRetryLimit, getTargetDataSources, getValidationQuery, infoLog, setBackoffPolicy, setRetryableExceptionClasses, setRetryInterval, setRetryLimit, setTargetDataSources, setValidationQuery, startRetryContext, traceLog, validateConnection, validateDataSource, warnLog
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

DATASOURCE_BEAN_NAME_LIST_BEAN

public static final String DATASOURCE_BEAN_NAME_LIST_BEAN
ジョブ実行リソースコンテキスト内で定義されたDataSourceのBean名一覧のListのBean名

関連項目:
定数フィールド値
コンストラクタの詳細

BSDBRetryStepListener

public BSDBRetryStepListener()
メソッドの詳細

beforeStep

public void beforeStep(StepExecution currentStepExecution)
定義:
インタフェース StepExecutionListener 内の beforeStep

afterStep

public ExitStatus afterStep(StepExecution stepExecution)
定義:
インタフェース StepExecutionListener 内の afterStep

isRetryableFailures

protected boolean isRetryableFailures(List<Throwable> failures)

woJdbcRetryable

protected boolean woJdbcRetryable(Throwable t)

getOrder

public int getOrder()
定義:
インタフェース Ordered 内の getOrder

setOrder

public void setOrder(int order)
パラメータ:
order - StepExecutionListenerの順序を指定します。デフォルトは0

setRetryableExceptionClassifier

public void setRetryableExceptionClassifier(Classifier<Throwable,Boolean> retryableExceptionClassifier)
パラメータ:
retryableExceptionClassifier - リトライ対象例外の判定を行うClassifier

setShouldRetryStatus

public void setShouldRetryStatus(String shouldRetryStatus)
パラメータ:
shouldRetryStatus - ステップを再実行できる場合に返すExitStatusの文字列を指定します。デフォルトは"SHOULD_RETRY"。

setRetryOverStatus

public void setRetryOverStatus(String retryOverStatus)
パラメータ:
retryOverStatus - DB接続のリトライに失敗した場合に返すExitStatusの文字列を指定します。デフォルトは"RETRY_OVER"。

setCouldNotRetryStatus

public void setCouldNotRetryStatus(String couldNotRetryStatus)
パラメータ:
couldNotRetryStatus - ステップを再実行すべきでない場合に返すExitStatusの文字列を指定します。デフォルトは"COULD_NOT_RETRY"。

setShouldRetryLimit

public void setShouldRetryLimit(int shouldRetryLimit)
パラメータ:
shouldRetryLimit - ステップを再実行する上限回数を指定します。デフォルトは0(無制限)

setValidationTargetExcludes

public void setValidationTargetExcludes(List<String> validatitonTargetExcludes)
パラメータ:
validatitonTargetExcludes - DB接続の正常性確認の対象外にするデータソースのBean名を指定します。

setValidationTargetIncludes

public void setValidationTargetIncludes(List<String> validationTargetIncludes)
DB接続の正常性確認の対象にするデータソースのBean名を指定します。

下記の順に正常性確認対象を絞り込みます。

  1. コンテキスト内に定義されている全てのデータソースが対象
  2. validationTargetIncludesが指定されていると、上記の全対象の中からvalidationTargetIncludesが指定されたデータソースのみが対象になる
    このとき、validationTargetIncludesに存在しないデータソースを指定するとBean初期化時にエラーとなる。
  3. 上記絞り込まれた対象を、さらにvalidatitonTargetExcludesで絞り込む。

パラメータ:
validationTargetIncludes - DB接続の正常性確認の対象にするデータソースのBean名を指定します。
導入されたバージョン:
Batch Server V8.41.02

setFailEarlyOnCouldNotRetry

public void setFailEarlyOnCouldNotRetry(boolean failEarlyOnCouldNotRetry)
パラメータ:
failEarlyOnCouldNotRetry - リトライ不可能な例外が発生している場合に、ジョブを即時にエラー終了させます。

setApplicationContext

public void setApplicationContext(ApplicationContext applicationContext)
                           throws BeansException
定義:
インタフェース ApplicationContextAware 内の setApplicationContext
例外:
BeansException

afterPropertiesSet

public void afterPropertiesSet()
                        throws Exception
定義:
インタフェース InitializingBean 内の afterPropertiesSet
オーバーライド:
クラス AbstractDBRetry 内の afterPropertiesSet
例外:
Exception


Copyright © 2012 NEC Corporation. All Rights Reserved.