Come si crea un browser code (l'anteprima non si consuma) in C # per una coda ActiveMQ?
Domanda
Sto usando l'API NMS per leggere / scrivere ActiveMQ in C # e non riesco a trovare un modo per visualizzare l'anteprima dei messaggi su una coda. Potrei leggere e ripristinare - ma alla fine li renderà DLQ.
Nella mia vita precedente, TIBCO aveva un oggetto QueueBrowser che poteva essere usato, e penso che anche JMS avesse IQueueBrowser. Non riesco a trovare un equivalente di ActiveMQ .NET.
Soluzione
Sfortunatamente, NMS non ha supporto (almeno non ancora) per la API QueueBrowser disponibile in JMS da Java. Dai un'occhiata a Issue AMQNET-97 nel database di tracker dei problemi di ActiveMQ.NET - il team è alla ricerca di collaboratori per implementare questa funzione.
A proposito, non sei l'unico a chiedere questo-- ecco un altro thread sullo stesso argomento.
Inizialmente speravo che il supporto JMS di Spring.NET (per TIBCO) includesse anche il supporto QueueBrowser di ActiveMQ. Sfortunatamente, questo non è il caso, secondo documentazione Spring.NET , solo TIBCO è supportato tramite l'API JMS di Spring.NET:
Nota che il supporto JMS è attualmente fornito solo per JMS di TIBCO implementazione denominata TIBCO Enterprise Message Service (EMS). Non c'è ragione fondamentale per cui altri venditori non sono supportati. È appena stato un ragione pratica in questo momento da allora non esiste un'API JMS di fatto in .NET a cui è richiesto ciascun fornitore strumento. Pertanto, ogni fornitore termina creando il proprio .NET ispirato copia dell'API JMS Java. L'apertura progetto sorgente .Net Message Service L'obiettivo dell'API (NMS) è di fornire tale API comune e molto probabilmente lo sarà utilizzato per il futuro lavoro di JMS in Spring.NET.
Quindi, in conclusione, a meno che tu non sia disposto a scrivere codice in Java (o a chiamare librerie java usando una delle . Meccanismi di interoperabilità da NET a Java ), non credo che sarà facile per te accedere a QueueBrowser in breve termine, anche se a lungo termine questa funzionalità lo farà probabilmente in NMS ad un certo punto.
Altri suggerimenti
In realtà, ActiveMQ supporta JMX, quindi potresti essere in grado di crearne uno usando una libreria .NET JMX (google netMX per questo)