Configuration de la continuité des applications sur la base de données Autonomous AI
Pour configurer la continuité des applications, vous devez activer la continuité des applications pour le service de base de données utilisé par votre application, et configurer le type de basculement et le délai d'expiration de la purge. En outre, vous devez définir plusieurs paramètres de chaîne de connexion qui permettent la haute disponibilité.
- Configuration de votre service pour activer la continuité des applications
UtilisezDBMS_APP_CONT_ADMINpour activer la continuité des applications ou la continuité transparente des applications : - Utilisation de la fonction FAN (Fast Application Notification)
Lors de la connexion à la base de données Autonomous AI, la base de données Oracle configure automatiquement la fonction FAN. Pour les déploiements d'application avec la base de données Autonomous AI, les événements FAN (Fast Application Notification) pour les pannes non planifiées sont dirigés vers le gestionnaire de connexions (CMAN) et aucune étape de configuration d'application client n'est requise pour utiliser la fonction FAN. - Configuration de la chaîne de connexion pour la haute disponibilité
Pour maintenir la haute disponibilité, Oracle vous recommande de définir certains paramètres de chaîne de connexion lorsque vous vous connectez à Oracle Autonomous AI Database. - Configuration des options client propres au pilote
En fonction de votre client et de votre pilote, vous devez vous assurer que le client est correctement configuré pour utiliser la continuité des applications lors de la connexion à Autonomous AI Database 
Configuration de votre service pour activer la continuité des applications
Utilisez DBMS_APP_CONT_ADMIN pour activer la continuité des applications ou la continuité transparente des applications :
                  
- 
Continuité de l'application : définissez cette option de basculement à l'aide de la procédure
DBMS_APP_CONT_ADMIN.ENABLE_AC. La procédureENABLE_ACprend trois paramètres :SERVICE NAMEest le nom de service à modifier,FAILOVER_RESTORE, défini surLEVEL1pour sélectionner Application Continuity(AC) etREPLAY_INITIATION_TIMEOUT, le délai d'expiration de réexécution qui indique le nombre de secondes après la soumission d'une demande pour autoriser la réexécution de cette demande.Par exemple, en tant qu'utilisateur ADMIN, pour activer la continuité des applications pour le service
TPURGENT:execute DBMS_APP_CONT_ADMIN.ENABLE_AC( 'databaseid_tpurgent.adb.oraclecloud.com', 'LEVEL1', 600); - 
Continuité transparente des applications (TAC) : définissez cette option de basculement à l'aide de la procédure
DBMS_APP_CONT_ADMIN.ENABLE_TAC. La procédureENABLE_TACprend trois paramètres :SERVICE NAMEest le nom de service à modifier,FAILOVER_RESTORE, défini surAUTOpour sélectionner Transparent Application Continuity (TAC) etREPLAY_INITIATION_TIMEOUTest le délai d'expiration de réexécution qui indique le nombre de secondes après la soumission d'une demande pour autoriser la réexécution de cette demande.Par exemple, en tant qu'utilisateur ADMIN, pour activer la continuité d'application transparente pour le service
TPavec le délai d'expiration de réexécution défini sur 20 minutes :execute DBMS_APP_CONT_ADMIN.ENABLE_TAC( 'databaseid_tp.adb.oraclecloud.com', 'AUTO', 1200); - 
Désactivé : désactivez le basculement à l'aide de la procédure
DBMS_APP_CONT_ADMIN.DISABLE_FAILOVER().Par exemple, en tant qu'utilisateur ADMIN, pour désactiver le basculement pour le service
TP, procédez comme suit :execute DBMS_APP_CONT_ADMIN.DISABLE_FAILOVER( 'databaseid_tp.adb.oraclecloud.com'); 
Recherche du paramètre de nom de service pour la continuité des applications
Selon le type de charge globale, utilisez une commande semblable à la suivante pour SELECT à partir de DBA_SERVICES sur la base de données et identifiez le service dans lequel activer la continuité des applications :
                     
- 
Lakehouse
SELECT name, failover_type FROM DBA_SERVICES; NAME FAILOVER_TYPE ------------------------------------------------------- ------------- nvt21_adb1_low.adb.oraclecloud.com nvt21_adb1_high.adb.oraclecloud.com nvt21_adb1_medium.adb.oraclecloud.com - 
Traitement des transactions ou Base de données JSON
SELECT name, failover_type FROM DBA_SERVICES; NAME FAILOVER_TYPE ------------------------------------------------------- ---------------- nvt21_adb1_tp.adb.oraclecloud.com nvt21_adb1_tpurgent.adb.oraclecloud.com nvt21_adb1_low.adb.oraclecloud.com nvt21_adb1_high.adb.oraclecloud.com nvt21_adb1_medium.adb.oraclecloud.com 
Notez que FAILOVER_TYPE pour le service high n'a aucune valeur et indique que la continuité des applications est désactivée.
                     
Vérifier que la continuité d'application est activée pour un service
Selon le type de charge globale, vérifiez la sortie de l'interrogation sur DBA_SERVICES pour vérifier que la continuité des applications est activée.
                     
- 
Lakehouse
SELECT name, failover_type FROM DBA_SERVICES; NAME FAILOVER_TYPE ------------------------------------------------------- -------------- nvt21_adb1_low.adb.oraclecloud.com nvt21_adb1_high.adb.oraclecloud.com AUTO nvt21_adb1_medium.adb.oraclecloud.com - 
Traitement des transactions ou Base de données JSON
SELECT name, failover_type FROM DBA_SERVICES; NAME FAILOVER_TYPE ------------------------------------------------------- -------------- nvt21_adb1_tp.adb.oraclecloud.com nvt21_adb1_tpurgent.adb.oraclecloud.com TRANSACTION nvt21_adb1_low.adb.oraclecloud.com nvt21_adb1_high.adb.oraclecloud.com AUTO nvt21_adb1_medium.adb.oraclecloud.com 
La valeur FAILOVER_TYPE pour le service high est désormais AUTO, ce qui indique que la continuité d'application transparente (TAC) est activée et que la valeur FAILOVER_TYPE pour le service tpurgent est maintenant TRANSACTION, ce qui indique que la continuité d'application (AC) est activée. 
                     
Utilisation de la fonction Fast Application Notification (FAN)
Lors de la connexion à la base de données Autonomous AI, la base de données Oracle configure automatiquement la fonction FAN. Pour les déploiements d'application avec la base de données Autonomous AI, les événements FAN (Fast Application Notification) pour les pannes non planifiées sont dirigés vers le gestionnaire de connexions (CMAN) et aucune étape de configuration d'application client n'est requise pour utiliser la fonction FAN.
La fonction FAN est automatiquement gérée pour vous par le pilote client et par le gestionnaire de connexions de base de données Autonomous AI :
- Pour les événements de maintenance planifiés, la fonction FAN est envoyée en bande, directement aux pilotes. Pour ce faire, les applications doivent utiliser les pools Oracle ou TAC pour les limites de demande ou les tests de connexion.
 - Les pilotes client Oracle Database et Oracle sont vidés des tests de connexion et des limites de demande.
 
Pour plus d'informations, reportez-vous à Configuration client pour une disponibilité continue sur une base de données Autonomous AI.
Configuration de la chaîne de connexion pour la haute disponibilité
Pour maintenir la haute disponibilité, Oracle recommande de définir certains paramètres de chaîne de connexion lors de la connexion à Oracle Autonomous AI Database.
Définissez les paramètres CONNECT_TIMEOUT, RETRY_DELAY, RETRY_COUNT et  TRANSPORT_CONNECT_TIMEOUT dans la chaîne de connexion lorsque vous vous connectez à Oracle Autonomous AI Database. Les chaînes de connexion intégrées dans le fichier tnsnames.ora fourni par Oracle sont préconfigurées avec les valeurs appropriées pour la plupart des applications. Dans certains cas, selon les besoins de vos applications, vous devrez peut-être modifier les valeurs préconfigurées d'une chaîne de connexion.
                  
Utilisez le code TNS suivant pour tous les clients Oracle de version 12.2 ou supérieure :
alias = (DESCRIPTION = (CONNECT_TIMEOUT= 90)(RETRY_COUNT=50) (RETRY_DELAY=3)(TRANSPORT_CONNECT_TIMEOUT=3) (ADDRESS_LIST = (LOAD_BALANCE=on) (ADDRESS = (PROTOCOL = TCP)(HOST=scan-host)(PORT=1521))) (CONNECT_DATA=(SERVICE_NAME = service-name)))
Utilisez le code suivant pour les connexions JDBC utilisant le pilote Oracle version 12.1 ou antérieure ::
alias = (DESCRIPTION = (CONNECT_TIMEOUT= 15)(RETRY_COUNT=50) (RETRY_DELAY=3) (ADDRESS_LIST = (LOAD_BALANCE=on) (ADDRESS = (PROTOCOL = TCP)(HOST=scan-host)(PORT=1521))) (CONNECT_DATA=(SERVICE_NAME = service-name)))
Remarques concernant les chaînes de connexion :
- 
Pour les clients JDBC et ODP, le temps d'attente de connexion au pool doit être configuré pour être plus long que
CONNECT_TIMEOUTdans la chaîne de connexion. - 
N'utilisez pas de résolution de noms Easy Connect sur le client car ces connexions n'ont pas de fonctions de haute disponibilité.
 
Pour plus d'informations sur le fichier tnsnames.ora, reportez-vous à Téléchargement des informations d'identification client (portefeuilles).
                  
Configuration des options client propres au pilote
Selon votre client et votre pilote, vous devez vous assurer que le client est correctement configuré pour utiliser la continuité des applications lors de la connexion à la base de données Autonomous AI
- Configuration du pilote léger JDBC
Affiche les détails permettant d'utiliser la continuité des applications avec la base de données Autonomous AI avec un client utilisant le pilote léger JDBC. - Configuration du pilote Oracle Call Interface (OCI)
Affiche les détails permettant d'utiliser la continuité des applications avec une base de données Autonomous AI avec un client utilisant le pilote Oracle Call Interface (OCI). - Configuration du pilote de fournisseur non géré ODP.NET
Affiche les détails de l'utilisation de la continuité des applications avec la base de données Autonomous AI avec un client utilisant le pilote de fournisseur non géré ODP.NET. 
Configuration du pilote JDBC Thin
Affiche les détails d'utilisation de la continuité des applications avec la base de données Autonomous AI avec un client utilisant le pilote léger JDBC.
Si votre application utilise le pilote léger JDBC, suivez les exercices recommandés suivants :
- 
Utilisation du cache d'instructions JDBC pour la couverture et les performances.
Pour une couverture et des performances optimales, utilisez le cache d'instructions du pilote JDBC à la place du cache d'instructions du serveur d'applications. Cela permet au pilote de savoir que les instructions sont fermées et que l'espace mémoire doit être libéré à la fin des demandes.
Pour utiliser le cache d'instructions JDBC, employez la propriété de connexion
oracle.jdbc.implicitStatementCacheSize(OracleConnection.CONNECTION_PROPERTY_IMPLICIT_STATEMENT_CACHE_SIZE). Le cache d'instructions s'applique par connexion. La valeur de la taille du cache correspond au nombre d'élémentsopen_cursors. Par exemple :oracle.jdbc.implicitStatementCacheSize=nnn, oùnnnest généralement compris entre 10 et 100, et est égal au nombre de curseurs ouverts gérés par l'application. - 
Réglage du processus Garbage Collector.
Pour de nombreuses applications, le réglage par défaut du processus Garbage Collector est suffisant. Pour les applications qui renvoient et conservent de grandes quantités de données, vous pouvez utiliser des valeurs plus élevées, telles que 2 Go ou plus. Par exemple :
java -Xms3072m -Xmx3072m
Il est recommandé de définir l'allocation de mémoire pour la taille initiale de portion de mémoire Java (ms) et la taille maximale de portion de mémoire (mx) sur la même valeur. Cela empêche l'utilisation des ressources système lors de la croissance et de la réduction de la portion de mémoire.
 - 
Lorsque vous utilisez le pool de connexions universel (UCP), désactivez le basculement de connexion rapide. Par exemple :
PoolDataSource.setFastConnectionFailoverEnabled(false) 
Rubrique parent : Configuration des options client propres au pilote
Configuration du pilote Oracle Call Interface (OCI)
Affiche les détails d'utilisation de la continuité des applications avec une base de données Autonomous AI avec un client utilisant le pilote Oracle Call Interface (OCI).
Si l'application client utilise le pilote Oracle Call Interface (OCI), suivez l'exercice recommandé suivant :
- 
Remplacez
OCIStmtPrepareparOCIStmtPrepare2.OCIStmtPrepare()est en phase d'abandon depuis la version 12.2. Toutes les applications doivent utiliserOCIStmtPrepare2(). La continuité d'application transparente (TAC) et la continuité d'application (AC) autorisentOCIStmtPreparemais ne réexécutent pas cette instruction. 
Ne configurez pas de serveurs ONS dans oraaccess.xml :
                     
<ons>
   <servers> 
   <!—Do not enter any values --> 
   </servers> 
</ons>En outre, pour Autonomous AI Database Serverless, ne configurez pas la section <fan> :
<fan>  
<!-- only possible values are "trace" or "error" -->  
    <subscription_failure_action>
   </subscription_failure_action>  
</fan>Rubrique parent : Configuration des options client propres au pilote
Configuration du pilote de fournisseur non géré ODP.NET
Affiche les détails d'utilisation de la continuité des applications avec la base de données Autonomous AI avec un client utilisant le pilote de fournisseur non géré ODP.NET.
Le pilote de fournisseur non géré ODP.NET utilise automatiquement la continuité des applications lorsque la continuité des applications est activée sur le service de base de données que votre application utilise pour se connecter à la base de données Autonomous AI.
Lors de la connexion d'une application ODP.NET à votre base de données Autonomous AI sans serveur, ne configurez pas de serveurs ONS dans oraaccess.xml :
                     
<ons>
   <servers> 
   <!—Do not enter any values --> 
   </servers> 
</ons>Rubrique parent : Configuration des options client propres au pilote