2

XAのオーバーヘッドを回避するために、プロジェクトAのいくつかのテーブル名にプレフィックスを付け、プロジェクトBと同じmysqlデータベース内にロールアウトして、同じ接続を使用できるようにしました。完全なアトミック性などを取得したいと考えています。

ただし、プロジェクトAとBのセッションファクトリ構成は大きく異なります。プロジェクトB用にHibernateTransactionManagerを構成しましたが、AはTransactionSynchronizationManager.hasResource(sessionFactoryA)OSiVスタイルコードを使用してトランザクションに参加します。

これは概念的に機能しますか?Aでブレークポイントを試し、待機してから続行すると、タイムアウトによってBがロールバックしますが、Aはまだコミットします!!?

何が得られますか?助けてくれてありがとう。

4

2 に答える 2

1

JtaTransactionManager現在のセットアップでは、 (セクション12.2.8. トランザクション管理戦略)が必要になると思います。XA の使用を避けたい場合は、単一の一意の接続を使用する必要があります。

于 2010-01-20T06:59:24.597 に答える