<?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 => 'fr',
  ),
  'this' => 
  array (
    0 => 'oci8.fan.php',
    1 => 'Support de FAN (Fast Application Notification : Application de notification Rapide) OCI8',
    2 => 'Support de FAN (Fast Application Notification : Application de notification Rapide) OCI8',
  ),
  'up' => 
  array (
    0 => 'book.oci8.php',
    1 => 'OCI8',
  ),
  'prev' => 
  array (
    0 => 'oci8.connection.php',
    1 => 'Gestion de la connexion OCI8 et de la mise en file d\'attente',
  ),
  'next' => 
  array (
    0 => 'oci8.taf.php',
    1 => 'Le support de la reprise transparente d\'application (TAF) d\'OCI8',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'fr',
    '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">Support de FAN (Fast Application Notification : Application de notification Rapide) OCI8</h1>

  <p class="para">
   Le support de FAN fournit un basculement de connexion rapide,
   une fonctionnalité de haute disponibilité pour la base de données Oracle.
   Il permet aux scripts PHP OCI8 d&#039;être notifiés lorsqu&#039;une machine
   de base de données ou une instance de base de données devient non
   disponible. Sans FAN, OCI8 peut se figer en cas d&#039;atteinte du délai maximal
   TCP, et une erreur est retournée, ce qui peut prendre plusieurs minutes.
   L&#039;activation de FAN en OCI8 permet aux applications de détecter les erreurs
   et de se re-connecter à une instance de connexion disponible sans
   que le serveur Web n&#039;ait besoin d&#039;en connaître.
  </p>
  <p class="para">
   Le support de FAN est disponible lorsque les bibliothèques clientes
   Oracle liées à PHP et la base de données Oracle sont en version
   10gR2 ou supérieures.
  </p>
  <p class="para">
   FAN fait bénéficier aux utilisateurs de la technologie de cluster Oracle (RAC)
   car les connexions survivantes aux instances de base de données peuvent
   être effectuées immédiatement. Les utilisateurs de Data Guard Oracle avec un
   broker, vont voir les événements FAN générés lorsqu&#039;une base de données
   passe en ligne. Les bases de données qui ne font pas partie d&#039;un cluster
   vont envoyer des événements FAN lorsque la base de données redémarre.
  </p>
  <p class="para">
   Pour les connexions actives, lorsqu&#039;une machine ou une instance de
   base de données devient indisponible, une erreur de connexion sera retournée
   par la fonction de l&#039;extension OCI8 appelée. Lors d&#039;une reconnexion
   d&#039;un script sous-jacent PHP, une connexion à une instance de base de données
   survivante sera établie. L&#039;extension OCI8 va également, de façon transparente,
   nettoyer toutes les connexions inactives affectées par une machine de
   base de données ou une instance en échec, aussi, les appels de connexion PHP
   vont établir une nouvelle connexion sans que le script n&#039;en connaisse,
   faisant ainsi aucune interruption de service.
  </p>
  <p class="para">
   Lorsque <a href="oci8.configuration.php#ini.oci8.events" class="link">oci8.events</a>
   vaut <code class="literal">On</code>, il est suggéré de définir
   <a href="oci8.configuration.php#ini.oci8.ping-interval" class="link">oci8.ping_interval</a>
   à -1 pour désactiver le ping, sachant que l&#039;activation des événements FAN
   fournit un gestionnaire de connexions pro-actif des connexions inactives
   devenues invalides par une interruption de service.
  </p>
  <p class="para">
   Pour activer le support FAN en PHP OCI8, compilez PHP OCI8 avec les
   bibliothèques Oracle 10gR2 ou supérieures, puis, suivez ces étapes :
  </p>
  <p class="para">
   <ul class="itemizedlist">
    <li class="listitem">
     <span class="simpara">
      Avec les privilèges d&#039;administrateur de la base de données, utiliser
      un programme comme SQL*Plus pour activer le service de base de données
      pour poster les événements FAN ; par exemple :
     </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">
      Editez le fichier php.ini et ajoutez :
     </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 l&#039;application ne gère toujours pas les conditions d&#039;erreur
      OCI8, modifiez-le pour détecter les échecs. Ceci peut nécessiter
      la re-connexion et la ré-exécution des requêtes.
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      Exécuter l&#039;application, se connecter à la base de données
      Oracle 10gR2 ou supérieures.
     </span>
    </li>
   </ul>
  </p>
</div>
<?php manual_footer($setup); ?>