Spring TransactionManager 与 BoneCP 连接池的集成

发布于 2024-11-09 02:46:42 字数 593 浏览 1 评论 0原文

我正在使用 BoneCP 连接池机制,我想使用 Spring 框架的支持来管理我的事务。我找到了一个关于Spring事务管理 我尝试应用这个例子。我从连接池中获取了一个 DataSource 实例,并将此数据源提供给创建的 DataSourceTransactionManager,如下所示。

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

但是当我测试它时,我看到事务管理器在提交操作之前已将数据写入存储。

是否与创建事务管理器之前创建新数据源有关?或者你有什么想法吗?

I'm using BoneCP connection pooling mechanism and I want to manage my transactions using support of the Spring framework. I found an example about Spring Transaction Management and I tried to apply this example. I got a DataSource instance from my connection pool and give this data source to created DataSourceTransactionManager as below.

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

But when I test it, I saw that the transaction manager has written the data to the store before commit operation.

Can it be related with creating a new data source before transaction manager is created? or do you have any idea?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

↙温凉少女 2024-11-16 02:46:42

我找到了问题的原因。我使用的是 SDB RDF 存储组件。与SDB的add Triple方法的实现有关。我发现它直接调用了当前SQL连接的commit方法。 DataSourceTransactionManager 与 BoneCP 连接池集成没有问题。

I found the cause of the problem. I was using SDB RDF storage component. It is related with the implementation of the SDB's add triple method. I found that it directly calls the commit method of the current SQL connection. There is no problem about integrating DataSourceTransactionManager with BoneCP connection pool.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文