FCF versus TAF

В данной заметке речь идет про Fast Connection Fail-over (FCF) и Transparent Application Failover (TAF), а конкретно чем различаются эти два механизма и какой предпочесть, если есть такая возможность.

Ниже авторский перевод из замечательной книги Oracle Database Programming using Java and Web Services. Курсив мой.

Application-Level Connection Retries. FCF предоставляет приложению возможность решения о повторе попытки соединения в случае сбоя (т.е. можно, получив сообщение, решить, стоит ли выполнять автоматическое переподключение или нет. Например если нельзя восстановить контекст сессии, то стоит сразу выдать ошибку). TAF выполняет переподключение автоматически на уровне OCI/NET без контроля со стороны приложения.

Integration with Connection Cache
. FCF интегрирован с Implicit Connection Cache. Разорванные соединения автоматически инвалидируются (и таким образом не используются, а создаются новые соединения). TAF работает на уровне отдельных соединений и не уведомляет cache о произошедшем сбое.

Event Based. FCF работает поверх ONS, таким образом произошедшие в кластере события быстрее получают как активные, так и неактивные сессии. С другой стороны, TAF базируется на сетевых вызовах (таки образом неактивные соединения не получают сообщения об ошибке пока не сделают вызов). TAF не интегрирован с JDBC connection cache и не обеспечивает балансировку нагрузки во время выполнения.

Load Balancing. FCF и балансировка нагрузки времени выполнения поддерживают событие UP для сервиса, распределяя нагрузку на вновь введеные узлы для и обеспечивая балансировку нагрузки во время выполнения.

Transaction management. FCF автоматически откатывает необходимые транзакции. TAF же требует от приложения явной операции rollback.


Настройка. Для корректной работы TAF следует произвести специфические настройки в ОС, настроить TCP timeout (см. например здесь). FCF одинаково работает в любой среде.



Важно знать, что не следует одновременно конфигурировать оба механизма

"
Note: Do not configure Transparent Application Failover (TAF) with
Fast Connection Failover for JDBC thick clients as TAF processing will
interfere with FAN ONS processing
"

Для дальнейшего чтения всем рекомендую metalink Note:334471.1
и естественно пост автора рекомендуемой книжки.


И только для "настоящих пацанов" рекомендую раздел HA event notification из OCI Programming Advanced Topics, которая рассказыват, как в OCI, работая через TAF получить таки доступ к событиям кластера с помощью подписки на Advanced Queue в отдельном соединении

Комментариев нет:

Отправить комментарий