Cache Manager in an error state, detailed error 0x8004d01c (NETIQKB73199)

  • 7773199
  • 10-Oct-2011
  • 03-Nov-2011

Environment

NetIQ AppManager Control Center 7.0.x

Situation

Cache Manager is in an error state within NetIQ AppManager Control Center.
SQL Server could not register with Microsoft Distributed Transaction Coordinator (MS DTC) as a resource manager for this transaction. The transaction may have been stopped by the client or the resource manager.
Enlist operation failed: 0x8004d01c(XACT_E_CONNECTION_DOWN).
Full error:
[EXCEPTION] [Assembly=NQSyncQDB; Method=NetIQ.Utils.TraceEx.WriteSQLException ThreadID=67]
Message=Enlist operation failed: 0x8004d01c(XACT_E_CONNECTION_DOWN). SQL Server could not register with Microsoft Distributed Transaction Coordinator (MS DTC) as a resource manager for this transaction. The transaction may have been stopped by the client or the resource manager.
A severe error occurred on the current command. The results, if any, should be discarded.
Source=.Net SqlClient Data Provider
StackTrace= at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async)
at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)
at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
at NetIQ.CQS.NQSyncQDB.SyncThread.Start()

Resolution

Stop MSDTC on the Control Center Machine
Stop SQL Server on the Control Center Machine
Start MSDTC
Start SQL

Once this is done inspect the syncqdb logs in /program files/netiq/temp/netiq_debug/CC_CQSTrace to see if the distributed transaction coordinator is working right.

If the problem is still occuring run the following query within SQL Server Management Studio.

begin distributed tran
select * from [remoteservername].master.sys.sysprocesses
commit tran

This will do a select against one of the remote QDB's using DTC. Replace remoteservername with the netbios name of one of the QDB machines listed in linked servers.

If this fails check the following.

Netbios name resolution to the QDB
Check if SP2 was recently installed on Windows 2003 if the QDB resides on windows 2003.
This updated will change MSDTC. If it has been the following article will outline the change. http://technet.microsoft.com/en-us/library/cc753620(WS.10).aspx

Cause

This is due to DTC becoming out of sync with the SQL Servers hosting the QDB and NQCCDB databases.

Additional Information

Formerly known as NETIQKB73199