GlassFishで Java Batch について勉強会で話してきた
ブログを書くまでが勉強会。GlassFish勉強会 2013#01に行ってきたのでメモ。
当日の資料や様子は、@yamadamnさんが作ってくれたまとめにあると思います。
HeapStatsでGlassFish4障害解析 @sugarlife さん
- HeapStatsは低オーバーヘッドが売り (Specjvm2008で約5%以下)
- デモからは、GCの動きだけではなく、クラス統計情報が一緒に取れるのが売りと紹介。
- 稼働中のJVMに動的にアタッチすることもできる。
思ったこと
- GCログとクラス統計情報が一緒に取れるのは嬉しいと思いました。今までだと、
- まず、GCログからメモリリークであることを認知する
- 次にヒープダンプを解析しようとするが、テスト環境で再現しないので、ヒープダンプが手に入らない
- こんな流れで、解析が進みにくい状況を、HeapStatsであれば解決してくれそうでした。
- まずはインストールしてみたいと思います。
JSFとJAX-RSで作るThin Server Architecture @making さん
- どうやってThin Server Archtectureを実現するかのお話。
- Thin Server Archtectureを実現したいけど、あんまりJavaScriptは書きたくない
- JSFのManaged BeanからJAX-RS2.0で標準化されたREST Client API使って、JAX-RSで作成したAPIにアクセス
- メリットは、クライアント(モバイル、外部公開するREST API)などが変化しても、サーバサイドが振り回されないこと
思ったこと
- 私はJavaScript上手にうまく書けないので、JavaScriptを書かずにタグだけで表現可能な綺麗なコンポーネントがあるJSFはやはり魅力的です。
- JAX-RSのクライアントAPIはとても便利そう。
- 例えば、古いアプリケーションではSwing - (Socket) - ServerSocket のように、クライアントとサーバサイドをSocketで繋いで自分でプロトコルを考えているものが、このREST Clientを使うと比較的簡単にHTTPに置き換えれそうでした。
Java EE 7 overview @btnrouge さん
Batch Applications for the Java Platform (JSR352) @n_agetsu
- 私の話。聴いてくださったみなさま、ありがとうございました。
セッションの補足
- GlassFish4のBatch管理コンソール
GlassFish勉強会なのに、振り返るとすっかりGlassFishのネタが漏れていました。
バッチにおいて、GlassFishの管理コンソールにも機能追加が行われています。
例えば、上の画像のように、バッチの成功、失敗、起動時刻、終了時刻の一覧がGlassFish4の管理コンソールで見れたり、
各ジョブごとに、読み込んだレコード数やコミット数まで管理コンソールから確認可能です。
これらの機能は、Batchがアプリケーションサーバの仕様として入ったことのメリットだと思います。今後のJava EE 実装サーバでは、もしかしたらジョブネットのようなものが、グラフィカルに表示されるものも出てくるかもしれません。
- ご質問いただいた、XML以外でジョブを定義する方法
今回リリースされたJava EE 7に含まれる範囲にはありませんが、今後の改善として以下のようなAPIが提案されています。XMLを使わなくても、CDIの@Producesと連携してジョブを定義する便利な機能です。
@Produces public Job buildJob() { return JobBuilder .newJob("myJob") .addStep("sendStatements") .addChunk() .reader(AcountReader.class) .processor(AccountProcessor.class) .writer(EmailWriter.class) .itemCount(10); }
確かにjBatch1.0ではXMLの量が多かったり、APIがタイプセーフではない(Object型)弱点もありますが、まだまだ標準化されたばかりです。EJBもかつてはXMLが多く使いにくかったですが、現在では@Statelessだけで大抵はうまく使えるくらい簡単になってきています。
今後のバージョンアップでjBatchがもっと進化することを楽しみにしています。
最後に
今回、セッションをするご機会を頂いた @btnrouge さんに大変感謝しています。また、私がDsub出力を緊張して触ってしまったがために映らなくなったのに、すぐに駆け寄ってくれた @yoshioterada さんに大変感謝しています。同じ会社の方が来てくださって、ホームっぽい雰囲気を作ってくださったことも嬉しかったです。みなさま本当にありがとうございました。