[Системное администрирование] Прямая интеграция IBM Integration Bus и Oracle AQ
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Здравствуйте!
Занимаюсь разработкой и проектированием интеграционных сервисов под IBM Integration Bus и хочу поделиться, на мой взгляд, полезной информацией.
В процессе работы над новым сервисом возникла необходимость создать адаптер к ИС реализующей интерфейс очередей сообщений Oracle Advanced Queuing.
Проведя некоторый research, выделил три варианта интеграции в порядке приоритета:
- Oracle Messaging Gateway, т.к.
- Входит в лицензию Oracle EE. Благо в организации такая имеется
- Реализация MOM (message-oriented middleware) с отличными от Oracle системами обмена сообщениями, в том числе IBM MQ
- С IIB интегрируется c использованием нативных MQ-узлов (MQInput/MQOutput/MQGet)
- Oracle Internet Directory т.к.
- Реализует JNDI, необходимый для интеграции по JMS
- С IIB интегрируется c использованием нативных JMS-узлов (JMSInput/JMSOutput/JMSReceive)
- Кастомная реализация на Java т.к.
- Есть Java API для Oracle AQ
- С IIB интегрируется c использованием узла JavaCompute
Я рассчитывал легко отделаться т.к. был уверен, что выберут один из первых двух вариантов. В базе знаний IBM подробно описано как настроить взаимодействие с указанными продуктами. Но, к сожалению, по ряду причин, выбор пал на голую Java.
Несмотря на то, что это не очень корпоративно и исключает всякую поддержку вендора, адаптер я написал. Для тестирования решил использовать JMeter.
Про то как настроить отправку запросов в очереди AQ нашел тут.
Все получилось и навело на мысль, что данный механизм можно применить и на брокере, создав нешаблонный конфигурационный сервис типа JMSProvider. Необходимо только было избежать создания jar-ника с параметрами jndi и не светить креденшлы к базе.
Собственно, для этого нужно:
- Положить на файловую систему необходимые библиотеки aqapi.jar, jta.jar, ojdbc8.jar
- Связать креденшлы к базе с JNDI-ресурсом командой:
mqsisetdbparms BRK_NAME -n jndi::oracle.jms.AQjmsInitialContextFactory -u oracleUser -p oraclePassword
- Добавить JMS-провайдер, где в команде указать:
- URL базы — параметр jndiEnvironmentParms
- путь к папке с библиотеками — параметр jarsURL
- наименование фабрики соединений — параметр connectionFactoryName
- начальный контекст — параметр initialContextFactory
- флаг поддержки транзакционности — параметр jmsProviderXASupport
mqsicreateconfigurableservice BRK_NAME -c JMSProviders -o Service_AQ_JMS -n jarsURL,jndiEnvironmentParms,jmsProviderXASupport,connectionFactoryName,initialContextFactory -v "/home/mqm/aq/lib","db_url=jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=hostName) (PORT=1521))(CONNECT_DATA=(SERVICE_NAME=serviceName)))","true","QueueConnectionFactory","oracle.jms.AQjmsInitialContextFactory"
- Далее использовать созданный конфигурационный сервис в JMS-узлах брокера. Пути к очередям или топикам указываются в нотации Queues/QUEUE_NAME, Topics/TOPIC_NAME. В случае использования destination list необходимо дописать jndi://, т.е. jndi://Queues/QUEUE_NAME.
В итоге все работает на нативных узлах, почти без самодеятельности.
Надеюсь кому-нибудь будет полезно, ведь данный метод вендором не описан.
===========
Источник:
habr.com
===========
Похожие новости:
- [IT-инфраструктура, Open source, Системное администрирование] Новые шаблоны — IPMI, Mikrotik, MSSQL
- [IT-инфраструктура, Microsoft SQL Server, Системное администрирование, Хранение данных] Дорожная карта миграции почты IBM Notes/Domino в Exchange и Office 365
- [IT-инфраструктура, Информационная безопасность, Системное администрирование, Софт] Sysmon теперь может записывать содержимое буфера обмена
- [Системное администрирование, Серверное администрирование, Хранилища данных, DevOps] Пять вопросов о Ceph с пояснениями (перевод)
- [Nginx, Системное администрирование] Оптимизация: Настройка веб-сервера Nginx для улучшения показателей RPS в HTTP API (перевод)
- [Unity, Разработка мобильных приложений, Финансы в IT] Компания-разработчик движка Unity успешно вышла на IPO
- [DevOps, Kubernetes, Серверное администрирование, Системное администрирование] АйТиБалаган! #3: Зачем DevOps-инженеру программирование и что такое виртуализация
- [Информационная безопасность, Сетевые технологии, Системное администрирование] OSINT или как посмотреть на свою сеть глазами хакера
- [DevOps, Kubernetes, Серверное администрирование, Системное администрирование] «Обзор возможностей Kubespray»: Отличие оригинальной версии и нашего форка
- [DevOps, Системное администрирование] Двадцать интервью за две недели. Краткие выводы длинным текстом
Теги для поиска: #_sistemnoe_administrirovanie (Системное администрирование), #_wmb, #_iib, #_aq, #_message_broker, #_ibm_integration_bus, #_oracle_advanced_queuing, #_oracle_aq, #_jms, #_sistemnoe_administrirovanie (
Системное администрирование
)
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 25-Ноя 16:46
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Здравствуйте! Занимаюсь разработкой и проектированием интеграционных сервисов под IBM Integration Bus и хочу поделиться, на мой взгляд, полезной информацией. В процессе работы над новым сервисом возникла необходимость создать адаптер к ИС реализующей интерфейс очередей сообщений Oracle Advanced Queuing. Проведя некоторый research, выделил три варианта интеграции в порядке приоритета:
Я рассчитывал легко отделаться т.к. был уверен, что выберут один из первых двух вариантов. В базе знаний IBM подробно описано как настроить взаимодействие с указанными продуктами. Но, к сожалению, по ряду причин, выбор пал на голую Java. Несмотря на то, что это не очень корпоративно и исключает всякую поддержку вендора, адаптер я написал. Для тестирования решил использовать JMeter. Про то как настроить отправку запросов в очереди AQ нашел тут. Все получилось и навело на мысль, что данный механизм можно применить и на брокере, создав нешаблонный конфигурационный сервис типа JMSProvider. Необходимо только было избежать создания jar-ника с параметрами jndi и не светить креденшлы к базе. Собственно, для этого нужно:
В итоге все работает на нативных узлах, почти без самодеятельности. Надеюсь кому-нибудь будет полезно, ведь данный метод вендором не описан. =========== Источник: habr.com =========== Похожие новости:
Системное администрирование ) |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 25-Ноя 16:46
Часовой пояс: UTC + 5