1
0
mirror of https://github.com/php/doc-ru.git synced 2026-04-29 10:13:14 +02:00
Files
archived-doc-ru/reference/oci8/fan.xml
T
2024-05-09 04:59:15 +03:00

119 lines
5.9 KiB
XML

<?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
-->