Utilisation de TCP Fast Open (TFO) pour connecter des clients à Autonomous Database

Si votre application est sensible à la latence réseau et que vous souhaitez réduire la latence réseau entre votre application et la base de données, vous pouvez activer TCP Fast Open (TFO).

Selon les caractéristiques de votre application, les connexions TFO peuvent améliorer les performances de l'application en diminuant la latence réseau pour les connexions client.

Prérequis pour les connexions TCP Fast Open (TFO)

Répertorie les prérequis pour l'utilisation des connexions TCP Fast Open (TFO) avec Autonomous Database.

Pour utiliser TCP Fast Open (TFO) afin de se connecter à une instance Autonomous Database, l'application client requiert les éléments suivants :

  • Le client doit être exécuté sur une machine virtuelle dans Oracle Cloud Infrastructure.

  • L'une des conditions suivantes doit être vraie :

  • La machine virtuelle doit être en cours d'exécution sous Linux. Les plates-formes prises en charge sont les suivantes : Oracle Linux x86_64 et Oracle Linux Arm (aarch64).

  • Les paramètres de noyau de niveau système d'exploitation suivants doivent être définis :

    • En tant qu'utilisateur root, définissez les paramètres suivants :
      • sysctl -w net.ipv4.tcp_fastopen=5
      • sysctl -w net.ipv4.tcp_fastopen_blackhole_timeout_sec=0

      Vérifiez les valeurs des paramètres du noyau au niveau du système d'exploitation :

      cat /proc/sys/net/ipv4/tcp_fastopen
      5
      cat /proc/sys/net/ipv4/tcp_fastopen_blackhole_timeout_sec
      0

Connexions JDBC Thin avec TCP Fast Open

Décrit les exigences relatives à l'utilisation de connexions JDBC Thin avec TCP Fast Open (TFO) sur Autonomous Database.

Assurez-vous que l'environnement client et les prérequis client sont respectés. Pour plus d'informations, reportez-vous à Prérequis pour les connexions TCP Fast Open (TFO).

Pour utiliser JDBC avec TCP Fast Open (TFO), procédez comme suit :

  1. Téléchargez le dernier pilote JDBC thin.

    A partir de la page Téléchargements de pilotes JDBC et de fichiers JAR de composant Oracle Database :

    • Sélectionnez une version de pilote 23.4 ou supérieure parmi les pilotes disponibles sous Téléchargements de pilotes JDBC et UCP Oracle Database 23ai - Version gratuite.

    • Sélectionnez une version de pilote 19.23 ou supérieure parmi les pilotes disponibles sous Pilotes JDBC et téléchargements UCP Oracle Database 19c - Version à long terme

  2. Téléchargez le fichier de bibliothèque Oracle JDBC TCP Fast Open (TFO).
    1. Sur la page Téléchargements du pilote JDBC et des fichiers JAR de compagnon Oracle Database, développez Bibliothèque Oracle JDBC TCP Fast Open (TFO) v1
    2. Téléchargez le fichier .zip natif de la bibliothèque pour votre plate-forme client :
      • Bibliothèque JDBC TFO pour Linux x86_64, fichier de bibliothèque pour "x86_64" pour Linux sur Intel.

      • Fichier de bibliothèque JDBC TFO pour Linux AARCH64 pour "arm64" pour Linux sur Arm.

  3. Chargez la bibliothèque native dans l'environnement dans lequel vous exécutez votre application.

    Définissez les variables d'environnement suivantes dans le chemin de la bibliothèque :

    1. Exportez LD_PRELOAD.
      export LD_PRELOAD=path_to/libtfojdbc1.so;
    2. Si vous utilisez JDK 8, exportez LD_LIBRARY_PATH.

      Exemple :

      export LD_LIBRARY_PATH=path_of_libtfojdbc1.so:path_to/jdk_8_home/jre/lib/amd64:path_to/jdk_8_home/jre/lib/amd64/server;
    3. Si vous utilisez JDK 17, exportez LD_LIBRARY_PATH.

      Exemple :

      export LD_LIBRARY_PATH=extracted_binaries_path:path_to/jdk_17_home/lib;
  4. Activez l'option TCP Fast Open (TFO) pour votre application.

    Voici quelques-unes des options permettant d'activer TFO dans la connexion client à la base de données :

    • Dans l'application client, définissez la propriété de connexion suivante :

      properties.put(OracleConnection.CONNECTION_PROPERTY_NET_USE_TCP_FAST_OPEN, "true");

      Par défaut, la propriété OracleConnection.CONNECTION_PROPERTY_NET_USE_TCP_FAST_OPEN est définie sur False (désactivée).

    • Ajoutez la propriété TFO dans l'URL JDBC.

      Exemple :

      jdbc:oracle:thin:@tcps://xxx.adb.yyy.oraclecloud.com:1521/zzz.adb.oraclecloud.com?oracle.net.useTcpFastOpen=true 

      Ou

      jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=xxx.adb.yyy.oraclecloud.com) (PORT=1521))(CONNECT_DATA=(SERVICE_NAME=zzz.adb.oraclecloud.com)))?oracle.net.useTcpFastOpen=true
    • Ajoutez le paramètre TNS suivant dans la section CONNECT_DATA de l'URL de connexion.

      Exemple :

      jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=xxx.adb.yyy.oraclecloud.com)(PORT=1521))
              (CONNECT_DATA=(USE_TCP_FAST_OPEN =ON)(SERVICE_NAME=zzz.adb.oraclecloud.com)))
    • Ajoutez le paramètre TNS suivant dans la section CONNECT_DATA de l'URL de connexion.

      Exemple :

      jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=xxx.adb.yyy.oraclecloud.com)(PORT=1521))(CONNECT_DATA=(TFO=ON)(SERVICE_NAME=zzz.adb.oraclecloud.com)))
  5. Exécutez l'application.

Connexions TCP Fast Open avec Python

Décrit les exigences relatives à l'utilisation de Python avec des connexions TCP Fast Open (TFO) sur Autonomous Database.

Assurez-vous que l'environnement client et les prérequis client sont respectés. Pour plus d'informations, reportez-vous à Prérequis pour les connexions TCP Fast Open (TFO).

Pour utiliser Python avec TCP Fast Open (TFO), procédez comme suit :

  1. Installation de Python et du pilote python-oracledb.

    Utilisez la dernière version de python-orabledb (la version 2.1.0 ou une version plus récente est requise).

    Pour plus d'informations, reportez-vous à Installation de Python et du pilote python-oracledb.

  2. Ajoutez le paramètre de connexion use_tcp_fast_open lors de la connexion à une instance Autonomous Database.

    Par exemple, utilisez cette option avec l'une des options suivantes :

    Pour plus d'informations, reportez-vous à Connexion d'applications Python à Autonomous Database.

Connexions TCP rapides ouvertes avec le client Oracle Call Interface pour les connexions C ou SQL*Plus

Décrit les exigences relatives à l'utilisation du client Oracle Call Interface avec TCP Fast Open (TFO) pour la connexion à Autonomous Database avec C ou SQL*Plus.

Assurez-vous que l'environnement client et les prérequis client sont respectés. Pour plus d'informations, reportez-vous à Prérequis pour les connexions TCP Fast Open (TFO).

Remarque

Vous pouvez activer TCP Fast Open (TFO) avec des connexions mTLS ou TLS. Pour plus d'informations, reportez-vous à la section Secure Connections to Autonomous Database with mTLS or with TLS et à la section Update Network Options to Allow TLS or Require Only Mutual TLS (mTLS) Authentication on Autonomous Database.

Pour utiliser Oracle Call Interface avec TCP Fast Open (TFO), procédez comme suit :

  1. Téléchargez le dernier client instantané Oracle pour Linux, version 23.4 ou supérieure, version 19.23 ou supérieure.
  2. Connectez-vous avec le paramètre USE_TCP_FAST_OPEN défini sur la valeur YES.

    Par exemple, ajoutez le paramètre USE_TCP_FAST_OPEN à connect_data dans la chaîne de connexion que vous utilisez pour vous connecter à Autonomous Database :

    (description= (retry_count=20)(retry_delay=3)(address=(protocol=tcps)
       (port=1522)(host=example.us-phoenix-1.oraclecloud.com))
       (connect_data= (USE_TCP_FAST_OPEN=yes)(service_name=example_medium.adb.oraclecloud.com))
           (security=(ssl_server_dn_match=yes)))

    Ou définissez le paramètre sqlnet.ora :

    USE_TCP_FAST_OPEN=yes