7

现在我有两个对象在自动提交模式下共享到 Oracle 数据库的数据库连接。但是现在两个对象都需要启动自己的事务来完成它们的工作。

后果是什么?

是否有必要为每个对象提供自己的连接才能进行并发事务,或者可以保持代码原样并为两个并发事务使用相同的连接?

如果我有 10000 个对象而不是 2 个,那么最佳做法是什么?如果每个对象都可以启动事务,我需要多少个数据库连接。我需要 10000 个数据库连接吗?

4

1 回答 1

12

一个连接上不可能有两个事务。除了 Connection 中的任何潜在线程问题之外,只有一个commit()方法,它提交自上次提交/回滚以来的所有活动,无论它们来自哪个对象。

如果您需要两个事务,请使用两个连接。

如果您有 1000 个对象,则使用连接池来合理化与数据库的活动连接数。

于 2013-09-18T16:23:10.737 回答