J2EE勉強会

前半は、S2のソースを見ながらJTAとコネクションプールについての勉強会でした。私は昔コネクションプールを書いたことがあるので、ひがさんの設計の非常に面白く聞けました。


プールの設計ひとつとってもさまざまなトレードオフの判断と選択があり、設計者の判断に個性が表れます。synchronizedにする区間をどれだけ小さくするか。貸出しリソースの追跡、プールされたリソースの監視、内部データ構造をListにするかMapにするか、Mapに入れるならKeyとなるオブジェクトをどうするか。タイムアウトの管理。リソースのヘルスチェック...いろいろあります。


S2DBCPの売りはJTA仕様との整合性ですね。JTA関連との繋がりは凄いと思いました。また、ConnectionWrapperで例外が発生した場合にはConnectionをプールから廃棄してしまう選択もユニークだと思いました。(私はヘルスチェックしてからせこく再利用するタイプでした)。
UUIDを教条的に実装せずに(まじめにやるとInetAddressにアクセスするところが遅い)、Xidを実装するところなど、現実的な判断が参考になります。


JSFについては、私は正直あまりよくわかっていなかったのですが、ここから見始めればOKというところ(LifecycleFactory)を知ったのが大収穫でした。
JSFの勉強は次回も続きます。楽しみです。