在 SQL Server 2019 中,谁能明确告诉我 xp_sqljdbc_xa_commit 和 xp_sqljdbc_xa_end 之间的功能区别?
我的猜测是 commit 正在尝试提交事务(谢谢 Obvious 先生 ;-))并且 end 告诉 DTC “嘿,这里都完成了。请清理。”
但是,代码似乎存在于 SQLJDBC_XA.dll(作为扩展 sp)中,所以我无法查看它,也找不到一个好的参考来确认我的假设。
谢谢!
在 SQL Server 2019 中,谁能明确告诉我 xp_sqljdbc_xa_commit 和 xp_sqljdbc_xa_end 之间的功能区别?
我的猜测是 commit 正在尝试提交事务(谢谢 Obvious 先生 ;-))并且 end 告诉 DTC “嘿,这里都完成了。请清理。”
但是,代码似乎存在于 SQLJDBC_XA.dll(作为扩展 sp)中,所以我无法查看它,也找不到一个好的参考来确认我的假设。
谢谢!
GitHub 上的 SQL Server JDBC 驱动程序的源代码是追踪这一点的好地方。
src/main/java/com/microsoft/sqlserver/jdbc/SQLServerXAResource.java
所以它被 SQL Server 的XAResource接口的实现所使用。
有关背景,请参阅它的工作原理:SQL Server DTC(MSDTC 和 XA 事务)