Получение сообщений OpenMQ в Delphi

Мне нужно установить связь между сервером Glassfish и Delphi. Мне нужно получать сообщения от него. Как я обнаружил, Glassfish использует брокер OpenMQ.

Сначала я нашел библиотеку jms для delphi. Я нашел там только интерфейс JMS. И нашел там реализацию SonicMQ JMS. Но, как я обнаружил, SonicMQ и OpenMQ - разные брокеры для JMS. Может я не прав.

Также я нашел клиентские библиотеки Habari для OpenMQ, но эти библиотеки не бесплатны.

Может кто-нибудь знает какое-нибудь бесплатное решение этой проблемы? Или я ошибаюсь, и я могу использовать реализацию SonicMQ?

Я скачал демонстрационные программы Habari, но не могу подключиться к серверу Glassfish (Соединение закрыто изящно). Может я что-то не так делаю? Мне просто нужно получать сообщения. Мне не нужно отправлять их.

Я никогда раньше не работал с JMS, поэтому у меня есть такие вопросы.

1 ответ

Решение

Как вы написали в своем комментарии, организация, которая запускает сервер GlassFish, не позволяет использовать независимый от платформы протокол STOMP для доступа к серверу.

Это означает, что единственным способом обмена сообщениями с брокером сообщений является использование проприетарного Java-клиента для OpenMQ (поставщик JMS по умолчанию в GlassFish).

Таким образом, вам потребуется мост Java / Delphi, который получает сообщения с помощью клиента Java, а затем передает их на сторону Delphi. Связь со стороной Delphi могла бы осуществляться через TCP/IP, это позволило бы как синхронный, так и асинхронный прием сообщений: либо с использованием стиля связи запрос / ответ ("синхронная" связь, получение следующего сообщения инициируется стороной Delphi) или поток слушателя на стороне Delphi, в который сообщения будут "асинхронно" передаваться со стороны Java.


Другой путь к общению может быть через C API. Для этого потребуется импортировать клиентскую библиотеку C в Delphi. Руководство для программистов на c-api доступно в коллекции документов MQ.

Другие вопросы по тегам