Posso monitorar o tamanho da fila de mensagens de um segmento?
-
05-07-2019 - |
Pergunta
Nossa aplicação está recebendo um erro de RPC Falha do sistema de chamadas de DCOM (0x80010100
), suspeitamos que fila de mensagens do segmento alvo é cheia (embora eu não estou convencido de que esta é ture). Eu sei que a fila está limitado a 10,000
mensagens e eu quero ver se estamos perto desse número nos casos comuns. Existe uma maneira de monitorar o tamanho da fila de mensagens de um segmento?
A opção mais promissora que eu encontrei foi GetQueueStatus
, mas isso não inclui o número de mensagens na fila apenas os seus tipos.
Solução
Eu não sei de nenhuma maneira de monitorar o tamanho da fila (abreviação de usar um depurador de kernel e rastejando na estrutura de dados Win32Thread interna na TIB + [0x40], que eu quase não recomendo).
Para fins de depuração, para verificar se a fila está cheia, quando recebo o erro, tente fazer uma PostThreadMessage. Se ele está cheio, a chamada deve falhar com GetLastError () == 0x718. (Não cota suficiente está disponível para processar este comando.)