@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, writeLogcountByParameterizedSql, countByStatementSql, getParameterizedSqlStatement, getParameterizedSqlStatement, getSqlCStatement, getSqlPStatement, searchprotected 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()の実装に準拠するSqlPStatementprotected 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インスタンスを生成するためのインプットデータ