Uso de TCP Fast Open (TFO) para conectar clientes a Autonomous Database

Si la aplicación es sensible a la latencia de red y desea reducir la latencia de red entre la aplicación y la base de datos, puede activar TCP Fast Open (TFO).

En función de las características de la aplicación, las conexiones TFO pueden mejorar el rendimiento de la aplicación al disminuir la latencia de red para las conexiones de cliente.

Requisitos para conexiones TCP de apertura rápida (TFO)

Muestra los requisitos para utilizar conexiones TCP Fast Open (TFO) con Autonomous Database.

Para utilizar TCP Fast Open (TFO) para conectarse a una instancia de Autonomous Database, la aplicación cliente necesita lo siguiente:

  • El cliente debe ejecutarse en una máquina virtual en Oracle Cloud Infrastructure.

  • Una de las siguientes opciones debe ser verdadera:

  • La máquina virtual debe estar en ejecución en Linux. Las plataformas soportadas son: Oracle Linux x86_64 y Oracle Linux Arm (aarch64).

  • Se deben definir los siguientes parámetros de núcleo del nivel del sistema operativo:

    • Como usuario root, defina los siguientes parámetros:
      • sysctl -w net.ipv4.tcp_fastopen=5
      • sysctl -w net.ipv4.tcp_fastopen_blackhole_timeout_sec=0

      Verifique los valores de los parámetros del núcleo del nivel del sistema operativo:

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

Conexiones JDBC Thin con TCP Fast Open

Describe los requisitos para utilizar conexiones JDBC Thin con TCP Fast Open (TFO) en Autonomous Database.

Asegúrese de que se cumplen los requisitos previos del cliente y el entorno del cliente. Consulte Prerequisites for TCP Fast Open (TFO) Connections para obtener más información.

Para utilizar JDBC con TCP Fast Open (TFO), realice los siguientes pasos:

  1. Descargue el último controlador JDBC-thin.

    En la página Descargas del controlador JDBC de Oracle Database y archivos jar complementarios:

    • Seleccione una versión de controlador 23.4 o superior de los controladores disponibles en Oracle Database 23ai JDBC Driver & UCP Downloads - Free Release.

    • Seleccione una versión de controlador 19.23 o superior de los controladores disponibles en Oracle Database 19c JDBC Driver & UCP Downloads - Long Term Release

  2. Descargue el archivo de biblioteca Oracle JDBC TCP Fast Open (TFO).
    1. En la página Oracle Database JDBC driver and Companion Jars Downloads, amplíe Oracle JDBC TCP Fast Open (TFO) Library v1
    2. Descargue el archivo .zip de la biblioteca nativa para su plataforma cliente:
      • JDBC TFO Library for Linux x86_64, archivo de biblioteca para "x86_64" para Linux en Intel.

      • Biblioteca TFO de JDBC para el archivo de biblioteca AARCH64 de Linux para "arm64" para Linux en Arm.

  3. Cargue la biblioteca nativa en el entorno en el que ejecuta la aplicación.

    Configure las siguientes variables del entorno en la ruta de la biblioteca:

    1. Exporte LD_PRELOAD.
      export LD_PRELOAD=path_to/libtfojdbc1.so;
    2. Si utiliza JDK 8, exporte LD_LIBRARY_PATH.

      Por ejemplo:

      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 utiliza JDK 17, exporte LD_LIBRARY_PATH.

      Por ejemplo:

      export LD_LIBRARY_PATH=extracted_binaries_path:path_to/jdk_17_home/lib;
  4. Active la opción TCP Fast Open (TFO) para la aplicación.

    A continuación, se muestran algunas de las opciones para activar TFO en la conexión del cliente a la base de datos:

    • En la aplicación cliente, defina la siguiente propiedad de conexión:

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

      De manera predeterminada, la propiedad OracleConnection.CONNECTION_PROPERTY_NET_USE_TCP_FAST_OPEN está establecida en false (desactivada).

    • Agregue la propiedad TFO en la URL de JDBC.

      Por ejemplo:

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

      O bien

      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
    • Agregue el siguiente parámetro TNS en la sección CONNECT_DATA de la URL de conexión.

      Por ejemplo:

      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)))
    • Agregue el siguiente parámetro TNS en la sección CONNECT_DATA de la URL de conexión.

      Por ejemplo:

      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. Ejecute la aplicación.

Conexiones abiertas rápidas TCP con Python

Describe los requisitos para utilizar Python con conexiones TCP Fast Open (TFO) en Autonomous Database.

Asegúrese de que se cumplen los requisitos previos del cliente y el entorno del cliente. Consulte Prerequisites for TCP Fast Open (TFO) Connections para obtener más información.

Para utilizar Python con TCP Fast Open (TFO), realice los siguientes pasos:

  1. Instalar Python y el controlador python-oracledb.

    Utilice la última versión de python-orabledb (se necesita la versión 2.1.0 o posterior).

    Consulte Instalación de Python y el controlador python-oracledb para obtener más información.

  2. Agregue el parámetro de conexión use_tcp_fast_open al conectarse a una instancia de Autonomous Database.

    Por ejemplo, utilice esta opción con una de las siguientes opciones:

    Consulte Conexión de aplicaciones Python a Autonomous Database para obtener más información.

Conexiones abiertas rápidas TCP con el cliente de Oracle Call Interface para conexiones C o SQL*Plus

Describe los requisitos para utilizar el cliente de Oracle Call Interface con TCP Fast Open (TFO) para conectarse con C o SQL*Plus a Autonomous Database.

Asegúrese de que se cumplen los requisitos previos del cliente y el entorno del cliente. Consulte Prerequisites for TCP Fast Open (TFO) Connections para obtener más información.

Para utilizar Oracle Call Interface con TCP Fast Open (TFO), realice los siguientes pasos:

  1. Descargue el último cliente instantáneo de Oracle para Linux, ya sea la versión 23.4 o posterior, o la 19.23 o posterior.
  2. Conéctese con el parámetro USE_TCP_FAST_OPEN definido en el valor YES.

    Por ejemplo, agregue el parámetro USE_TCP_FAST_OPEN a connect_data en la cadena de conexión que utilice para conectarse a 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)))

    O defina el parámetro sqlnet.ora:

    USE_TCP_FAST_OPEN=yes