<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/book.oci8.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'es',
  ),
  'this' => 
  array (
    0 => 'oci8.fan.php',
    1 => 'Soporte de FAN (Fast Application Notification : Notificaci&oacute;n R&aacute;pida de Aplicaci&oacute;n) OCI8',
    2 => 'Soporte de FAN (Fast Application Notification : Notificaci&oacute;n R&aacute;pida de Aplicaci&oacute;n) OCI8',
  ),
  'up' => 
  array (
    0 => 'book.oci8.php',
    1 => 'OCI8',
  ),
  'prev' => 
  array (
    0 => 'oci8.connection.php',
    1 => 'Gesti&oacute;n de la conexi&oacute;n OCI8 y la cola de espera',
  ),
  'next' => 
  array (
    0 => 'oci8.taf.php',
    1 => 'El soporte de la reanudaci&oacute;n transparente de aplicaci&oacute;n (TAF) de OCI8',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'es',
    'path' => 'reference/oci8/fan.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="oci8.fan" class="chapter">
 <h1 class="title">Soporte de FAN (Fast Application Notification : Notificación Rápida de Aplicación) OCI8</h1>

  <p class="para">
   El soporte de FAN proporciona un cambio de conexión rápido,
   una funcionalidad de alta disponibilidad para la base de datos Oracle.
   Permite a los scripts PHP OCI8 ser notificados cuando una máquina
   de base de datos o una instancia de base de datos se vuelve
   no disponible. Sin FAN, OCI8 puede bloquearse en caso de alcanzar el tiempo límite
   TCP, y se devuelve un error, lo cual puede tomar varios minutos.
   La activación de FAN en OCI8 permite a las aplicaciones detectar los errores
   y reconectarse a una instancia de conexión disponible sin
   que el servidor Web necesite conocerlo.
  </p>
  <p class="para">
   El soporte de FAN está disponible cuando las bibliotecas clientes
   Oracle vinculadas a PHP y la base de datos Oracle son de la versión
   10gR2 o superiores.
  </p>
  <p class="para">
   FAN beneficia a los usuarios de la tecnología de clúster Oracle (RAC)
   ya que las conexiones sobrevivientes a las instancias de base de datos pueden
   realizarse inmediatamente. Los usuarios de Oracle Data Guard con un broker,
   verán los eventos FAN generados cuando una base de datos pasa a estar en línea. Las bases de datos que no forman parte de un clúster
   enviarán eventos FAN cuando la base de datos se reinicie.
  </p>
  <p class="para">
   Para las conexiones activas, cuando una máquina o una instancia de
   base de datos se vuelve indisponible, se devolverá un error de conexión
   por la función de la extensión OCI8 llamada. Durante la reconexión
   de un script PHP subyacente, se establecerá una conexión a una instancia de base de datos
   sobreviviente. La extensión OCI8 también, de forma transparente,
   limpiará todas las conexiones inactivas afectadas por una máquina de
   base de datos o una instancia en fallo, así, las llamadas de conexión PHP
   establecerán una nueva conexión sin que el script lo sepa,
   evitando así cualquier interrupción del servicio.
  </p>
  <p class="para">
   Cuando <a href="oci8.configuration.php#ini.oci8.events" class="link">oci8.events</a>
   vale <code class="literal">On</code>, se sugiere definir
   <a href="oci8.configuration.php#ini.oci8.ping-interval" class="link">oci8.ping_interval</a>
   a -1 para desactivar el ping, sabiendo que la activación de los eventos FAN
   proporciona un gestor de conexiones proactivo de las conexiones inactivas
   que se han vuelto inválidas por una interrupción del servicio.
  </p>
  <p class="para">
   Para activar el soporte FAN en PHP OCI8, compile PHP OCI8 con las
   bibliotecas Oracle 10gR2 o superiores, luego, siga estos pasos:
  </p>
  <p class="para">
   <ul class="itemizedlist">
    <li class="listitem">
     <span class="simpara">
      Con los privilegios de administrador de la base de datos, utilice
      un programa como SQL*Plus para activar el servicio de base de datos
      para publicar los eventos FAN; por ejemplo:
     </span>
     <p class="para">
      <div class="informalexample">
       <div class="example-contents screen">
<div class="cdata"><pre>
    SQL&gt; execute dbms_service.modify_service(
                   SERVICE_NAME        =&gt; &#039;sales&#039;,
                   AQ_HA_NOTIFICATIONS =&gt; TRUE);
</pre></div>
       </div>
      </div>
     </p>
    </li>
    <li class="listitem">
     <span class="simpara">
      Edite el archivo php.ini y añada:
     </span>
     <p class="para">
      <div class="informalexample">
       <div class="example-contents screen">
<div class="cdata"><pre>
    oci8.events = On
</pre></div>
       </div>
      </div>
     </p>
    </li>
    <li class="listitem">
     <span class="simpara">
      Si la aplicación no gestiona aún las condiciones de error
      OCI8, modifíquela para detectar los fallos. Esto puede requerir
      la reconexión y la re-ejecución de las consultas.
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      Ejecute la aplicación, conéctese a la base de datos
      Oracle 10gR2 o superiores.
     </span>
    </li>
   </ul>
  </p>
</div>
<?php manual_footer($setup); ?>