Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.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
C# Java事务API和.NET System.Transactions_C#_Java_Transactions_Jta_System.transactions - Fatal编程技术网

C# Java事务API和.NET System.Transactions

C# Java事务API和.NET System.Transactions,c#,java,transactions,jta,system.transactions,C#,Java,Transactions,Jta,System.transactions,我正在分析JTA(Java Transactions API)和.NET对等系统.Transactions之间的不同行为:这两个系统之间的方法非常不同。 事实上,Java版本的事务更像是一种规范,让开发人员有义务实现事务、事务管理器和其他定义的接口。 .NET有一个更具体的实现,它不允许开发人员定义自己的事务对象,而是提供接口来处理事务生命周期内管理的资源(而Java提供了一些XTA*接口用于相同目的) 我想知道是否有人曾经有机会利用JTA将一些Java代码移植到.NET,以及他/她注意到了哪

我正在分析JTA(Java Transactions API)和.NET对等系统.Transactions之间的不同行为:这两个系统之间的方法非常不同。 事实上,Java版本的事务更像是一种规范,让开发人员有义务实现
事务
事务管理器
和其他定义的接口。 .NET有一个更具体的实现,它不允许开发人员定义自己的
事务
对象,而是提供接口来处理事务生命周期内管理的资源(而Java提供了一些XTA*接口用于相同目的)

  • 我想知道是否有人曾经有机会利用JTA将一些Java代码移植到.NET,以及他/她注意到了哪些主要区别

  • 此外,是否有人可以向我澄清
    TransactionManager.setRollbackOnly
    相对于
    TransactionManager.rollback
    (在JTA中)的行为。NET版本只有更重要的
    Transaction.Rollback
    方法

rollback()向底层资源发送实际的回滚命令。setRollbackOnly()在当前事务上放置一个标记,在决定是提交还是回滚时读取该标记。调用setRollbackOnly()后,唯一可能的结果是回滚,但在调用setRollbackOnly()时,实际上不会进行回滚调用

这就是两种方法背后的理念。我不确定不同的实现在多大程度上实现了这种区别,即使setRollbackOnly()在调用时实际执行回滚,也不会有任何实际的区别