Как создать обозреватель очереди (предварительный просмотр не использует) в C # для очереди ActiveMQ?
Вопрос
Я использую NMS API для чтения / записи ActiveMQ на C # и не могу найти способ предварительного просмотра сообщений в очереди. Я мог читать и выполнять откат - но это в конечном итоге сделает их DLQ.
В моей прошлой жизни у TIBCO был объект QueueBrowser, который можно было использовать, и я думаю, что у JMS также был IQueueBrowser. Я не могу найти эквивалент ActiveMQ .NET.
Решение
К сожалению, NMS не поддерживает (по крайней мере пока) поддержку API QueueBrowser , доступный в JMS из Java. Посмотрите выпуск AMQNET-97 в базе данных системы отслеживания проблем ActiveMQ.NET - команда ищет участников для реализации этой функции. Р>
Кстати, вы не единственный, кто просит об этом - вот другая тема на ту же тему.
Сначала я надеялся, что поддержка JMS в Spring.NET (для TIBCO) также будет включать поддержку ActiveMQ QueueBrowser. К сожалению, это не так - согласно Документация Spring.NET , только TIBCO поддерживается через JMS API Spring.NET:
Обратите внимание, что поддержка JMS в настоящее время предоставляется только для JMS TIBCO реализация названа TIBCO Enterprise Служба сообщений (EMS). Здесь нет фундаментальная причина, почему другие поставщики не поддерживаются Это было просто практическая причина в это время, так как в .NET не существует API-интерфейса JMS де-факто что каждый поставщик обязан воплощать в жизнь. Таким образом, каждый поставщик заканчивается до создания своих собственных .NET вдохновил копия API Java JMS. Открыто исходный проект .Net Message Service Цель API (NMS) состоит в том, чтобы общий API, и это, скорее всего, будет используется для будущей работы JMS в Spring.NET.
Итак, в заключение, если вы не хотите писать код на Java (или вызывать библиотеки Java, используя один из . Механизмы взаимодействия между NET и Java ), я не думаю, что вам будет легко добраться до QueueBrowser за короткий промежуток времени срок, хотя в долгосрочной перспективе эта функция, вероятно, превратится в NMS в какой-то момент.
Другие советы
На самом деле ActiveMQ поддерживает JMX, поэтому вы можете создать его, используя библиотеку .NET JMX (google netMX для этого)