¿Cómo creo un navegador de cola (la vista previa no se consume) en C # para una cola ActiveMQ?
Pregunta
Estoy usando la API de NMS para leer / escribir ActiveMQ en C #, y no puedo encontrar una manera de obtener una vista previa de los mensajes en una cola. Podía leer y revertir, pero eso eventualmente los convertirá en DLQ.
En mi vida anterior, TIBCO tenía un objeto QueueBrowser que podía usarse, y creo que JMS también tenía IQueueBrowser. No puedo encontrar un equivalente de ActiveMQ .NET.
Solución
Desafortunadamente, NMS no tiene soporte (al menos todavía no) para el API de QueueBrowser disponible en JMS desde Java. Eche un vistazo a Emita AMQNET-97 en la base de datos del rastreador de problemas ActiveMQ.NET - el equipo está buscando colaboradores para implementar esta función.
Por cierto, no eres el único que pide esto-- aquí está otro hilo sobre el mismo tema.
Al principio esperaba que el soporte JMS de Spring.NET (para TIBCO) también incluyera el soporte de ActiveMQ QueueBrowser. Desafortunadamente, este no es el caso, de acuerdo con Documentación de Spring.NET , solo TIBCO es compatible a través de la API JMS de Spring.NET:
Tenga en cuenta que el soporte de JMS es actualmente proporcionado solo para JMS de TIBCO implementación denominada TIBCO Enterprise Servicio de mensajes (EMS). No hay razón fundamental por la que otros vendedores No son compatibles. Solo ha sido un razón práctica en este momento desde no hay una API JMS de facto en .NET que cada proveedor debe implementar. Como tal, cada vendedor termina creando su propio .NET inspirado copia de la API Java JMS. La apertura proyecto fuente .Net Message Service El objetivo de API (NMS) es proporcionar tal API común y muy probablemente será utilizado para futuros trabajos JMS en Spring.NET.
Entonces, en conclusión, a menos que esté dispuesto a codificar en Java (o llamar a las bibliotecas de Java utilizando una de las . Mecanismos de interoperabilidad NET-to-Java ), no creo que sea fácil para usted llegar a QueueBrowser en breve plazo, aunque a largo plazo, esta característica probablemente llegará a NMS en algún momento.
Otros consejos
En realidad, ActiveMQ admite JMX, por lo que es posible que pueda compilar uno utilizando una biblioteca .NET JMX (google netMX para esto)