Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can I monitor the size of a thread's message queue?

Our application is getting a System Call Failed RPC error from DCOM (0x80010100), we suspect that the target thread's message queue is full (although I'm not convinced this is ture). I know the queue is limited to 10,000 messages and I want to see if we're close to this number in the common cases. Is there a way to monitor the size of a thread's message queue?

The most promising option I found was GetQueueStatus but this doesn't include the number of messages in the queue only their types.

like image 537
Motti Avatar asked Nov 02 '08 10:11

Motti


1 Answers

I don't know of any way of monitoring the size of the queue (short of using a kernel debugger and groveling in the internal Win32Thread data structure at TIB+[0x40], which I hardly recommend).

For debugging purposes, to check if the queue is full when you get the error, try doing a PostThreadMessage. If it's full, the call should fail with GetLastError() == 0x718. (Not enough quota is available to process this command.)

like image 74
Tadmas Avatar answered Oct 20 '22 21:10

Tadmas