Usar o TCP Fast Open (TFO) para Conectar Clientes ao Autonomous Database

Se seu aplicativo for sensível à latência de rede e você quiser diminuir a latência de rede entre seu aplicativo e o banco de dados, poderá ativar o TCP Fast Open (TFO).

Dependendo das características do seu aplicativo, as conexões TFO podem melhorar o desempenho do aplicativo diminuindo a latência da rede para conexões de cliente.

Pré-requisitos para Conexões TCP Fast Open (TFO)

Lista os pré-requisitos para usar conexões TCP Fast Open (TFO) com o Autonomous Database.

Para usar o TCP Fast Open (TFO) para estabelecer conexão com uma instância do Autonomous Database, o aplicativo cliente exige o seguinte:

  • O cliente deve ser executado em uma VM no Oracle Cloud Infrastructure.

  • Uma das seguintes condições deve ser verdadeira:

  • A VM deve estar em execução no Linux. As plataformas suportadas são: Oracle Linux x86_64 e Oracle Linux Arm (aarch64).

  • OS seguintes parâmetros de kernel no nível do SO devem ser definidos:

    • Como usuário raiz, defina os seguintes parâmetros:
      • sysctl -w net.ipv4.tcp_fastopen=5
      • sysctl -w net.ipv4.tcp_fastopen_blackhole_timeout_sec=0

      Verifique OS valores do parâmetro de kernel no nível do SO:

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

Conexões JDBC Thin com TCP Fast Open

Descreve os requisitos para usar conexões JDBC Thin com TCP Fast Open (TFO) no Autonomous Database.

Certifique-se de que o ambiente do cliente e os pré-requisitos do cliente sejam atendidos. Consulte Pré-requisitos para Conexões TCP Fast Open (TFO) para obter mais informações.

Para usar JDBC com TCP Fast Open (TFO), execute as seguintes etapas:

  1. Faça download do driver JDBC-thin mais recente.

    Na página Downloads de Jars Companion e driver JDBC do Oracle Database:

    • Selecione um driver versão 23.4 ou posterior nos drivers disponíveis em Downloads do Oracle Database 23ai JDBC Driver & UCP - Versão Gratuita.

    • Selecione um driver versão 19.23 ou posterior nos drivers disponíveis em Downloads de Driver JDBC e UCP do Oracle Database 19c - Versão de Longo Prazo

  2. Faça download do Arquivo de Biblioteca Oracle JDBC TCP Fast Open (TFO).
    1. Na página Downloads do driver JDBC e Jars do Oracle Database, expanda a Biblioteca Oracle JDBC TCP Fast Open (TFO) v1
    2. Faça download da biblioteca nativa .zip da sua plataforma cliente:
      • Biblioteca JDBC TFO para Linux x86_64, arquivo de biblioteca para "x86_64" para Linux na Intel.

      • Biblioteca JDBC TFO para o arquivo da biblioteca AARCH64 do Linux para "arm64" para Linux no Arm.

  3. Carregue a biblioteca nativa no ambiente em que você executa seu aplicativo.

    Defina as seguintes variáveis de ambiente no caminho da biblioteca:

    1. Exportar LD_PRELOAD.
      export LD_PRELOAD=path_to/libtfojdbc1.so;
    2. Se você estiver usando o JDK 8, exporte LD_LIBRARY_PATH.

      Por exemplo:

      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. Se você estiver usando o JDK 17, exporte LD_LIBRARY_PATH.

      Por exemplo:

      export LD_LIBRARY_PATH=extracted_binaries_path:path_to/jdk_17_home/lib;
  4. Ative a opção TCP Fast Open (TFO) para seu aplicativo.

    Veja a seguir algumas das opções para ativar o TFO na conexão do cliente com o banco de dados:

    • No aplicativo cliente, defina a seguinte propriedade de conexão:

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

      Por padrão, a propriedade OracleConnection.CONNECTION_PROPERTY_NET_USE_TCP_FAST_OPEN é definida como falsa (desativada).

    • Adicione a propriedade TFO no URL JDBC.

      Por exemplo:

      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
    • Adicione o seguinte parâmetro TNS na seção CONNECT_DATA do URL de conexão.

      Por exemplo:

      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)))
    • Adicione o seguinte parâmetro TNS na seção CONNECT_DATA do URL de conexão.

      Por exemplo:

      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. Execute o aplicativo.

Conexões Abertas Rápidas TCP com Python

Descreve os requisitos para usar o Python com conexões TCP Fast Open (TFO) no Autonomous Database.

Certifique-se de que o ambiente do cliente e os pré-requisitos do cliente sejam atendidos. Consulte Pré-requisitos para Conexões TCP Fast Open (TFO) para obter mais informações.

Para usar o Python com TCP Fast Open (TFO), execute as seguintes etapas:

  1. Instale o Python e o Driver python-oracledb.

    Use a versão mais recente do python-orabledb (a Versão 2.1.0 ou mais recente é obrigatória).

    Consulte Instalar o Python e o Driver python-oracledb para obter mais informações.

  2. Adicione o parâmetro de conexão use_tcp_fast_open ao estabelecer conexão com uma instância do Autonomous Database.

    Consulte Connect Python Applications to Autonomous Database para obter mais informações.

Conexões Abertas Rápidas TCP com o Cliente Oracle Call Interface para Conexões C ou SQL*Plus

Descreve os requisitos para usar o Oracle Call Interface Client com TCP Fast Open (TFO) para estabelecer conexão com C ou SQL*Plus com o Autonomous Database.

Certifique-se de que o ambiente do cliente e os pré-requisitos do cliente sejam atendidos. Consulte Pré-requisitos para Conexões TCP Fast Open (TFO) para obter mais informações.

Para usar o Oracle Call Interface com TCP Fast Open (TFO), execute as seguintes etapas:

  1. Faça download do cliente instantâneo mais recente da Oracle para Linux, versão 23.4 ou superior ou 19.23 ou superior.
  2. Conecte-se com o parâmetro USE_TCP_FAST_OPEN definido com o valor YES.

    Por exemplo, adicione o parâmetro USE_TCP_FAST_OPEN a connect_data na string de conexão que você usa para estabelecer conexão com o 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 defina o parâmetro sqlnet.ora:

    USE_TCP_FAST_OPEN=yes