首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

MSSQL JDBC 事務陷阱:克隆連接異常與 SelectMethod=cursor 解法

     編輯:Java 相關知識

異常現象

[Microsoft][SQL Server 2000 Driver for JDBC]
Can't start a cloned connection while in manual transaction mode.

根因分析

  • 默認 SelectMethod=direct 模式下,SQL Server 不支持**手動事務**中單連接多活躍 Statement。
  • 自動提交模式下驅動會自動克隆物理連接以支持多 Statement,但手動事務禁用此機制。

解決方案

在 JDBC URL 中添加 SelectMethod=cursor:

jdbc:microsoft:sqlserver://localhost:1433;SelectMethod=cursor;DatabaseName=yourdb

游標模式允許單連接多活躍 Statement,完美解決事務中多查詢並發問題。

最佳實踐補充

  • 若不願改 URL,須確保手動事務中**每連接僅創建一個 Statement**,用完即 close()。
  • Hibernate 配置同理:hibernate.connection.url 加入該參數,或同步修改 .hibernateSynchronizer 文件,建議雙改保險。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved