Spec-Zone .ru
спецификации, руководства, описания, API

21.3.9. Failover с Connector/J

Connector/J обеспечивает полезную реализацию выравнивания нагрузки для Кластера или мультиосновное развертывание, как объяснено в Разделе 21.3.8, "Выравнивание нагрузки с Connector/J". С Connector/J 5.1.12, эта та же самая реализация используется для того, чтобы сбалансировать загрузку между ведомыми устройствами только для чтения с ReplicationDriver. Пытаясь сбалансировать рабочую нагрузку между многократными серверами, драйвер должен определить, когда безопасно подкачать серверы, делая, таким образом, в середине транзакции, например, мог вызвать проблемы. Важно не потерять информацию о состоянии. Поэтому Connector/J только попытается выбрать новый сервер, когда одно из следующего произойдет:

  1. В границах транзакции (транзакции явно фиксируются или откатываются).

  2. Встречаются с коммуникационным исключением (государство SQL, запускающееся с "08").

  3. Когда a SQLException условия соответствий, определенные пользователем, используя точки расширения, определенные loadBalanceSQLStateFailover, loadBalanceSQLExceptionSubclassFailover или loadBalanceExceptionChecker свойства.

Третье условие вращает приблизительно три новых свойства, начатые с Connector/J 5.1.13. Это позволяет Вам управлять который SQLExceptions инициировали failover.

В то время как эти три перестали работать - по условиям, перечисленным, ранее удовлетворяют большинству ситуаций, если autocommit включается, Connector/J никогда не повторно балансируется, и продолжает использовать то же самое физическое соединение. Это может быть проблематично, особенно когда выравнивание нагрузки используется, чтобы распределить загрузку только для чтения через многократные ведомые устройства. Однако, Connector/J может быть сконфигурирован, чтобы повторно балансироваться после того, как определенное число операторов выполняется, когда autocommit включается. Эта функциональность зависит от следующих свойств: