0

BoneCP接続プールメカニズムを使用しており、Springフレームワークのサポートを使用してトランザクションを管理したいと考えています。Spring Transaction Managementに関する例を見つけ、この例を適用しようとしました。接続プールからDataSourceインスタンスを取得し、このデータソースを作成したDataSourceTransactionManagerに以下のように渡します。

DataSource dataSource = new BoneCPDataSource(getConnectionPool().getConfig());
DataSourceTransactionManager transactionManager = new DataSourceTransactionManager();
transactionManager.setDataSource(dataSource);

しかし、テストしたところ、コミット操作の前にトランザクションマネージャーがストアにデータを書き込んでいることがわかりました。

トランザクションマネージャーを作成する前に、新しいデータソースを作成することと関連付けることができますか?またはあなたは何か考えがありますか?

4

1 に答える 1

0

問題の原因がわかりました。SDB RDF storage componentを使用していました。これは、SDB の add triple メソッドの実装に関連しています。現在の SQL 接続の commit メソッドを直接呼び出していることがわかりました。DataSourceTransactionManager を BoneCP 接続プールと統合することに問題はありません。

于 2011-05-20T09:18:00.667 に答える