Thursday, September 06, 2007

SQL0998N Error.

Environment

Microsoft Windows XP SP2 with IBM Db2 Client V8.2

Problem
SQL0998N, Error occurred during transaction or heuristic processing. Reason Code = "16". Subcode = "2-8004D026". SALSTATE=58005, returned when COM component requires a transaction and the operating system is Microsoft Windows XP Service Pack 2.
 
Cause
Upgrading from Microsoft Windows XP Service Pak 1 to Service Pack 2
 
Solution

1) Change the following registry variable from:
[HKEY_CLASSES_ROOT\CLSID\{c8b522cb-5cf3-11ce-ade5-00aa0044773d}]
@="MSDASQL" "OLEDB_SERVICES"=dword:fffffff

Back to: ffffffffc

2) Register the following registry key:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\XADLL]
"DB2APP.DLL"="C:\Program Files\IBM\SQLLIB\BIN\DB2APP.DLL"

3) Enable XA transaction support:
Component Services -> right click on My Computer -> Properties -> MSDTC tab -> click on Security Configuration -> check the 'XA Transactions' check box.