Exclui todas as filas particulares no MSMQ?

2

Existe alguma maneira no MSMQ para excluir todas as filas particulares?

Tenho milhares de filas privadas no meu computador, tenho quase certeza que a maioria delas, se não todas, são causadas por um aplicativo mal comportado que cria uma nova fila com um GUID aleatório para seu nome toda vez que ele é iniciado para cima.

Agora, quero criar algumas outras filas particulares para fazer algum trabalho com o MSMQ. Estou descobrindo que as milhares de filas existentes não usadas não só estão sobrecarregando a exibição quando abro Filas Privadas na ferramenta Gerenciamento do Computador, mas eu suspeito que eles são a razão pela qual abrir Filas Privadas em Gerenciamento de Computador leva muito tempo na minha máquina.

Eu posso excluir filas individuais apenas selecionando uma e clicando em excluir, mas não parece haver uma maneira óbvia de selecionar um intervalo de filas para excluir juntas.

    
por PhantomDrummer 29.02.2012 / 12:27

2 respostas

0

Não tenho certeza da versão do Windows que você está usando, mas suponho que você tenha o MSMQ 3.0 instalado. Sendo esse o caso, você pode consultar todos os seus objetos MSMQ privados usando o VBS e chamando o Private Queues propriedade no objeto de aplicativo MSMQ e armazenando-os como uma variante.

Depois, percorro a sua Variante e uso a Apague a propriedade de MSMQQueueInfo e apague cada fila.

Espero que ajude.

    
por 29.02.2012 / 13:02
0

Você também pode escrever um pequeno programa usando o código abaixo.

Observe que seu projeto deve fazer referência a System.Messaging

using System.Messaging;

.

.

MessageQueue[] msmques = MessageQueue.GetPrivateQueuesByMachine(".");
foreach (var item in msmques)
{
        MessageQueue.Delete(".\"+item.QueueName);
}
    
por 06.11.2015 / 11:52

Tags