public class LoopHandler extends TransactionEventCallback.Provider<java.lang.Object> implements Handler<java.lang.Object,Result>
ExecutionContext.hasNextData()により判断する。
また、本ハンドラではトランザクション制御もあわせて行う。
トランザクションは、指定間隔(setCommitInterval(int)毎にコミット処理を行う。
後続ハンドラから例外が送出された場合には、未コミットのトランザクションを全てロールバックし、例外を再送出する。
本ハンドラの事前ハンドラとして、DbConnectionManagementHandlerを登録すること。| コンストラクタと説明 |
|---|
LoopHandler() |
| 修飾子とタイプ | メソッドと説明 |
|---|---|
Result |
handle(java.lang.Object data,
ExecutionContext context)
入力データに対する処理を実行する。
|
static boolean |
isAboutToCommit(ExecutionContext ctx)
現在のリクエストループの業務アクション実行後にLoopHandlerによるコミットが行われるか否か。
|
LoopHandler |
setCommitInterval(int commitInterval)
コミット間隔を設定する。
|
LoopHandler |
setTransactionFactory(TransactionFactory transactionFactory)
トランザクションオブジェクトを取得するためのファクトリを設定する。
|
void |
setTransactionName(java.lang.String transactionName)
このハンドラが管理するトランザクションの、スレッドコンテキスト上での登録名を設定する。
|
boolean |
shouldStop(ExecutionContext context)
現在の処理終了後にループを止める場合にtrueを返す。
|
callAbnormalEndHandlers, callNormalEndHandlers, prepareListenerspublic Result handle(java.lang.Object data, ExecutionContext context)
public boolean shouldStop(ExecutionContext context)
context - 実行コンテキストpublic LoopHandler setTransactionFactory(TransactionFactory transactionFactory)
transactionFactory - トランザクションオブジェクトを取得するためのファクトリpublic void setTransactionName(java.lang.String transactionName)
デフォルトでは既定のトランザクション名
(TransactionContext.DEFAULT_TRANSACTION_CONTEXT_KEY)を使用する。
transactionName - データベース接続のスレッドコンテキスト上の登録名public LoopHandler setCommitInterval(int commitInterval)
commitInterval - コミット間隔public static final boolean isAboutToCommit(ExecutionContext ctx)
ctx - 実行コンテキスト