使用 Microsoft 登入
登入或建立帳戶。
您好:
選取其他帳戶。
您有多個帳戶
選擇您要用來登入的帳戶。

狀況

當您使用 XA 交易、 Microsoft SQL Server JDBC 驅動程式,與 Microsoft SQL Server 與後端資料庫時,您可能已遺棄待在 SQL Server 上執行的交易如果交易管理員發生當機或連線問題。

此外,可能會遇到下列常見的徵狀︰

  • 擱置的交易,則 SQL Server 的執行個體上一段時間。它們可能會有空值或-2的工作階段 ID,在資料庫中。

  • 交易被封鎖一段時間的交易時發生-2的工作階段 id。這會導致鎖定逾時 」 或 「 若要凍結的執行緒。

原因

如果 SQL Server JDBC 驅動程式不會清除這些交易,然後就能繼續使用資源,並封鎖其他交易,交易管理員與 SQL Server 之間的連線將會遺失未準備的交易。因為 SQL Server 的 XA 實作 JDBC 驅動程式中,SQL Server 無法偵測異常的中斷連線的交易管理員。因此,SQL Server 的這些交易之前留在系統中 XA 交易逾時或在重新啟動資料庫。逾時的 SQL Server 執行個體上使用的無限值,而且不可以在資料庫上設定。

因應措施

若要解決這個問題,請使用下列方法之一︰

  • 當您遇到任何 JAVA 虛擬機器 (JVM) 當機或網路連線問題,導致這些被遺棄的交易時,請重新啟動資料庫伺服器。

  • 清除其資源資料庫上,個別停止成為孤兒的交易。確認交易遭遺棄,,請確定它不是疑問 (已備妥) 或一個目前完成的交易。任何 JVM 和成功的復原週期,最後透過重新啟動相關的交易應該被孤立出來。

  • 設定對 XA 異動逾時值超過您最長的交易,才能迫使他們停止,一旦超過逾時值。您可以藉由呼叫XAResource.setTransactionTimeout()方法來這麼做。

  • 許多協力廠商的交易管理員,呼叫程式碼無法直接存取XAResource物件,與交易管理員並不會設定的交易逾時值。在此情況下,外部應用程式可用來將交易逾時設定為新的預設值。這個新的預設值將用於所有其他未指定交易逾時的交易。

需要更多協助嗎?

想要其他選項嗎?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。

社群可協助您詢問並回答問題、提供意見反應,以及聆聽來自具有豐富知識的專家意見。

這項資訊有幫助嗎?

您對語言品質的滿意度如何?
以下何者是您會在意的事項?
按下 [提交] 後,您的意見反應將用來改善 Microsoft 產品與服務。 您的 IT 管理員將能夠收集這些資料。 隱私權聲明。

感謝您的意見反應!

×