Como faço para criar um navegador fila (visualização não consumir) em C # para um ActiveMQ fila?
Pergunta
Eu estou usando a API NMS para leitura / escrita ActiveMQ em C #, e eu não consigo encontrar uma maneira de visualizar as mensagens em uma fila. Eu poderia ler e rollback -. Mas isso vai fazê-los DLQ, eventualmente
Na minha vida anterior, TIBCO tinha um objeto QueueBrowser que poderia ser usado, e acho que JMS tinha IQueueBrowser também. Não consigo encontrar um equivalente ActiveMQ NET.
Solução
Infelizmente, NMS não tem suporte (pelo menos não ainda) para o QueueBrowser API disponível em JMS de Java. Dê uma olhada na Issue AMQNET-97 no banco de dados issue tracker ActiveMQ.NET - a equipe está procurando colaboradores para implementar este recurso.
BTW, você não é o único a pedir isto-- aqui está outra fio sobre o mesmo tema.
No começo eu estava esperando que de Spring.NET suporte JMS (para TIBCO) também incluiria ActiveMQ QueueBrowser apoio. Infelizmente, este não é o case-- de acordo com o Spring.NET documentação , apenas a TIBCO é suportado através do Spring.NET API JMS:
Note que o suporte JMS é atualmente fornecida apenas para JMS da TIBCO implementação chamado TIBCO Empresa Message Service (EMS). Não há razão fundamental pela qual outros fornecedores não são suportados. Ele foi apenas um razão prática neste momento uma vez não há uma API de facto JMS em .NET que cada fornecedor é obrigado a implemento. Como tal, cada fornecedor extremidades criando seu próprio .NET inspirado cópia da API Java JMS. A abertura projeto de código .Net Message Service API (NMS) objetivo é fornecer um tal API comum e, muito provavelmente, ser usado para o futuro JMS trabalho Spring.NET.
Assim, em conclusão, a menos que você está disposto a código em Java (ou chamada em bibliotecas Java usando um dos . NET-to-Java mecanismos de interoperabilidade ), eu não acho que vai ser fácil para você obter pelo QueueBrowser no curto prazo, embora a longo prazo este recurso provavelmente vai fazê-lo em NMS em algum ponto.
Outras dicas
Na verdade, ActiveMQ suporta JMX de modo que você pode ser capaz de construir um usando uma biblioteca .NET JMX (google netMX para isso)