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

Si votre application est sensible à la latence réseau et que vous souhaitez réduire la latence réseau entre l'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 des applications en réduisant 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 remplie :

  • La machine virtuelle doit être exécutée sous Linux. Les plates-formes prises en charge sont : Oracle Linux x86_64 et Oracle Linux Arm (aarch64).

  • Les paramètres de noyau au niveau du 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 d'utilisation des 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 fichiers JAR de compagnon et de pilote JDBC Oracle Database :

    • Sélectionnez un pilote de version 23.4 ou supérieure parmi les pilotes disponibles sous Oracle Database 23ai JDBC Driver & UCP Downloads - Free Release.

    • Sélectionnez un pilote de version 19.23 ou supérieure parmi les pilotes disponibles sous Oracle Database 19c JDBC Driver & UCP Downloads - Long Term Release

  2. Téléchargez le fichier de bibliothèque Oracle JDBC TCP Fast Open (TFO).
    1. Sur la page Pilote JDBC Oracle Database et téléchargements de fichiers JAR de compagnon, développez Oracle JDBC TCP Fast Open (TFO) Library v1
    2. Téléchargez le fichier .zip de la bibliothèque native 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 d'accès 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.

      Par 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.

      Par 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é).

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

      Par 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.

      Par 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.

      Par 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 ouvertes rapides TCP avec Python

Décrit les exigences d'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. Installez Python et le pilote python-oracledb.

    Utilisez la dernière version de python-orabledb (la version 2.1.0 ou une version ultérieure 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 lorsque vous vous connectez à une instance Autonomous Database.

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

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

Connexions ouvertes rapides TCP 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, ou 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)))

    Vous pouvez également définir le paramètre sqlnet.ora :

    USE_TCP_FAST_OPEN=yes