powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Расспараллеливание запросов в DB2 PureScale 10.1
5 сообщений из 5, страница 1 из 1
Расспараллеливание запросов в DB2 PureScale 10.1
    #38572663
Horovodov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день! Имеется производственная база DB2 PureScale 10.1 (3 Мембера и 2 CF) и WAS 7.0. Под WebSphere работает приложение, которое по JDBC обращается к DB2. Проблема в том, что в Datasourсes указано имя первого мембера и все запросы выполняются на нем. Как настроить WAS, чтобы запросы выполнялись на всех мемберах?
...
Рейтинг: 0 / 0
Расспараллеливание запросов в DB2 PureScale 10.1
    #38572715
GVF112GVF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Horovodov,

Нужно настроить Workload Balancing (WLB) (и желательно Automatic Client Reroute).

WebSphere Application Server configuration for WLB:

Data source custom properties:
– Driver type: specify the JCC driver type. Must be 4
– Database name: specify the database the applications will connect to.
– Server name: specify the DB2 pureScale member the applications to connect to
– Port number: pureScale member listening TCP/IP port number
– clientRerouteAlternateServerName: provide the server list separated by commas.
– clientRerouteAlternatePortNumber: TCP/IP port list separated by comma for servers specified in clientRerouteAlternateServerName.
– enableSysplexWLB: set to true to enable WLB
– enableSeamlessFailover: set to 1 to enable seamless ACR (optional

Data source connection pool properties:
–Purge Policy: set to FailingConnectionOnly for WAS to support seamless ACR

Дальше,
в документации DB2 - Configuring Java Applications.

С уважением,
Вадим.
...
Рейтинг: 0 / 0
Расспараллеливание запросов в DB2 PureScale 10.1
    #38573485
CawaSPb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы обратил внимание на то, что clientRerouteAlternateServerName и clientRerouteAlternatePortNumber не только можно не указывать, но это даже является best practice.
Список member'ов получается от узла, к которому коннектимся, автоматически и автоматически же потом обновляется (по факту удаления/добавления нод). Если AlternateServerName/AlternatePortNumber указать, то такого обновления не происходит.

Был замечательный Bootcamp по PureScale, где этим тонкостям уделялось внимание.
...
Рейтинг: 0 / 0
Расспараллеливание запросов в DB2 PureScale 10.1
    #38689563
dr0n
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

В Вашем случае не нужно вносить какие-то дополнительные настройки для WAS.
Добавьте в строку соединения с БД (файл конфигурации приложения) след. параметры:

jdbc:db2://имя сервера_БД_1:порт_БД_1/имя_ БД_1:clientRerouteAlternateServerName=имя_сервера__БД_1,имя_сервера__БД_2;clientRerouteAlternatePortNumber=порт_БД_1,порт_БД_2;


также для clientRerouteAlternateServer существуют доп. параметры соединения.
...
Рейтинг: 0 / 0
Расспараллеливание запросов в DB2 PureScale 10.1
    #38689614
dr0n,

Ну уж тогда ИМХО лучше так:

1. Придумываем DNS-имя, в примере используется db01.local.net
2. Назначаем для этого имени список IP-адресов, соответствующих узлам pureScale.
Правильный способ: Внести записи в инфраструктуру DNS-серверов.

"Колхозный" способ: Внести записи в системе, где используется JDBC-драйвер в файле /etc/hosts.
Пример списка в /etc/hosts:

172.20.1.1 db01.local.net
172.20.1.2 db01.local.net
172.20.1.3 db01.local.net

3. Используем ссылку вида jdbc:db2://db01.local.net/<ALIAS> для подключения.

Приведенные выше пункты нужны для установки первоначального соединения.
Драйвер обращается по DNS-имени и получает список IP-адресов, которые этому имени соответствуют.
Далее драйвер будет по-очереди пробовать соединиться по каждому адресу из списка.

Подключившись, драйвер получит актуальный список имен узлов кластера и будет работать уже по этому списку.
Внимание! Именно имен, поэтому эти имена также должны резолвиться со стороны клиента (JDBC-драйвера).
Поэтому, крайне желательно использовать инфраструктуру DNS-серверов и описывать имена/адреса там.
Список имен узлов кластера можно получить выполнив на любом из узлов кластера команду: db2pd -db <имя базы> -serverlist

4. Выставляем следующие дополнительные (рекомендуемые для PureScale) параметры JDBC-соединения:
connectionTimeout - нужно выставлять обязательно, ограничивает максимальное время (в секундах) попыток установить подключение до возврата ошибки в приложение. Иначе будет "бесконечное" число попыток.

enableSeamlessFailover - "прозрачное" восстановление состояния, если обрыв соединения произошел в процессе выполнения SQL-оператора.
queryCloseImplicit - рекомендуется выставить, если включен параметр enableSeamlessFailover.
enableSysplexWLB - нужно включать обязательно в случае pureScale. Разрешает работу алгоритмов балансировки нагрузки.

Итоговая JDBC URL:
jdbc:db2://db01.local.net:50000/TESTDB:connectionTimeout=1;enableSeamlessFailover=1;queryCloseImplicit=2;enableSysplexWLB=1;
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Расспараллеливание запросов в DB2 PureScale 10.1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]