Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Jun Inose
PDF, PPTX
4,412 views
20160215 04 java ee7徹底入門 jbatch
2016/02/15 JJUG ナイトセミナーの資料です
Software
◦
Read more
10
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 31
2
/ 31
3
/ 31
4
/ 31
5
/ 31
6
/ 31
7
/ 31
8
/ 31
9
/ 31
10
/ 31
11
/ 31
12
/ 31
13
/ 31
14
/ 31
15
/ 31
16
/ 31
17
/ 31
18
/ 31
19
/ 31
20
/ 31
21
/ 31
22
/ 31
23
/ 31
24
/ 31
25
/ 31
26
/ 31
27
/ 31
28
/ 31
29
/ 31
30
/ 31
31
/ 31
More Related Content
PDF
Jbatch実践入門 #jdt2015
by
Norito Agetsuma
PPTX
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
by
NTT DATA Technology & Innovation
PDF
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
by
Teppei Sato
PDF
Linux女子部 systemd徹底入門
by
Etsuji Nakai
PPTX
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
by
VirtualTech Japan Inc.
PDF
新入社員のための大規模ゲーム開発入門 サーバサイド編
by
infinite_loop
PDF
ドキュメントシステムはこれを使え2015年版
by
Keiichiro Shikano
PPTX
Docker超入門
by
VirtualTech Japan Inc.
Jbatch実践入門 #jdt2015
by
Norito Agetsuma
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
by
NTT DATA Technology & Innovation
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
by
Teppei Sato
Linux女子部 systemd徹底入門
by
Etsuji Nakai
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
by
VirtualTech Japan Inc.
新入社員のための大規模ゲーム開発入門 サーバサイド編
by
infinite_loop
ドキュメントシステムはこれを使え2015年版
by
Keiichiro Shikano
Docker超入門
by
VirtualTech Japan Inc.
What's hot
PDF
JSR 352 “Batch Applications for the Java Platform”
by
Norito Agetsuma
PDF
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
by
日本マイクロソフト株式会社
PDF
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
by
NTT DATA Technology & Innovation
PDF
Webアプリを並行開発する際のマイグレーション戦略
by
Takayuki Shimizukawa
PDF
Where狙いのキー、order by狙いのキー
by
yoku0825
PDF
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
by
shinjiigarashi
PDF
いまさら聞けないselectあれこれ
by
lestrrat
PDF
ジョブ管理でcronは限界があったので”Rundeck”を使ってハッピーになりました
by
Yukiya Hayashi
PDF
【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介
by
日本マイクロソフト株式会社
PDF
例外設計における大罪
by
Takuto Wada
PPTX
トランザクションをSerializableにする4つの方法
by
Kumazaki Hiroki
PDF
PostgreSQL のイケてるテクニック7選
by
Tomoya Kawanishi
PDF
Java8でRDBMS作ったよ
by
なおき きしだ
PDF
Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
by
Akihiro Suda
PDF
Docker入門: コンテナ型仮想化技術の仕組みと使い方
by
Yuichi Ito
PDF
ストリーム処理を支えるキューイングシステムの選び方
by
Yoshiyasu SAEKI
PPTX
PHPとシグナル、その裏側
by
do_aki
PDF
オブジェクト指向プログラミングのためのモデリング入門
by
増田 亨
PPTX
C++のビルド高速化について
by
AimingStudy
PDF
PacemakerのMaster/Slave構成の基本と事例紹介(DRBD、PostgreSQLレプリケーション) @Open Source Confer...
by
Tatsuya Watanabe
JSR 352 “Batch Applications for the Java Platform”
by
Norito Agetsuma
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
by
日本マイクロソフト株式会社
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
by
NTT DATA Technology & Innovation
Webアプリを並行開発する際のマイグレーション戦略
by
Takayuki Shimizukawa
Where狙いのキー、order by狙いのキー
by
yoku0825
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
by
shinjiigarashi
いまさら聞けないselectあれこれ
by
lestrrat
ジョブ管理でcronは限界があったので”Rundeck”を使ってハッピーになりました
by
Yukiya Hayashi
【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介
by
日本マイクロソフト株式会社
例外設計における大罪
by
Takuto Wada
トランザクションをSerializableにする4つの方法
by
Kumazaki Hiroki
PostgreSQL のイケてるテクニック7選
by
Tomoya Kawanishi
Java8でRDBMS作ったよ
by
なおき きしだ
Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
by
Akihiro Suda
Docker入門: コンテナ型仮想化技術の仕組みと使い方
by
Yuichi Ito
ストリーム処理を支えるキューイングシステムの選び方
by
Yoshiyasu SAEKI
PHPとシグナル、その裏側
by
do_aki
オブジェクト指向プログラミングのためのモデリング入門
by
増田 亨
C++のビルド高速化について
by
AimingStudy
PacemakerのMaster/Slave構成の基本と事例紹介(DRBD、PostgreSQLレプリケーション) @Open Source Confer...
by
Tatsuya Watanabe
Viewers also liked
PDF
Java EE 再入門
by
minazou67
PDF
JavaEE7徹底入門 プレゼンテーション層の開発 JSF
by
Masuji Katoda
PPTX
3.Java EE7 徹底入門 CDI&EJB
by
Tsunenaga Hanyuda
PDF
Grails 3.0先取り!? Spring Boot入門ハンズオン #jggug_boot
by
Toshiaki Maki
PDF
Spring Bootで変わる Javaアプリ開発! #jsug
by
Toshiaki Maki
PPTX
ついに始まるJava EE 7時代のアプリケーション開発
by
Takakiyo Tanaka
PDF
Doma SQLテンプレートのしくみ
by
Toshihiro Nakamura
PDF
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3
by
日本Javaユーザーグループ
PDF
Java Batch 仕様 (Public Review時点)
by
Norito Agetsuma
PDF
JJUG 11月ナイトセミナー CDIをはじめよう
by
Norito Agetsuma
PDF
Spring Data JPA
by
Cheng Ta Yeh
PDF
Astah Community スタートガイド
by
ChangeVision
PDF
Introduction to Cloud Foundry #JJUG
by
Toshiaki Maki
PDF
AeroGear & Java EE 7 で簡単プッシュ
by
Norito Agetsuma
PPTX
Spring I/O 2015 報告
by
Takuya Iwatsuka
PDF
日本Javaグループ2016年定期総会 #jjug #ccc_soukai
by
日本Javaユーザーグループ
PDF
クロスプラットフォーム開発入門
by
minazou67
PDF
An introduction into Spring Data
by
Oliver Gierke
Java EE 再入門
by
minazou67
JavaEE7徹底入門 プレゼンテーション層の開発 JSF
by
Masuji Katoda
3.Java EE7 徹底入門 CDI&EJB
by
Tsunenaga Hanyuda
Grails 3.0先取り!? Spring Boot入門ハンズオン #jggug_boot
by
Toshiaki Maki
Spring Bootで変わる Javaアプリ開発! #jsug
by
Toshiaki Maki
ついに始まるJava EE 7時代のアプリケーション開発
by
Takakiyo Tanaka
Doma SQLテンプレートのしくみ
by
Toshihiro Nakamura
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3
by
日本Javaユーザーグループ
Java Batch 仕様 (Public Review時点)
by
Norito Agetsuma
JJUG 11月ナイトセミナー CDIをはじめよう
by
Norito Agetsuma
Spring Data JPA
by
Cheng Ta Yeh
Astah Community スタートガイド
by
ChangeVision
Introduction to Cloud Foundry #JJUG
by
Toshiaki Maki
AeroGear & Java EE 7 で簡単プッシュ
by
Norito Agetsuma
Spring I/O 2015 報告
by
Takuya Iwatsuka
日本Javaグループ2016年定期総会 #jjug #ccc_soukai
by
日本Javaユーザーグループ
クロスプラットフォーム開発入門
by
minazou67
An introduction into Spring Data
by
Oliver Gierke
Similar to 20160215 04 java ee7徹底入門 jbatch
PDF
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
by
Amazon Web Services Japan
PPTX
バッチは地味だが役に立つ
by
apkiban
PDF
Active Object
by
y-uti
PPTX
Introduction to JIT Compiler in JVM
by
Koichi Sakata
PDF
新しいTERASOLUNA Batch Frameworkとは
by
apkiban
PPTX
Batchは作ったことあるけど、 初めてSpring Batchを使ってみた
by
Hideyuki SASAKURA
PDF
Spring3.1概要x di
by
Yuichi Hasegawa
PDF
JJavaプログラム実行の仕組みと、高速・安定動作に向けた取り組み
by
日本Javaユーザーグループ
PDF
20170525 jsug バッチは地味だが役に立つ
by
Yuichi Hasegawa
PPTX
Containers + EC2 Spot: AWS Batch による大規模バッチ処理でのスポットインスタンス活用
by
Daisuke Miyamoto
PDF
不安定な環境の中でのバッチ処理~JobQueueシステムQudoを使った事例~
by
Akabane Hiroyuki
PDF
Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-
by
PE-BANK
PPTX
Java EE8 Report
by
Norito Agetsuma
PDF
Zマイスターとの新たな価値探求 z/OS
by
IBMソリューション
PDF
Java 7 invokedynamic の概要
by
Taku Miyakawa
PDF
140917運用管理勉強会job scheduler
by
OSSラボ株式会社
PPTX
Beginning Java EE 6 勉強会(3) #bje_study
by
inatus
PPTX
福井イベント
by
Yoshio Terada
KEY
関ジャバ JavaOne Tokyo 2012報告会
by
Koichi Sakata
PDF
レガシーコード改善はじめました 横浜道場
by
Hiroyuki Ohnaka
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
by
Amazon Web Services Japan
バッチは地味だが役に立つ
by
apkiban
Active Object
by
y-uti
Introduction to JIT Compiler in JVM
by
Koichi Sakata
新しいTERASOLUNA Batch Frameworkとは
by
apkiban
Batchは作ったことあるけど、 初めてSpring Batchを使ってみた
by
Hideyuki SASAKURA
Spring3.1概要x di
by
Yuichi Hasegawa
JJavaプログラム実行の仕組みと、高速・安定動作に向けた取り組み
by
日本Javaユーザーグループ
20170525 jsug バッチは地味だが役に立つ
by
Yuichi Hasegawa
Containers + EC2 Spot: AWS Batch による大規模バッチ処理でのスポットインスタンス活用
by
Daisuke Miyamoto
不安定な環境の中でのバッチ処理~JobQueueシステムQudoを使った事例~
by
Akabane Hiroyuki
Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-
by
PE-BANK
Java EE8 Report
by
Norito Agetsuma
Zマイスターとの新たな価値探求 z/OS
by
IBMソリューション
Java 7 invokedynamic の概要
by
Taku Miyakawa
140917運用管理勉強会job scheduler
by
OSSラボ株式会社
Beginning Java EE 6 勉強会(3) #bje_study
by
inatus
福井イベント
by
Yoshio Terada
関ジャバ JavaOne Tokyo 2012報告会
by
Koichi Sakata
レガシーコード改善はじめました 横浜道場
by
Hiroyuki Ohnaka
20160215 04 java ee7徹底入門 jbatch
1.
『Java EE 7
徹底入門』 バッチアプリケーションの開発 jBatch 2016/02/15 JJUG ナイトセミナー #JJUG 猪瀬 淳 @inose660
2.
Safe Harbor Statement •
本資料は私個人の見解であり所属会社の見解を反映したものではありません。 • 本資料の作成にあたっては正確な記述につとめましたが、内容に対してなんら 保証をするものではなく、内容に基づくいかなる運用結果に関してもいっさいの 責任を負いません。 22016/02/15 JJUG Night Seminar #JJUG
3.
自己紹介 • 割愛 32016/02/15 JJUG
Night Seminar #JJUG
4.
本日話す内容 • What is
“jBatch” / Why “jBatch” • jBatch の構成要素と機能 • ジョブ • ステップ • 補助機能 • 本書に書いていない話 2016/02/15 JJUG Night Seminar #JJUG 4
5.
What is “jBatch” •
Java EE におけるバッチ処理の標準 • Version 1.0 として Java EE 7 から登場 • JSR-352 (Batch Applications for Java Platform) で規定 • Spring Batch から多くを継承 2016/02/15 JJUG Night Seminar #JJUG 5
6.
1. プロセスとして実行 4. jBatchを利用 2.
自作スレッドとして実行 JVM Why “jBatch”? 62016/02/15 JJUG Night Seminar #JJUG JVM バッチ 処理 JVM バッチ 処理 JVM バッチ 処理 main バッチ処理 バッチ処理 バッチ処理 APサーバ (JVM) jBatch のジョブ = バッチ処理 jBatch のジョブ = バッチ処理 jBatch のジョブ = バッチ処理 スレッド スレッド スレッド スレッド スレッド スレッド プロセス プロセス プロセス 3. サーブレットとして実行 APサーバ (JVM) servlet バッチ処理 バッチ処理 バッチ処理 スレッド スレッド スレッド Java でバッチを実行する4つの方法
7.
1. プロセスとして実行 2.
自作スレッドとして実行 JVM 72016/02/15 JJUG Night Seminar #JJUG JVM バッチ 処理 JVM バッチ 処理 JVM バッチ 処理 main バッチ処理 バッチ処理 バッチ処理 スレッド スレッド スレッド プロセス プロセス プロセス シンプル 起動停止や実行状況の把握などが直感的 JVM 起動時間のオーバーヘッド APサーバで動く他の部品との共有が難しい (CDI/EJB/JPAなど、Java EE の他の機能を使う にはライブラリの追加が必要) スレッドはプロセスに比べて軽く起動できる スレッドを管理する main プログラムを自作する 必要がある APサーバで動く他の部品との共有が難しい (CDI/EJB/JPAなど、Java EE の他の機能を使う にはライブラリの追加が必要) ○ △ △ △ △ ○ Why “jBatch”? Java でバッチを実行する4つの方法
8.
3. サーブレットとして実行 4.
jBatchを利用 82016/02/15 JJUG Night Seminar #JJUG APサーバ (JVM) jBatch のジョブ = バッチ処理 jBatch のジョブ = バッチ処理 jBatch のジョブ = バッチ処理 スレッド スレッド スレッド APサーバ (JVM) servlet バッチ処理 バッチ処理 バッチ処理 スレッド スレッド スレッド スレッドはプロセスに比べて軽く起動できる スレッド管理プログラムを自作する必要がない APサーバで動く他の部品との共有が容易 (CDI/EJB/JPAなど Java EEの機能が利用可能) 実行状況の把握, スレッドの停止が難しい HTTP リクエストタイムアウトの問題 スレッドはプロセスに比べて軽く起動できる スレッド管理プログラムを自作する必要がない APサーバで動く他の部品との共有が容易 (CDI/EJB/JPAなど Java EEの機能が利用可能) 実行状況の確認方法、ジョブの起動停止など の方法が用意されている △ ○ ○ ○ ○ ○ ○ ○ △ Why “jBatch”? Java でバッチを実行する4つの方法
9.
ジョブ <job> <step> </step> <step> </step> <step>
</step> </job> public class Step1Impl (…)...{ } public class Step2Impl (…)...{ } public class Step3Impl (…)...{ } ステップ ステップ ステップ jBatch の構成要素 : “ジョブ” と “ステップ” 92016/02/15 JJUG Night Seminar #JJUG “ジョブ” は “ステップ” の入れ物 ステップ に、 具体的な 処理を Java で 記述 各ステップの名 前や実行順序、 設定等を XMLで 記述 (Job XML) ステップ に、 具体的な 処理を Java で 記述 ステップに 具体的な 処理を Java で 記述 Job XML
10.
もう少し拡大すると 102016/02/15 JJUG Night
Seminar #JJUG <job id="SampleJob" xmlns="...." version="1.0"> SampleJob.xml public class MyProg implements Batchlet { public String process() <property name="InputFile" value="C://myfile1" /> <step id="STEP1"> <batchlet ref="com.example.MyProg" /> </step> </job> : : : : ジョブ名 各種設定 (property) <job>要素 <step>要素 ステップは、用意された インターフェースを実装 ステップ ジョブ: ステップの クラス名
11.
ジョブとステップとの分離 112016/02/15 JJUG Night
Seminar #JJUG // SAMPLEJOB JOB 1234, JINOSE // STEP1 EXEC PGM=MYPROG // INFILED DD DSN=USER1.MYFILE1, DISP=OLD // OUTFILED DD SYSOUT=* : JCL MYPROG COBOL や PL/I などで 書かれたプログラム • ジョブとステップの分離は、古くはホスト時代にさかのぼる • jBatch は、時代や言語を問わずに共通する バッチ処理の「ひな型」を提供 ステップ
12.
jBatch の構成要素と機能 122016/02/15 JJUG
Night Seminar #JJUG ジョブ ステップ 補助機能 • チャンク • バッチレット • ステップ・パーティショニング • フロー • スプリット • デシジョン • 遷移要素 • ジョブオペレータ • リトライ • スキップ • ジョブリポジトリ • リスナ • コンテキスト • メトリック 処理の順序制御 実装の テンプレート提供
13.
実行順序を表現する XML タグ群 •
フロー <flow> • スプリット <split> • デシジョン <decision> 132016/02/15 JJUG Night Seminar #JJUG • 遷移要素 <next> <stop> <end> <fail> ジョブ ステップ 補助機能 例 Job step flow step step step step flow step step flow step step step flow step step step end stop fail split decision flow step step end fail step
14.
[Tips] Job XML
の root 要素 142016/02/15 JJUG Night Seminar #JJUG ジョブ ステップ 補助機能 • Java EE 7 で利用できる XSD の一覧はコチラ http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/javaee/index.html#7 XSDを指定することにより、 エディタがアシストしてくれるよ うになる XSD を指定することにより、 エディタが補完してくれるようになる
15.
ジョブ全体の開始/中断/再開 152016/02/15 JJUG Night
Seminar #JJUG ステップ 補助機能 ジョブ Properties p = new Properties(); : JobOperator jo = BatchRuntime.getJobOperator(); long jobExecId = jo.start("SimpleBatch", p); jo.stop(jobExecId, p); long jobExecId = jo.restart(jobExecId, p); 開始 中断 再開 • ジョブオペレータ (javax.batch.operations.JobOperator)
16.
ジョブオペレータの呼び出し方法 162016/02/15 JJUG Night
Seminar #JJUG ステップ ジョブ Shell script .batファイル アプリケーション サーバ (Java EE コンテナ) JAX-RS EJB ジョブ スケジューラ ブラウザ スマートデバイス オペレータ アドホックな実行 定刻起動 オペレータ POJO (CDI) jBatch コンテナ jobOperator .start() .stop() .restart() JSF マネージド ビーン JAX-RS client EJB client 外部 システム 補助機能 ジョブオペレータの 呼び出し方法は、 jBatch 仕様では 規定されていない 本書では、JAX-RSを 用いた起動方法と、 JSF を用いた管理 画面の作成を紹介
17.
エラーハンドリング 172016/02/15 JJUG Night
Seminar #JJUG ステップ 補助機能 ジョブ リトライ 再度そのデータの処理を試みる スキップ 該当データの処理を飛ばして、 次のデータへ処理を進める • データ処理中に例外が発生したらどうするか? • チャンク型ステップ (後述) の処理が対象 • 上記対処の対象とする例外クラスの名前を Job XML に記述しておく
18.
ステップ • 『チャンク型』 と
『バッチレット型』 の2種類 • チャンク型は “複数データの一括処理” を担う 182016/02/15 JJUG Night Seminar #JJUG ジョブ ステップ 補助機能 Batchlet データに依存しない処理やコマンド実行など ItemReader : データの読み込みに対応 バッチレット型 チャンク型 ItemProcessor : データの加工などの処理に対応 ItemWriter : データの書き込みに対応 複数データの 一括処理 単発の処理 協調 動作
19.
書込みをまとめるこ とにより、物理的な I/O の回数を削減 性能上の効率と 障害発生時の やり直しのリスクとの 兼ね合いを図って いる チャンク型のステップ 192016/02/15 JJUG
Night Seminar #JJUG ジョブ ステップ 補助機能 読み込み処理 ItemReader ItemProcessor 加工等の 処理 読み込み処理 加工等の 処理 ItemWriter 複数件のデータを まとめて書き込み デフォルトでは10回に 1度の呼び出し APサーバ 読込と加工等の 処理を繰り返し checkpoint : :
20.
ステップ = 実装のテンプレート •
実体は Interface 開発者は用意されたメソッドを Override 202016/02/15 JJUG Night Seminar #JJUG ジョブ ステップ 補助機能 public class SimpleBatchlet implements Batchlet { public class SimpleReader implements ItemReader { バッチレット型 チャンク型 public class SimpleProcessor implements ItemProcessor { public class SimpleWriter implements ItemWriter { 複数データの 一括処理 単発の処理 open() writeItems() close() checkpointInfo() open() readItems() close() checkpointInfo() processItem() process() stop()
21.
補助機能 212016/02/15 JJUG Night
Seminar #JJUG ジョブ ステップ 補助機能 • ジョブリポジトリ • リスナ • コンテキスト • メトリック
22.
補助機能 • ジョブリポジトリ – ジョブやステップ の情報を格納 –
通常はAPサー バ配下にある 内部DBが実体 – APサーバの 管理画面でも 確認できる 222016/02/15 JJUG Night Seminar #JJUG ジョブ ステップ 補助機能
23.
補助機能 • リスナ afterJob() afterStep() batchlet afterStep() beforeStep() ジョブ onError() afterChunk() beforeJob() beforeStep() beforeChunk() beforeWrite() afterWrite() beforeRead() afterRead() beforeProcess() afterProcess() retry /
skip onWriteError() retry / skip onReadError() retry / skip onProcessError() ステップ ステップ チャンク JobListener StepListener ChunkListener ItemRead Listener ItemProcess Listener ItemWrite Listener StepListener RetryReadListener.onRetryReadException() SkipReadListener.onSkipReadItem() RetryProcessListener.onRetryProcessException() SkipProcessListener.onSkipProcessItem() RetryWriteListener.onRetryWriteException() SkipWriteListener.onSkipWriteItem() ItemWriter ItemReader ItemProcessor 処理の前後で イベントが発生 → リスナを付与し、 任意の処理を 差し込み 232016/02/15 JJUG Night Seminar #JJUG
24.
補助機能 242016/02/15 JJUG Night
Seminar #JJUG ジョブ ステップ 補助機能 • コンテキスト – JobContext と StepContext の2種類 – プロパティやステータスなど、実行中のジョブ/ステップに 関する情報を API 経由で提供 – UserData として、ジョブ/ステップに横断的な 任意の値をセットすることもできる – Step の UserData は永続化可能
25.
補助機能 252016/02/15 JJUG Night
Seminar #JJUG ジョブ ステップ 補助機能 • メトリック – ステップに関する統計情報 – StepContext#getMetrics() より取得可能 – APサーバの管理画面でも 確認できる
26.
10章の構成 • 10.1 jBatch
の基本 • 10.2 jBatch の利用 – 基本編 • 10.3 jBatch の利用 – 応用編 • 10.4 ジョブの作成 • 10.5 ジョブのフロー制御 262016/02/15 JJUG Night Seminar #JJUG jBatch の構成要素の紹介 ログ出力のみのジョブを用いて, XMLの書法と各メソッドの説明 Property, コンテキスト, メトリック, Checkpoint, リスナの活用例と バッチ/終了ステータスの説明 split, flow, decision, 遷移要素の 活用例の紹介
27.
本書に書いていない話 2016/02/15 JJUG Night
Seminar #JJUG 27
28.
ステップ・パーティショニング 282016/02/15 JJUG Night
Seminar #JJUG Interface 概要 PartitionPlan / PartitionMapper パーティション数, スレッド数, パーティションごとのプロパティなどを動的に提供する (これを使わない場合は、上記のような設定を Job XML に静的に定義する) PartitionReducer パーティション分散の前処理、および直後での待ち合わせ処理を実装する PartitionCollector 各パーティション内のステップの処理結果を遂次 PartitionAnalyzer に送信する PartitionAnalyzer PartitionCollectorから受信したデータをステップのメインスレッドで処理する <step id="Step1"> <chunk ...> or <batchlet ...> : </chunk> or </batchlet> <partition> <plan partitions="3" threads="3" /> <reducer ref="...." /> : </partition> </step> • ステップを任意のスレッド数で 並行して処理する機能 • 本書では紙幅と時間が尽きた ため割愛
29.
なぜ入出力ファイルを CSV 形式にしたのか? •
当初は入出力ファイルを JSON 形式として、ついでに Java EE 7 で 追加された JSON-P の API の紹介もしようかと考えていた • jBatchでは、チャンクの処理途中で失敗した場合に備えて再実行 (restart) が出来るように配慮されている → これも当然紹介したい • JSONやXML形式のファイルには、終端に閉じカッコや終了タグなどが必要 – 例えばファイルの書き込み途中で失敗したあとに再開した場合、 終端がないことにより文書の操作に失敗する • 結局1行で完結するCSVファイルのほうが jBatch との親和性が高い – ただしCSVはデータ中にカンマが混入する可能性を考慮する必要あり 292016/02/15 JJUG Night Seminar #JJUG
30.
ここがヘンだよ jBatch • チャンクの
ItemReader / Processor / Writer 間で ジェネリクスが使えない!(Spring Batchなら…) • 終了ステータス/バッチステータスが、ジョブとステップで 共用なのが直感的ではない • flow / split 単位での property が指定できない • GF の参照実装 (TCK) だと動かない機能がいくつか… 302016/02/15 JJUG Night Seminar #JJUG バージョンアップ / jBatch 1.1 に期待しましょう
31.
Thank you! ご清聴ありがとうございました
Download