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