Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在一个JDBC连接中可以有两个并发事务吗?_Java_Database_Oracle_Jdbc_Transactions - Fatal编程技术网

Java 在一个JDBC连接中可以有两个并发事务吗?

Java 在一个JDBC连接中可以有两个并发事务吗?,java,database,oracle,jdbc,transactions,Java,Database,Oracle,Jdbc,Transactions,现在,我有两个对象在自动提交模式下共享到Oracle数据库的数据库连接。但是现在两个对象都需要启动自己的事务来完成工作 后果如何 为了拥有并发事务,是否有必要为每个对象提供自己的连接,或者是否有可能保持代码不变,并为两个并发事务使用相同的连接 如果我有10000个对象而不是2个,那么最佳实践是什么?如果每个对象都可以启动事务,那么我需要多少数据库连接。我需要10000个数据库连接吗?一个连接上不可能有两个事务。除了连接中的任何潜在线程问题外,只有一个方法,它提交自上次提交/回滚以来的所有活动,而

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

后果如何

为了拥有并发事务,是否有必要为每个对象提供自己的连接,或者是否有可能保持代码不变,并为两个并发事务使用相同的连接


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

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

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


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

命名事务如何。是否可以通过名称来区分事务?如果您的意思是
setSavePoint(字符串名称)
,那么就不可能了,这样就可以进行部分回滚,而不是部分提交。至少在OCI中是这样 这是可能的。在JDBC中,您还可以使用语句
SET TRANCACTION
提交 强迫 '事务id“
。这主要用于分布式(XA)事务,您可以“连接”到在不同db连接中创建的其他事务。