@Published(tag="architect") public class AsyncMessageSendAction extends BatchAction<SqlRow>
createStatement()
を参照
メッセージが正常に送信できた場合には、#transactionNormalEnd(nablarch.core.db.statement.SqlRow, nablarch.fw.ExecutionContext)にて
対象データのステータスを処理済みに更新する。
メッセージ送信時に例外が発生した場合には、#transactionAbnormalEnd(Throwable, nablarch.core.db.statement.SqlRow, nablarch.fw.ExecutionContext)にて
対象データのステータスをエラーに更新する。TransactionEventCallback.Provider<TData>
REQUEST_DATA_REQUEST_SCOPE_KEY
コンストラクタと説明 |
---|
AsyncMessageSendAction() |
修飾子とタイプ | メソッドと説明 |
---|---|
protected DataRecordFormatter |
createDataRecordFormatter()
データ部のフォーマッタ生成する。
|
protected java.lang.Object |
createFormInstance(java.util.Map<java.lang.String,?> inputData)
送信用一時テーブルを更新するためのFormオブジェクトを生成する。
|
protected java.util.Map<java.lang.String,java.lang.Object> |
createHeaderRecord(SqlRow inputData)
ヘッダデータを生成する。
|
protected DataRecordFormatter |
createHeaderRecordFormatter()
ヘッダ部のフォーマットを生成する。
|
DataReader<SqlRow> |
createReader(ExecutionContext ctx)
送信対象のデータを抽出するための
DatabaseRecordReader を生成する。 |
protected SqlPStatement |
createStatement()
インプットデータを抽出するための
SqlPStatement を生成する。 |
protected java.lang.String |
getFormatDir()
フォーマット定義ファイルの配置ディレクトリを示す論理名を取得する。
|
protected java.lang.String |
getHeaderFormatName()
ヘッダ部のフォーマット定義ファイル名を取得する。
|
protected java.lang.String |
getQueueName()
送信キュー名を取得する。
|
protected AsyncMessageSendActionSettings |
getSettings()
本アクションを実行するために必要となる設定値を保持するオブジェクトを取得する。
|
protected java.lang.String |
getSqlResource()
SQLリソース名称を取得する。
|
Result |
handle(SqlRow inputData,
ExecutionContext ctx)
入力データからヘッダ部及び業務データ部からなるメッセージオブジェクトを生成し、
送信処理(キューへのPUT)を行う。
|
protected void |
initialize(CommandLine command,
ExecutionContext context)
初期処理を行う。
|
void |
transactionAbnormalEnd(java.lang.Throwable e,
SqlRow inputData,
ExecutionContext ctx)
インプットテーブルの対象レコードのステータスをエラーに更新する。
|
void |
transactionNormalEnd(SqlRow inputData,
ExecutionContext ctx)
インプットテーブルの対象レコードのステータスを処理済みに更新する。
|
protected void |
updateStatus(SqlRow inputData,
java.lang.String sqlId)
ステータスを更新する。
|
error, errorInExecution, postExecution, preExecution, terminate, transactionFailure, transactionSuccess, writeErrorLog, writeFatalLog, writeLog
countByParameterizedSql, countByStatementSql, getParameterizedSqlStatement, getParameterizedSqlStatement, getSqlCStatement, getSqlPStatement, search
protected void initialize(CommandLine command, ExecutionContext context)
initialize
クラス内 BatchActionBase<SqlRow>
command
- 起動コマンドラインcontext
- 実行コンテキストpublic Result handle(SqlRow inputData, ExecutionContext ctx)
createHeaderRecord(nablarch.core.db.statement.SqlRow)
で生成する。getQueueName()
から取得する。public void transactionNormalEnd(SqlRow inputData, ExecutionContext ctx)
getSqlResource()
で取得した
SQLリソース内に記述されたSQL_ID=UPDATE_NORMAL_ENDを使用する。transactionNormalEnd
インタフェース内 TransactionEventCallback<SqlRow>
transactionNormalEnd
クラス内 BatchActionBase<SqlRow>
inputData
- 入力データctx
- 実行コンテキストpublic void transactionAbnormalEnd(java.lang.Throwable e, SqlRow inputData, ExecutionContext ctx)
getSqlResource()
で取得した
SQLリソース内に記述されたSQL_ID=UPDATE_ABNORMAL_ENDを使用する。transactionAbnormalEnd
インタフェース内 TransactionEventCallback<SqlRow>
transactionAbnormalEnd
クラス内 BatchActionBase<SqlRow>
e
- 発生したエラーinputData
- 入力データctx
- 実行コンテキストprotected void updateStatus(SqlRow inputData, java.lang.String sqlId)
inputData
- インプットデータsqlId
- SQL_IDpublic DataReader<SqlRow> createReader(ExecutionContext ctx)
DatabaseRecordReader
を生成する。
DatabaseRecordReader
生成時に指定するSqlPStatement
は、
#createStatement()により生成する。createReader
インタフェース内 DataReaderFactory<SqlRow>
createReader
クラス内 BatchAction<SqlRow>
ctx
- 実行コンテキストprotected SqlPStatement createStatement()
SqlPStatement
を生成する。
SqlPStatement
を生成するためのSQLは、下記ルールに従い取得する。
getSqlResource()
の実装に準拠するSqlPStatement
protected java.lang.String getSqlResource()
AsyncMessageSendActionSettings.getSqlFilePackage()
protected AsyncMessageSendActionSettings getSettings()
SystemRepository
)から設定オブジェクトを取得する。protected DataRecordFormatter createHeaderRecordFormatter()
getHeaderFormatName()
より取得する。protected java.lang.String getHeaderFormatName()
AsyncMessageSendActionSettings.getHeaderFormatName()
protected java.util.Map<java.lang.String,java.lang.Object> createHeaderRecord(SqlRow inputData)
handle(nablarch.core.db.statement.SqlRow, nablarch.fw.ExecutionContext)
のインプットデータから取得する。
inputData
- 入力データprotected DataRecordFormatter createDataRecordFormatter()
protected java.lang.String getQueueName()
protected java.lang.String getFormatDir()
protected java.lang.Object createFormInstance(java.util.Map<java.lang.String,?> inputData)
inputData
- Formインスタンスを生成するためのインプットデータ