Назад | Перейти на главную страницу

Резервные приложения DB2 10.5 HADR только для чтения не подключаются к основному

Сценарий:

сервер SERV_A, база данных DBNAME первичная

сервер SERV_B, база данных DBNAME в режиме ожидания с включенной DB2_HADR_ROS

Затем возникает такая ситуация:

  1. соединение CON выполняется от клиента к DBNAME, когда первичный находится на SERV_A
  2. переход DBNAME к SERV_B -> DBNAME становится основным на SERV_B
  3. соединение перенаправляется с ACR (Automatic Client Reroute) на SERV_B
  4. возврат DBNAME обратно к SERV_A -> DBNAME становится основным на SERV_A
  5. Подключение CON не возвращается к SERV_A, но остается подключенным к SERV_B в режиме чтения.

Как избежать этой ситуации? Активное соединение остается в резервной базе данных в режиме только для чтения, пока вы не перезапустите соединение. Еще хуже обстоит дело с некоторыми приложениями, которые используют пулы соединений (Websphere Application Server), когда вам необходимо перезапустить весь сервер приложений, чтобы заставить пул соединений сначала подключиться к первичному серверу.

Это происходит с dsdriver ibm db2 с настроенным ACR, драйвером jdbc типа 4. Проверено на нескольких версиях (пакетах исправлений) db2 10.5 и 11.

ACR не поддерживается reads on standby характерная черта.

Читает об ограничениях в режиме ожидания

Используйте VIP.

Вы пробовали это с TSAMP, настроенным с VIP? Уже много лет я не видел, чтобы кто-то пытался полагаться только на ACR без TSAMP.