ひがやすを技術ブログ

電通国際情報サービスのプログラマ

izuオフ

http://zwfk.s55.xrea.com/hiki/misc/?izu%A5%AA%A5%D5
田町の改札で待ち合わせですが、誰も顔見知りがいない方、JavaWorldの私のイメージで探すと先ず見つかりません。
こんな人を探しましょう。
higayasuo2005-08-26

ヒロシです。izuさん、お待ちしてるとです。

追記:そういえば、izuさんはオリジナル?を知らないかも。オリジナルはこちら。

Springのトランザクションマネージメントの問題点

今、SpringとHibernateの仲は超悪くなっています。
http://www.logemann.org/blojsom/blog/default/2005/07/07/oops_JBoss_did_it_again_or_how_to_say_forget_Spring.html?page=comments
http://houseofhaug.net/blog/archives/2005/08/12/hibernate-hates-spring/
このことを技術的な観点から読み解くと、1つの問題点が浮かび上がります。それは、Springのトランザクションマネージメントの問題点です。
Springの根っことなるトランザクションマネージメントは、独自のものを使っていて、標準的なJTAを使っていません。JTAを使うときにはアダプターを使って利用することになります。
そのため、Hibernateトランザクション用アダプター、Jotm用だとかいろいろ用意する羽目になります。今見たら、WebLogic用だとか、WAS用もあってちょっとびびった。
J2EEではトランザクションAPIJTAが標準であり、ほとんどのフレームワークは、JTAと連動するような口を用意しています。それなら、根っことなるトランザクションAPIJTAを使うべきではないでしょうか。
Seasar2ではそのように考えているので、JTAが標準です。TomcatなどデフォルトだとJTAの機能を提供していない環境向けにJTAのLightweightな実装も提供しています。WASなどJ2EEのサーバを使うときには、もちろんそのサーバのJTAを利用することができます。JTAの実装も1つだけであり、Springのようにトランザクション用のアダブターをたくさん作る必要もありません。
これは、前から指摘していた問題点ですが、最近急に浮かび上がってきたのは、Hibernate3から独自のトランザクションAPIをやめ、JTA一本に絞ったからです。
これにより、Spring陣営は困りました。JTAの実装を提供する環境でないとSpringとHibernate3が組み合わせられなくなったからです。
Springの方は、いろいろ不満があったようですが、結局Hibernateは、標準的なAPIを使うべきだということで押し切ったようです。
進化の早い分野では、確かに標準化が足を引っ張ることがありますが、トランザクションのように成熟した分野ではできる限り標準に従うべきです。
今回の騒動は、この問題が顕著に出た例だと思います。

ちょっきんToDo

  • XP祭講演資料(締め切り8/22超過)
  • Flex本の前書き(締め切り8/24超過)
  • Curlレーニング丸1日(8/29)
  • JavaOne Tokyo Call for paperの申し込み(締め切り8/30)
  • 社内セミナー資料(締め切り8/30)
  • 社内セミナー(8/31)
  • S2JSF 1.0.5(締め切り8/31)
  • Flex記事(締め切り8/31)
    • 忘れてたorz
  • Curlレーニング丸1日(9/1)
  • モデリングフォーラム講演資料(締め切り9/2)
  • XP祭(9/3)
  • Curlレーニング丸1日(9/5)
  • 見える化原稿(締め切り9/9)
  • PofEAA勉強会(9/11)
  • モデリングフォーラム講演(締め切り9/16)

これ以外にSeasar2.3のリリースだとか、締め切り無いけどやらなくっちゃいけないもの多数。とりあえず、締め切りの無いものは、本当に必要になるまで心にとどめておくだけにしよう。これこそYAGNI
見える化重要。たくさんやるべきことがあることが再認識できた。orz