web-dev-qa-db-ja.com

Atomikos vs JOTM vs Bitronix vs?

私はJTAを使い始めたばかりであり、その基盤となるトランザクションマネージャです。誰もがこれらのそれぞれの長所/短所を説明できますか?タイトルに記載しなかった他の人も自由に追加してください。

また、主要なアプリケーションサーバー(WebSphere、JBoss、Glassfish)には、独自のJTA準拠のトランザクションマネージャーがないのですか?それらの環境では、これらのサードパーティの実装を引き続き使用しますか?

40
HDave

私はJTAを使い始めたばかりであり、その基盤となるトランザクションマネージャです。誰もがこれらのそれぞれの長所/短所を説明できますか?タイトルに記載しなかった他の人も自由に追加してください。

私が知っているスタンドアロンのトランザクションマネージャーには、 BitronixSimpleJTATyrex (dead?)、 [〜#〜] jotmがあります。 [〜#〜] (Jonasで使用)、 GeronimoTM/Jencks (Geronimoで使用)、 JBossTS (JBossで使用)および Atomikos

私はそれらすべてを広範囲にテストしたことはありません(そして、これを選択する必要がある場合は、これを行う必要があります)。しかし、ここにいくつかのリンクがあります:

念のため、ここに私の個人的な見解を示します。

  • JOTMについて多くの不満を目にしました。
  • GeronimoTM/Jencksにはドキュメントが不足していると思います。
  • SimpleJTAはJTSを実装しておらず、アクティブではありません。
  • Bitronixはまともなドキュメントですが、サポートは提供していません。
  • Atomikosは印象的な製品であり、十分に文書化されており、サポートを提供しています。
  • JBossTS別名ArjunaTSは間違いなく成熟した製品であり(履歴については 買収のお知らせ を参照)、サポートを提供しています。

個人的には、私はAtomikosとJBossTSを候補に挙げ、選択する必要がある場合はハードコアでテストします。

また、主要なアプリケーションサーバー(WebSphere、JBoss、Glassfish)には、独自のJTA準拠のトランザクションマネージャーがないのですか?

もちろん、JTAはJava EE仕様の一部であり、Java EEサーバーはそれをサポートする必要があります。

それらの環境では、これらのサードパーティの実装を引き続き使用しますか?

いいえ、提供されたトランザクションマネージャを使用します(簡単にするため、サポートなど)。

50
Pascal Thivent

JettyでAtomikosとJOTMをテストしました。 Atomikosは問題なく動作しました。私が作った私のアプリケーションで分散トランザクションをテストするための自動ユニットテストとこれらのテストはうまくいきました。

JOTMに関する限り、少なくとも2フェーズコミットプロトコルを偽造していると確信しています。 2フェーズコミット機能がオフになっているPostgreSQLデータベースを使用していて、JOTMは実際の分散トランザクションがあるかのように動作できました。実際のトランザクションマネージャ(GlassFishで実装されているものなど)は、このような場合にエラーを報告しました。

必要に応じて、アプリケーションでJPA2とHibernate 4を使用しました。

7
Pawel Sidoryk