JavaベースのトランザクションマネジャーであるAtomikos TransactionEssentials(サイト・英語)がそのバージョン3.2をリリースした。InfoQはこのリリースとTransactionEssentialsとサードパーティのトランザクションマネジャーの詳細を探るため、AtomikosのCTOであるGuy Pardon氏(ブログ・英語)に尋ねた。
Pardon氏はTransactionEssentialsの主要な機能に関して説明した。
- JTA/XAトランザクションマネジメント-トランザクションマネジメントとコネクションプールが提供されている
- アプリケーションサーバーが不要-TransactionsEssentialsはJava EEアプリケーションサーバ内かもしくはアプリケーションサーバから独立して使用される
- オープンソース-TransactionEssentialsはApacheライセンスバージョン2(source)下でオープンソースとなっている
- JDBC/JMSフォーカス-どんなXAリソースでもサポートされていて、内蔵リソースプールとメッセージリスニングがJDBCとJMS用に提供されている
- SpringとHibernate統合-SpringとHibernateの統合の仕方を解説したドキュメンテーションが提供されている
Pardon氏はまたAtomikos ExtremeTransaction(サイト・英語)は非XA用のサポートを追加し、コンペンセーションベースのトランザクションとサーブレットコンテナ内での使用するためのグラフィック管理コントロールパネルを提供することによって、TransactionEssentialsに基づき、また構築されていることを説明した。Atomikosはまたサブスクリプションベースのサポートサービス(source)とExtremeTransactionにおける更なる機能への認証アクセスを提供する。
なぜ外部のトランザクションマネジャーを使用するのか訊いたところPardon氏は下記のように答えた。
その質問の裏を返してみましょう。なぜアプリケーションサーバーを必要とするのですか(source)?
基本的に、アプリケーションサーバは生産性においてひとつ大きな問題を抱えています。(昔の恐竜である上に)パッケージアーカイブをデプロイしなくては いけないことです。これはデプロイメント以前に行うテストが不完全であるということなのです。またこれはデプロイメントの間に何かがうまく行かないリスクが高いということなのです。私の意見としてはこれは生産性においてかなり大きな問題なのです。
またPardon氏はたくさんのケースにおいてアプリケーションサーバが必ずしもアプリケーションの最善のソリューションとならないかもしれないことを言及している。同氏は例としてSOA/ESBエンドポイントを挙げ、非同期のメッセージハンドリングとJDBCを介した、プロセスははるかに軽量でスケーラ ブルなやり方でなされることと述べた。
TransactionEssentialsの将来のリリースに関して訊いたところ、Pardon氏は向上したJDBCとJMSコネクションプール、OSGiサポートとJMXトランザクション管理をバージョン3.3の主要機能として挙げた。Pardon氏はまたJDBCデータソースとJMSコネクタ用にJMXを追加することがバージョン4.0における目標であることを述べた。