Files
php-doc-ru/reference/oci8/fan.xml
2024-05-09 04:59:15 +03:00

119 lines
5.9 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: f4c44b86948f70a7e89f582b500e2595452e00f0 Maintainer: rjhdby Status: ready --><!-- Reviewed: no -->
<chapter xml:id="oci8.fan" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Поддержка OCI8 Fast Application Notification (FAN)</title>
<para>
Поддержка FAN обеспечивает быстрое переподключение в случае сбоев,
что обеспечивает высокую доступность базы данных Oracle.
Эта функциональность позволяет PHP OCI8 скрипту получать оповещения
в случае если база данных или сервер, на котором она запущена, становятся
недоступны. Без FAN, OCI8 может подвиснуть, пока не будет превышено время ожидания
подключения и возвращена ошибка, что может занять несколько минут.
Разрешение FAN в OCI8 позволяет приложениям определять такие ошибки и
переподключаться к доступному экземпляру базы данных без ожидания
ответа от недоступной базы.
</para>
<para>
Поддержка FAN доступна если клиентские библиотеки Oracle, с которыми
собран PHP, и база данных Oracle имеют версию 10gR2 или более позднюю.
</para>
<para>
FAN даёт преимущества пользователям кластерной технологии Oracle (RAC),
так как подключение к доступной базе данных может быть произведено мгновенно.
Пользователи Oracle Data Guard с брокером могут наблюдать события FAN
создаваемые при переходе резервной базы в режим основной.
Отдельные установленные экземпляры базы данных будут
посылать события FAN при своём перезапуске.
</para>
<para>
Для активных соединений, когда сервер или экземпляр базы становятся
недоступны, будет возвращена ошибка соединения для текущей
запущенной функции модуля OCI8. При последующем переподключении
PHP-скрипта будет установлено соединение с работающим экземпляром
базы данных. Также модуль OCI8 прозрачно зачищает все ожидающие
соединения, затронутые падением сервера или базы данных, так что
новые соединения будут нормально устанавливаться без оглядки на какие-либо
проблемы с сервисом.
</para>
<para>
Если <link linkend="ini.oci8.events">oci8.events</link> установлено как
<literal>On</literal>, то предполагается, что
<link linkend="ini.oci8.ping-interval">oci8.ping_interval</link> установлено
в значение -1, так как включение событий FAN предоставляет
проактивное управление ожидающими соединениями.
</para>
<para>
Для включения поддержки FAN в PHP OCI8, соберите PHP OCI8 с библиотеками
Oracle 10gR2 или более поздними и выполните следующие шаги:
</para>
<para>
<itemizedlist>
<listitem>
<simpara>
Под аккаунтом привилегированного администратора баз данных, с помощью
программ типа SQL*Plus разрешите сервису базы отправлять оповещения FAN,
к примеру:
</simpara>
<para>
<informalexample>
<screen>
<![CDATA[
SQL> execute dbms_service.modify_service(
SERVICE_NAME => 'sales',
AQ_HA_NOTIFICATIONS => TRUE);
]]>
</screen>
</informalexample>
</para>
</listitem>
<listitem>
<simpara>
Добавьте в php.ini
</simpara>
<para>
<informalexample>
<screen>
<![CDATA[
oci8.events = On
]]>
</screen>
</informalexample>
</para>
</listitem>
<listitem>
<simpara>
Если приложение не обрабатывает ошибки соединения OCI8,
модифицируйте его таким образом, чтобы обрабатывало и производило,
например, переподключение и перезапуск запросов.
</simpara>
</listitem>
<listitem>
<simpara>
Запустите приложение соединяясь с базой данных Oracle версии 10gR2 или выше.
</simpara>
</listitem>
</itemizedlist>
</para>
</chapter>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->