HTTP з’єднання в WMB
У цій статті ми розкриємо тему HTTP-з'єднань у IBM Integration Bus/WebSphere Message Broker. Розглянемо ключові параметри HTTP-конектора, їх призначення, рекомендації з налаштування, а також команди зміни цих параметрів. Дізнаємось що робити при виникненні помилок, пов'язаних з використанням HTTP у IIB/WMB.
Варто відразу відзначити, що ми розглядаємо той випадок, коли IIB/WMB виступає як сервер, що обробляє HTTP-запити клієнтів.
Топологія розгортання
У IIB/WMB існують два способи розміщення HTTP-листнерів:
-
На брокері (Broker-w >У першому випадку, взаємодія клієнтів з флоу по HTTP здійснюється через процес biphttplistner, де піднімається порт, за замовчуванням 7080).

Така схема використовується для балансування запитів між декількома ідентичними флоу, розташованими у різних групах виконання (серверах інтеграції). Також забезпечується певний ступінь стійкості до відмов - якщо один із серверів інтеграції впаде, інші будуть успішно обробляти запити. Однак, вузьким місцем у такій схемі є єдина точка відмови – процес biphttplistner, який може не впоратися за дуже великого потоку запитів.
У другому випадку кожен сервер інтеграції (група виконання) мають свій власний HTTP-листнер, окремі порти та працюють із клієнтом безпосередньо.

Така схема використовується для поділу потоку запитів між серверами та забезпечення високої пропускної спроможності. Однак, вона позбавлена можливостей масштабованості та відмовостійкості.
Найкращим рішенням є використання зовнішнього HTTP-сервера (IBM HTTP Server), який з використанням WebSphere Plug-in розподілятиме навантаження міждекількома серверами та вузлами інтеграції. Але це зовсім інша тема. А поки що розуміння топології потрібно нам для того, щоб коректно працювати з налаштуваннями HTTP-конектора. Тобто. щоб розуміти, де необхідно зробити зміну - на брокері або на сервері інтеграції.
Як перейти з листнера вузла інтеграції на вбудовані HTTP-листнери серверів інтеграції було розглянуто у статті Встановлення та базове налаштування IBM Integration Bus V9. Варто зазначити, що SOAP ноди використовують вбудовані HTTP-листери за замовчуванням.
Непостійні з'єднання
Для обслуговування сотень і тисяч клієнтів, коли потрібно створювати короткі окремі з'єднання з HTTP-сервером, використовуються непостійні з'єднання (non-persistent connections або short-lived connections). Це працює так: коли клієнт робить запит HTTP, відкривається нове TCP-з'єднання з клієнта на сервер. Після того, як від HTTP-сервера буде надіслано відповідь, TCP-з'єднання завершується. Для наступного запиту від цього клієнта відкривається нове TCP-з'єднання.
Число можливих одночасних з'єднань обмежується параметромmaxThreads.
Дізнатися встановлені значення параметрів HTTP-конектора, у тому числі maxThreads, можна за допомогою команди:
Для HTTP-конектора на брокері/вузлі інтеграції (broker wide listener):
mqsireportproperties broker_name -b httplistener -o HTTPConnector -a
Для HTTP-конектора сервера інтеграції (embedded listener):
mqsireportproperties broker_name -e EG_name -o HTTPConnector -a