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 存储组件。它与 SDB 的 add Triple 方法的实现有关。我发现它直接调用了当前SQL连接的commit方法。将 DataSourceTransactionManager 与 BoneCP 连接池集成是没有问题的。

于 2011-05-20T09:18:00.667 回答