Sql server 当JPA事务在网络中失败时,sql server会做什么?

Sql server 当JPA事务在网络中失败时,sql server会做什么?,sql-server,transactions,jpa-2.0,wan,Sql Server,Transactions,Jpa 2.0,Wan,我正在使用JPA通过WAN连接到SQL server。我一直找不到当我开始一个JPA事务时会发生什么的信息,该事务涉及到对远程DB的写入,但是WAN连接在提交之前或提交期间中断 在每个事务中,我传输一个标题和几百行细节 远端数据库是否有足够的知识放弃所有更改 显然,请求回滚本地应用程序不会产生任何效果,因为WAN链接已断开。我认为: 所谓“连接断开”,我的意思是,dbms客户机驱动程序向应用程序代码发出信号,表明连接已断开 您只有一个DBMS,这意味着没有两阶段提交 然后: 不管您是通过WA

我正在使用JPA通过WAN连接到SQL server。我一直找不到当我开始一个JPA事务时会发生什么的信息,该事务涉及到对远程DB的写入,但是WAN连接在提交之前或提交期间中断

在每个事务中,我传输一个标题和几百行细节

远端数据库是否有足够的知识放弃所有更改

显然,请求回滚本地应用程序不会产生任何效果,因为WAN链接已断开。

我认为:

  • 所谓“连接断开”,我的意思是,dbms客户机驱动程序向应用程序代码发出信号,表明连接已断开
  • 您只有一个DBMS,这意味着没有两阶段提交
然后:

不管您是通过WAN还是LAN使用sql server。要么交易完全完成,要么根本没有完成。 这就是交易的本质

因此,如果在提交之前连接断开,服务器将回滚所有内容。无法在应用程序级别重新连接以完成事务

如果在提交期间连接断开,则根据实现和确切的时间点,事务可能会被完全保留或完全回滚

只要commit返回到您的代码中,您就可以绝对确保所有内容都按照预期的方式持久化

请注意,“连接断开”可能发生在超时时间很长(几分钟)之后。在这段时间内,事务保留了所有的锁,可能会减慢整个系统的速度。如果您通过较慢的网络进行通信,这些超时可能会设置为更长的间隔