Usar 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 clientes.

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 requer o seguinte:

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

  • Um dos seguintes deve ser verdadeiro:

  • 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 sistema operacional 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 dos parâmetros de kernel no nível do sistema operacional:

      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 o 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 Complementares e do driver JDBC do Oracle Database:

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

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

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

      • Arquivo de biblioteca JDBC TFO para Linux AARCH64 para "arm64" para Linux no Arm.

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

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

    1. Exporte 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 default, a propriedade OracleConnection.CONNECTION_PROPERTY_NET_USE_TCP_FAST_OPEN é definida como false (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 parâmetro TNS a seguir 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 parâmetro TNS a seguir 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 TCP Fast Open 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.

    Por exemplo, use esta opção com uma das seguintes opções:

    Consulte Conectar Aplicativos Python ao Autonomous Database para obter mais informações.

Conexões Rápidas de TCP Abertas 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 o C ou o 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. Estabeleça conexão 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 usada 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