javax.transaction.xa.XAException: java.sql.SQLException: 無法創建 XA 控制連接。錯誤: 未能找到存儲過程 'master..xp_sqljdbc_xa_init'


配置JTA SQL Server XADataSource參考:https://msdn.microsoft.com/zh-cn/library/aa342335.aspx

使用 JDBC 驅動程序 :https://msdn.microsoft.com/zh-cn/library/ms378526(v=sql.110).aspx

JDBC下載地址:http://www.microsoft.com/zh-CN/download/details.aspx?id=11774

  1. sqljdbc_4.0\chs\auth\x86(x64|IA64)\sqljdbc_auth.dll放入WINDOWS\system32中
  2. sqljdbc_4.0\chs\xa\x86(x64|IA64)\sqljdbc_xa.dll放入Microsoft SQLServer\MSSQL\Binn\sqljdbc_xa.dll
  3. 執行xa_install.sql

如果要同時使用 XA 數據源和 Microsoft 分布式事務處理協調器 (MS DTC)來處理分布式事務,則需要執行以下步驟

(1)在 Windows XP 和 Windows Server 2003 上:

  1. 在“控制面板”中,打開“管理工具”,然后打開“組件服務”。也可以單擊“開始”按鈕,單擊“運行”,在“打開”框中鍵入dcomcnfg,然后按“確定”打開“組件服務”。
  2. 展開“組件服務”、“計算機”,右鍵單擊“我的電腦”,然后選擇“屬性”。
  3. 單擊“MSDTC”選項卡,再單擊“安全性配置”。
  4. 選中“啟用 XA 事務”復選框,然后單擊“確定”。這將使 MS DTC 服務重新啟動。
  5. 再次單擊“確定”以關閉“屬性”對話框,然后關閉“組件服務”。
  6. 停止 SQL Server,然后重新啟動,以確保它與 MS DTC 更改同步。

(2)在Win8或Server 2008上:

  1. 在“控制面板”中,打開“管理工具”,然后打開“組件服務”。也可以單擊“開始”按鈕,單擊“運行”,在“打開”框中鍵入dcomcnfg,然后按“確定”打開“組件服務”。
  2. 展開“組件服務”\“計算機”"Distribute Transaction Coordinator",右鍵單擊“本地DTC”,然后選擇“屬性”。
  3. 單擊“安全”選項卡,再單擊“啟用XA事務”。
  4. 然后單擊“確定”。這將使 MS DTC 服務重新啟動。
  5. 再次單擊“確定”以關閉“屬性”對話框,然后關閉“組件服務”。
  6. 停止 SQL Server,然后重新啟動,以確保它與 MS DTC 更改同步。

注:在這些配置完成以后如果還出現:

錯誤:atomikos:error in recovery。

  1. 驅動程序有問題。即sqljdbc4.jar。我之前遇到這種問題后就重新在Miscrosoft官網上下載了“sqljdbc_3.0.1301.101_chs.exe";解壓后,所有的配置都用該解壓包中的文件。包括(sqljdbc_xa.dll)
  2. SQL Server 2000用的是x86(即32)位的文件來配置。因為通過查詢分析器輸入"select @@version"來查看SQL的版本后就會發現,即使操作系統是Server 2003 X64位,但SQL Server 2000仍然是32位的。
  3. 在WIn8上面輸入“select @@version”后得到版本號“Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64) Apr 2 2010 15:48:46 Copyright (c) Microsoft Corporation Developer Edition (64-bit) on Windows NT 6.2 (Build 9200: ) ”,由此可看出SQL Server是X64的。
  4. SQL Server 2000在配置JTA XADataSource時,如果用sqljdbc.jar包,里面是沒有com.microsoft.sqlserver.jdbc.SQLServerXADataSource該類的。因此SQL Server 2000也用sqljdbc4.jar該包來配置。

--EOF--

No.304

寫於2015-02-03


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM