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

Según las características de la aplicación, las conexiones TFO pueden mejorar el rendimiento de la aplicación al reducir 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 de apertura rápida (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 se debe ejecutar 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 de nivel de 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 Requisitos para conexiones TCP de apertura rápida (TFO) para obtener más información.

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

  1. Descargue el controlador JDBC Thin más reciente.

    En la página Descargas de controladores JDBC y archivos Jars complementarios de Oracle Database:

    • 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 Descargas de controladores JDBC de Oracle Database 19c y UCP: versión a largo plazo

  2. Descargue el archivo de biblioteca de Oracle JDBC TCP Fast Open (TFO).
    1. En la página Descargas de controladores JDBC de Oracle Database y archivos Jars complementarios, amplíe Biblioteca de Oracle JDBC TCP Fast Open (TFO) v1
    2. Descargue la biblioteca nativa .zip para su plataforma cliente:
      • Biblioteca JDBC TFO para Linux x86_64, archivo de biblioteca para "x86_64" para Linux en Intel.

      • Archivo de biblioteca JDBC TFO para Linux AARCH64 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 de 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 de 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");

      Por defecto, la propiedad OracleConnection.CONNECTION_PROPERTY_NET_USE_TCP_FAST_OPEN está definida 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

      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. Run the application.

Conexiones abiertas rápidas TCP con Python

Describe los requisitos para utilizar Python con conexiones TCP de apertura rápida (TFO) en Autonomous Database.

Asegúrese de que se cumplen los requisitos previos del cliente y el entorno del cliente. Consulte Requisitos para conexiones TCP de apertura rápida (TFO) para obtener más información.

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

  1. Instale 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 Install Python and the python-oracledb Driver 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 de TCP de apertura rápida con el cliente Oracle Call Interface para conexiones C o SQL*Plus

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

Asegúrese de que se cumplen los requisitos previos del cliente y el entorno del cliente. Consulte Requisitos para conexiones TCP de apertura rápida (TFO) para obtener más información.

Nota

Puede activar TCP Fast Open (TFO) con conexiones mTLS o TLS. Para obtener más información, consulte Conexiones seguras a Autonomous Database y Actualización de opciones de red para permitir TLS o requerir solo autenticación TLS mutua (mTLS) en Autonomous Database.

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 versión 23.4 o superior o 19.23 o superior.
  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 bien, defina el parámetro sqlnet.ora:

    USE_TCP_FAST_OPEN=yes