TERASOLUNA Batch Framework for Java (5.x) Development Guideline - version 5.5.0.RELEASE, 2023-3-31, commit-id:e772ac8
> INDEX
更新日付 更新箇所 変更内容

2023-3-31

-

5.5.0 RELEASE 版公開

全般

記載内容の修正
・TERASOLUNA Batch Framework for Java (5.x)のバージョン表記を5.5.0.RELEASEに変更
・Spring Framework 6.0.3のJakarta EE 9対応に伴い、実装例のパッケージ名をjavax.xxxからjakarta.xxxに修正
・Spring Framework 6.0.3のベースラインJDKバージョンが17となったことに伴い、JDKバージョンを17に更新(あわせて、以前のバージョンである8、11を削除)
・Spring boot dependencies 3.0.1となったことに伴い、writeメソッドの引数をList型からChunk型に修正
・JavaConfigに関するコード例、説明を追加し、タブを用いてXMLConfigの説明と併記
・ガイドラインの誤記(タイプミスや単純な記述ミスなど)や表記揺れの修正
・チュートリアルで使用した、DBeaverをH2 Consoleに変更

TERASOLUNA Batch Framework for Java (5.x)のスタック

記載内容の修正
・利用するOSSのバージョン一覧をSpring Boot Dependencies 3.0.1.RELEASEに準じて更新

Spring Batchのアーキテクチャ

記載内容の修正
・メタデータテーブル(BATCH_JOB_EXECUTION_PARAMS)のカラム名の変更に伴う修正

バッチアプリケーションの開発

記載内容の修正
・JavaConfigがデフォルトとなる旨を追記

非同期実行(DBポーリング)

記載内容の修正
・Spring Batchが提供するSimpleJobOperatorの仕様が変更されたことに伴い、ジョブパラメータ区切り文字の説明の修正とWarningの追加

非同期実行(Webコンテナ)

記載内容の修正
・Spring Batchが提供するSimpleJobOperatorの仕様が変更されたことに伴い、JobControllerの実装例を修正

ジョブの起動パラメータ

記載内容の修正
・パラメータ変換クラスの具象クラス(JsrJobParametersConverter)の廃止にともなう修正

非同期実行(DBポーリング)

記載内容の修正
・JavaConfigで、ジョブ定義ファイルでプロパティ値を参照する場合、<context:property-placeholder>タグを記載する旨追記
・AsyncBatchDaemonの引数なし起動時の挙動、引数の指定方法を修正

ファイルアクセス

記載内容の修正
・ItemReader/ItemWriterのデフォルトエンコーディングがUTF-8に変更されたことに伴う修正

How to use

記載内容の修正
SHORT_CONTEXTカラムに格納される値の形式の変更に伴う修正 ・JobExecutionStepExecutionのtimestampの型が変更されたことに伴う修正

チュートリアル

記載内容の修正
・検証環境のバージョンを更新

2022-3-31

-

5.4.1 RELEASE 版公開

全般

記載内容の修正
・ガイドラインの誤記(タイプミスや単純な記述ミスなど)や表記揺れの修正
・HTTPS対応による外部リンクへのURLを修正 (管理ID#342)

TERASOLUNA Batch Framework for Java (5.x)のスタック

記載内容の修正
・利用するOSSのバージョン一覧をSpring Boot Dependencies 2.6.1.RELEASEに準じて更新 (管理ID#330)
記載内容の追加
CVE-2021-42550に関する説明及び注意点を追加 (管理ID#339)

バッチアプリケーションの開発

記載内容の修正
・Mavenプロファイルの修正に伴いpom.xmlの記述例を変更 (管理ID#293)

タスクレットモデルジョブの作成

記載内容の修正
・一部のBean定義例のコンポーネントスキャン範囲の誤りを修正 (管理ID#261)

データベースアクセス

記載内容の修正
・MyBatisBatchItemWriterをチャンクモデルで利用する実装例と説明を修正 (管理ID#281)
・MyBatisCursorItemReaderで利用されるMapperインタフェースのメソッドの戻り値を修正 (管理ID#257)
・「出力」の目次において「Mapperインタフェースのチャンクモデルでの利用方法」へのリンクを削除し、説明を修正 (管理ID#340)

ファイルアクセス

記載内容の追加
・入力ファイル読み込みの設定例にXML関連ライブラリの依存定義を追加 (管理ID#229)
・出力ファイル書き出しの設定例にXML関連ライブラリの依存定義を追加 (管理ID#229)

入力チェック

記載内容の追加
・エラーメッセージの設定について、TERASOLUNA Server 5.xとの違いを追記(管理ID#317)

ジョブの管理

記載内容の修正
・終了コードのマッピング定義の誤りと不適切な実装例を修正 (管理ID#277,管理ID#343)

並列処理と多重処理

記載内容の削除
・Multi Thread Stepの非推奨事項の説明における不要な記載を削除 (管理ID#58)

チュートリアル

記載内容の修正
・検証環境のバージョンを更新 (管理ID#350)
・DBeaverのインストールおよびデータベース接続設定の手順を修正 (管理ID#349)

2021-3-31

-

5.4.0 RELEASE 版公開

全般

記載内容の修正
・ガイドラインの誤記(タイプミスや単純な記述ミスなど)や表記揺れの修正

TERASOLUNA Batch Framework for Java (5.x)のスタック

記載内容の修正
・利用するOSSのバージョン一覧をSpring Boot Dependencies 2.4.1.RELEASEに準じて更新 (管理ID#138)
・Spring Batchのjavaxコンポーネントからjakartaコンポーネントへのアップグレードに準じて更新 (管理ID#35)
・MyBatis、MyBatis-Springのバージョンを更新 (管理ID#116)

Spring Batchのアーキテクチャ

記載内容の追加
・チャンクモデルの代表的な具象クラスの一覧を更新 (管理ID#33)

プロジェクトの構成

記載内容の追加
・一部セクション構成を変更(管理ID#31)
・コンポーネントのスキャン範囲について説明を追記 (管理ID#22)

MyBatis-Springの設定

記載内容の修正
・設定例を一部修正 (管理ID#22)
記載内容の追加
・MyBatisのMapper XMLで共通設定をした場合の性能面での弊害についてWarningを追加 (管理ID#22)

Mapperインタフェース(出力)

記載内容の修正
・ItemProcessorでの制約に関する記載を修正 (管理ID#87)

XMLファイル

記載内容の修正
・Warning(Spring Batchのバージョンアップに伴うエンコーディングの仕様変更)の記載を一部変更 (管理ID#31)
記載内容の追加
・入出力におけるエンコーディングの仕様について注意点を追記 (管理ID#31)
・StaxEventItemWriterで新たに追加されたstandalone属性の説明を追加 (管理ID#32)

Spring Batchが提供する機能

記載内容の追加
・Spring Batchのバージョンアップに伴いMap-based JobRepository/JobExplorerが非推奨になったためWarningを追記 (管理ID#105)
・Spring Batchのバージョンアップに伴うJobRepositoryの性能問題について追記 (管理ID#193)

データベースアクセスでデータ入出力を行うジョブ

記載内容の修正
・ジョブの動作を説明するシーケンス図の補足説明を修正(管理ID#108)

DBeaverのデータベース接続設定

記載内容の修正
・チュートリアル動作確認環境と環境構築手順を修正(管理ID#184)

2020-6-30

-

5.3.0 RELEASE 版公開

全般

記載内容の修正
・ガイドラインの誤記(タイプミスや単純な記述ミスなど)や表記揺れの修正
・図表に「図」「表」を付加したキャプションを付加
・一部セクション構成を変更(管理ID#1077)
・HTTPS対応による外部リンクへのURLを修正
・HTTPS対応によるSpringのXSDファイル内のURLを修正 (管理ID#1115)
・SpringのIssueがJIRAからGithubへ移行したことによるURL修正

はじめに

記載内容の修正
・書籍のリンクを修正 (管理ID#1119)

TERASOLUNA Batch Framework for Java (5.x)のスタック

記載内容の修正
・利用するOSSのバージョン一覧をSpring Boot Dependencies 2.2.4.RELEASEに準じて更新 (管理ID#1102)

記載内容の追加
・構成要素に同期実行を追記 (管理ID#776)

バッチアプリケーションの開発

記載内容の追加
・アプリケーション実行例としてログを追記 (管理ID#636)

ジョブの起動パラメータ

記載内容の修正
・Stepスコープに関する注釈を修正 (管理ID#667)

非同期実行(DBポーリング)

記載内容の追加
・job-await-termination-secondsの説明を追加 (管理ID#917)

ファイルアクセス

記載内容の修正
・マルチフォーマットファイルの正規表現をパターンマッチに修正 (管理ID#941)

並列処理と多重処理

記載内容の修正
・Spring Batchの多重処理における用語変更(Master/Slave→Manager/Worker)に対応 (管理ID#1093,管理ID#1121)
・MultiResourcePartitionerの実装例を修正 (管理ID#1107)

チュートリアル

記載内容の修正
・検証環境のバージョン更新 (管理ID#1110)
・データ参照ツールの変更(管理ID#1113)
・会員情報確認方法の誤記を修正(管理ID#1117) ・はじめにの誤記・表記揺れの修正および記載内容の改善(管理ID#580)
・作成するアプリケーションの説明の誤記・表記揺れの修正および記載内容の改善(管理ID#582)
・環境構築の誤記・表記揺れの修正および記載内容の改善(管理ID#584)
・データベースアクセスでデータ入出力を行うジョブの誤記・表記揺れの修正および記載内容の改善(管理ID#585)
・ファイルアクセスでデータ入出力を行うジョブの誤記・表記揺れの修正および記載内容の改善(管理ID#586)
・入力データの妥当性検証を行うジョブの誤記・表記揺れの修正および記載内容の改善(管理ID#587)
・ChunkListenerで例外ハンドリングを行うジョブの誤記・表記揺れの修正および記載内容の改善(管理ID#588)
・try-catchで例外ハンドリングを行うジョブの誤記・表記揺れの修正および記載内容の改善(管理ID#589)
・非同期実行方式のジョブの誤記・表記揺れの修正および記載内容の改善(管理ID#590)

2019-5-31

-

5.2.1 RELEASE 版公開

全般

記載内容の修正
・ガイドラインの誤記(タイプミスや単純な記述ミスなど)や表記揺れの修正
・コマンド例のUnixコードについて、プロンプト「$」を付与するよう修正 (管理ID#614)

はじめに

記載内容の修正
・HTML版のインデックスページを一つにまとめるように修正 (管理ID#623)

導入

記載内容の修正
・「テスト済み環境」のリンク切れを修正 (管理ID#646)
・参考書籍であるPro Springのリンクを5版のものに更新 (管理ID#843)

記載内容の追加
・コメント表記について説明を追加 (管理ID#614)
・注釈の凡例を追加 (管理ID#821)

一般的なバッチ処理

記載内容の修正
・「時間やイベントへの対応」にイベントに応じて実行する処理の例を追加 (管理ID#603)

TERASOLUNA Batch Framework for Java (5.x)のスタック

記載内容の修正
・「Software Framework構成要素の概略図」に凡例を追加 (管理ID#604)
・「Software Framework構成要素の概略図」のSchedulerとShell Script間の線を双方向の線に変更 (管理ID#814)
・利用するOSSのバージョン一覧をSpring Boot Dependencies 2.1.2.RELEASEに準じて更新 (管理ID#925)

Spring Batchのアーキテクチャ

記載内容の修正
・「Javaプロセス起動からバッチ処理開始までの流れ」の説明を図に合わせて修正 (管理ID#605)
・チャンクモデルの代表的な具象クラスの表で、XxxCursorItemReaderとXxxPagingItemReaderの記載順を統一するように修正 (管理ID#784)
・チャンクモデルの代表的な具象クラスの表で、JPA/Hibernate用のItemReaderに関する説明および注釈をそれぞれ別行に切り出して記載するよう修正 (管理ID#607)
・ビジネスロジックの実行で「StepからTaskletへの流れ」の図の矢印に説明に対応する番号を付与 (管理ID#606)
・ID(シーケンス)定義の「各_IDで終わる列」を具体的な列名に変更 (管理ID#607)
・ID(シーケンス)定義のシーケンスに関する説明を改善 (管理ID#818)

バッチアプリケーションの開発

記載内容の追加
・コマンド実行例にプロジェクトフォルダへの移動コマンドを追加 (管理ID#635)

非同期実行(DBポーリング)

記載内容の修正
・ポーリングステータスの遷移パターン一覧の説明を改善 (管理ID#916)
・ポーリング処理の設定で、設定内容の項目一覧の説明を改善 (管理ID#931)

記載内容の追加
・IndexによるJobRepositoryの性能改善に関する注釈へのリンクを追加 (管理ID#536)
・ポーリング処理の設定にscheduler.sizeの説明を追加 (管理ID#915)

リスナー

記載内容の追加
・リスナーによるDB更新は推奨しない旨の注釈を追加 (管理ID#459)

トランザクション制御

記載内容の修正
・シーケンス図の説明で、「以降の処理」としていた箇所を対象の処理の番号を明示するように修正 (管理ID#624)
・Best Efforts 1PCパターンの概念図のシーケンス図の線に番号を付与し、図の説明と対比できるように修正 (管理ID#626)

記載内容の追加
・異常系のシーケンス図の説明で、例外が発生した際に実行中の処理を中断する旨を追記 (管理ID#625)
・「タスクレットモデルにおける一括コミット方式での注意点」に関する注釈を追加 (管理ID#648)
・中間コミット方式の実装例のコードで、status変数のnullチェックを追加 (管理ID#615)

データベースアクセス

記載内容の修正
・実装例のコードで、Mapperインタフェースのメソッドの戻り値の型をCursorに変更 (管理ID#617)
・大量データ処理を意識して、タスクレットモデルの実装例をCursorを利用した実装例に変更 (管理ID#517)
・「ItemProcessorでの制約」、「Taskletでの制約」は出力に関する制約のため、「Mapperインターフェース(入力) 」から転記 (管理ID#535)

記載内容の追加
・JobRepositoryのトランザクションに関する注釈を追加 (管理ID#618)
・MyBatisCursorItemReaderのトランザクションについての注釈を追加 (管理ID#616)

記載内容の削除
・MyBatisCursorItemReaderにおけるクローズ時の注意事項についての注釈を削除 (管理ID#647)

ファイルアクセス

記載内容の修正
・入力データや実装例について、機能検証済みの例に変更。併せて、コード説明等も修正 (管理ID#688)

記載内容の追加
・BeanWrapperFieldSetMapperは文字列をtrimする旨の注釈を追加 (管理ID#460)

記載内容の削除
・フッタの読み飛ばしについての注釈を削除 (管理ID#788)

排他制御

記載内容の修正
・Serverガイドへの「排他制御」、「排他制御の必要性」のリンクを最新に更新 (管理ID#640)
・ファイルの排他制御の実現方法を、ロック用ファイルを用いる方法に改善 (管理ID#831)

入力チェック

記載内容の追加
・エラーメッセージをまとめて出力する実装例を追加 (管理ID#410)

処理の再実行

記載内容の追加
・JobRepositoryの障害発生時についての注釈を追加 (管理ID#618)
・リスタート時の出力に、実運用時の考慮に関する注釈を追加 (管理ID#619)

ジョブの管理

記載内容の追加
・IndexによるJobRepositoryの性能改善に関する注釈を追加 (管理ID#536)

データベースアクセスでデータ入出力を行うジョブ

記載内容の修正
・Mapperインタフェースの実装例について、Cursorを利用するように修正 (管理ID#793)

2018-3-16

-

5.1.1 RELEASE 版公開

全般

記載内容の修正
・TERASOLUNA Batch Framework for Java (5.x)のバージョン表記を5.1.1.RELEASEに変更 (管理ID#374)
・ガイドラインの誤記(タイプミスや単純な記述ミスなど)や表記揺れの修正
・リンク切れやセクション変更に伴うリンクの修正

記載内容の削除
・Bean定義ファイルについて、<context:annotation-config/>は<context:component-scan>の役割と重複するため、実装例から削除 (管理ID#398)

TERASOLUNA Batch Framework for Java (5.x)のスタック

記載内容の修正
・Spring IO platformのバージョンアップに伴い、利用するOSSのバージョンを変更 (管理ID#375)
・脆弱性対応のため、Spring Frameworkのバージョンを更新 (管理ID#494)

バッチアプリケーションの開発

記載内容の削除
・「プロジェクト作成後の注意事項について」の注釈を削除 (管理ID#373)

非同期実行(DBポーリング)

記載内容の修正
・非同期バッチデーモンの停止ファイルのファイル名を変更 (管理ID#379)

記載内容の追加
・タイムスタンプに用いるクロックのカスタマイズに関する説明を追加 (管理ID#381)

リスナー

記載内容の追加
・ジョブの前処理で、ジョブの中断を行う場合の説明を追加 (管理ID#402)
・Listenerで例外が発生した場合の留意点について説明を追加 (管理ID#403)

データベースアクセス

記載内容の修正
・サンプルソースでの現在時刻の取得方法をSystemクラスからClockクラスを利用する方法に変更 (管理ID#381)
・セクションの分け方を入力/出力を軸にするように変更 (管理ID#167)
・セクションの変更に伴い、リンクを修正 (管理ID#167)

記載内容の追加
・ItemReaderを利用してデータベース検索する際にパラメータとして渡す方法について説明を追加 (管理ID#267)
・MyBatisCursorItemReaderにおけるクローズ時の注意事項について注釈を追加 (管理ID#370)

ファイルアクセス

記載内容の修正
・「全角文字をフォーマットするFieldExtractorの実装例」で文字列の結合にStringBuilderを使用するよう改善 (管理ID#228)

排他制御

記載内容の修正
・サンプルソースでの現在時刻の取得方法をSystemクラスからClockクラスを利用する方法に変更 (管理ID#381)

入力チェック

記載内容の追加
・エラーメッセージの出力方法について説明を追加 (管理ID#326)

並列処理と多重処理

記載内容の修正
・分割数が固定の場合のBean定義のコード例について、readerに渡すパラメータの型指定をvalue-typeで指定するように修正 (管理ID#267)

作成するアプリケーションの説明

記載内容の修正
・チュートリアルで作成するジョブと開発ガイドラインの説明の対応表で、データベースアクセス機能へのリンクを修正 (管理ID#167)

非同期実行方式のジョブ

記載内容の修正
・非同期バッチデーモンの停止ファイルのファイル名を変更 (管理ID#379)

2017-09-27

-

5.0.1 RELEASE 版公開

全般

記載内容の修正
・ガイドラインの誤記(タイプミスや単純な記述ミスなど)の修正
・ヘッダとフッタの目次へのリンクのデザインを修正 (管理ID#196)
・JDK8未習得者が利用することも考慮してJDK8依存のコードをJDK7以前のコードへ変更 (管理ID#231)

記載内容の追加
・ヘッダとフッタにバージョン情報を追加 (管理ID#196)

Spring Batchのアーキテクチャ

記載内容の追加
・メタデータテーブルへ格納する文字列についての説明を追加 (管理ID#233)

記載内容の削除
・ジョブパラメータの制約についての説明を削除 (管理ID#233)

プロジェクトの作成

記載内容の修正
・ブランクプロジェクトのジョブBean定義ファイルの格納ディレクトリを変更 (管理ID#161)
・コマンドの実行例や出力例についてはコマンドプロンプトとBashそれぞれの例を示すように修正 (管理ID#161)
・プロジェクトを作成する際に指定するarchetypeVersionを5.0.1.RELEASEに修正 (管理ID#315)

チャンクモデルジョブの作成

記載内容の修正
・Bean定義ファイルのid属性の説明を平易な表現に修正 (管理ID#250)

タスクレットモデルジョブの作成

記載内容の修正
・Bean定義ファイルのid属性の説明を平易な表現に修正 (管理ID#250)

記載内容の追加
・Tasklet実装する際に考慮する処理単位の説明を追加 (管理ID#202)

非同期実行(DBポーリング)

記載内容の修正
・クラス名の接尾辞をRepositoryに修正 (管理ID#241)
・ジョブ要求シーケンスに関する説明を特定のRDBMS製品に依存しない内容に修正 (管理ID#233)

記載内容の追加
・ジョブ要求テーブルへ格納する文字列についての説明を追加 (管理ID#233)
・ジョブ要求取得SQLの説明を追加 (管理ID#233)

ジョブの起動パラメータ

記載内容の修正
・文字列リテラルはシングルクォートで囲むようにパラメータを参照する例を修正 (管理ID#246)

リスナー

記載内容の修正
・JobExecutionListenerの実装例をより平易なコード例を提示するように修正 (管理ID#271)

記載内容の追加
・ChunkListenerの説明に例外ハンドリングへのリンクを追加 (管理ID#194)
・リスナーを設定する位置の説明にタスクレットモデルの場合の注意点を追加 (管理ID#194)

トランザクション制御

記載内容の修正
・タスクレットモデルにおける中間コミット方式のコード例をjobResourcelessTransactionManagerを使用する例に修正 (管理ID#262)

記載内容の追加
・タスクレットモデルにおける中間コミット方式にjobResourcelessTransactionManagerの説明を追加 (管理ID#262)

データベースアクセス

記載内容の追加
・CompositeItemWriterによる複数テーブルの更新例を追加 (管理ID#226)
・Linux環境でのOracle JDBC利用時の留意事項を追加 (管理ID#237)

ファイルアクセス

記載内容の修正
・FlatFileItemWriter、StaxEventItemWriterのプロパティの説明を修正 (管理ID#198)

記載内容の追加
・FlatFileItemWriter、StaxEventItemWriterのプロパティ設定の組み合わせによって意図しないファイル削除が行われる説明を追加 (管理ID#198)

排他制御

記載内容の修正
・チャンクモデルでの悲観ロックのコード例を修正 (管理ID#204)
・ファイルの排他制御のコード例を排他対象ファイルをオープンする前にファイルロックを取得するように修正 (管理ID#225)

ジョブの管理

記載内容の削除
・Spring Batch Adminプロジェクトの終了に伴いSpring Batch Adminに関する記述を削除 (管理ID#209)

終了コードのカスタマイズ

記載内容の追加
・終了コードのカスタマイズに終了コードの意味合いについての説明を追加 (管理ID#294)
・終了コードのカスタマイズにタスクレットモデルにおけるステップの終了コード変更のコード例を追加 (管理ID#294)

メッセージ管理

記載内容の修正
・ResourceBundleMessageSourceのBean定義を修正 (管理ID#266)

チュートリアル

章の新規追加
・チュートリアルを追加 (管理ID#200)

2017-03-17

-

5.0.0 RELEASE 版公開

TERASOLUNA Batch Framework for Java (5.x) Development Guideline - version 5.5.0.RELEASE, 2023-3-31, commit-id:e772ac8