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.

Foi útil?

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.)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top