2011-07-18 13 views
3

任意のタイプのカスタムリソースをJTAとtransactioalにすることは可能ですか?基本的な例を想定し、エラーが発生した場合にロールバックするフォルダ作成を行いましょう。JTAで任意のリソースを使用

このようなカスタムリソースは処理できますか?

答えて

9

はい。そのリソースはXAResourceの実装を提供する必要があり、その実装のインスタンスはリソースが使用されるときenlisted with the transactionである必要があります。リソースは、それがアクセスされるときに(私は思う)登録を実行するためにget the current transaction from the transaction managerすることができます。

XADisk(XAトランザクションファイルマネージャ)のコードを見れば、それがどのように処理されているかを知ることができます。

しかし、J2EEの世界でこれを行う一般的なアプローチは、JTAを直接処理するのではなく、JCAを使用してリソースアダプタを作成することです。これによりJ2EEコンテナはトランザクションだけでなくプール、その他の事業者の詳細。しかし、JCA APIはそれほど簡単ではなく、難しいドキュメントの山で守られていますが、その主な目的はその理解を妨げることです。

+0

Springs TransactionSynchronizationManagerを使用する場合、XAResourceのような機会はありますか? – Erik

+0

いいえ、考えられません。私は春はしません。 J2EEはすでにこれを扱っているので、なぜSpringがここに関与する必要があるのか​​わかりません。 –

関連する問題