Quote:> I have a process in SQL Server 7 which will not die. It's a fairly
> simple select count (*) statement. It's been in rollback state since
> Monday, and I killed it on Tuesday. The Wait Type is EXCHANGE. I am
> willing to carry on waiting for it to die, but can anyone reassure me
> that it *will* die? Do they ever *not* die? (The database is 14GB, if
> that has a bearing on things.)
Q. What does a wait type of CXPacket or Exchange mean?
A. You will get this only with versions of SQL that support parallel queries,
i.e. SQL 7 and later. It means that one thread of the query is waiting for a
message packet from another, and the one it is waiting on is either blocked by
a traditional cause or has hit some sort of parallelism bug.
CXPacket means it is waiting on a data packet - i.e. the results of an internal
query is being passed. Exchange means that it is waiting on a control packet -
i.e. waiting for a child/sibling process to tell you that it is finished.
If the query doesn't complete then make sure the latest service pack is applied
as there are several parallel query fixes in each one. If it still doesn't fix
it then you have run into an unfixed bug and will need to contact Microsoft PSS
and raise a bug report. You should be able to work-around the problem by
adding (MAXDOP=1) as a query hint which will prevent the query being
Applies to SQL Server versions : 7.0
FAQ Categories : Troubleshooting
Related FAQ articles : bugreport for raising a bug report
Related Microsoft Kb articles : Q244455 " INF: Definition of Sysprocesses
Waittype and Lastwaittype Fields for SQL Server 7.0"
Other related information : n/a
Authors : Neil Pike
Neil Pike MVP/MCSE. Protech Computing Ltd
(Please reply only to newsgroups)
SQL FAQ (484 entries) see
forumsb.compuserve.com/gvforums/UK/default.asp?SRV=MSDevApps (faqrtf.zip - L7
- SQL Public)