Usa TFO (TCP Fast Open) per connettere i client ad Autonomous Database

Se l'applicazione è sensibile alla latenza di rete e si desidera ridurre la latenza di rete tra l'applicazione e il database, è possibile abilitare la funzione TFO (TCP Fast Open).

A seconda delle caratteristiche dell'applicazione, le connessioni TFO possono migliorare le prestazioni dell'applicazione riducendo la latenza di rete per le connessioni client.

Prerequisiti per le connessioni TFO (TCP Fast Open)

Elenca i prerequisiti per l'uso delle connessioni TFO (TCP Fast Open) con Autonomous Database.

Per utilizzare TFO (TCP Fast Open) per connettersi a un'istanza di Autonomous Database, l'applicazione client richiede quanto riportato di seguito.

  • Il client deve essere eseguito su una VM in Oracle Cloud Infrastructure.

  • Uno dei seguenti deve essere true:

  • La VM deve essere in esecuzione su Linux. Le piattaforme supportate sono: Oracle Linux x86_64 e Oracle Linux Arm (aarch64).

  • È necessario impostare i seguenti parametri kernel a livello di sistema operativo:

    • Come utente root, impostare i seguenti parametri:
      • sysctl -w net.ipv4.tcp_fastopen=5
      • sysctl -w net.ipv4.tcp_fastopen_blackhole_timeout_sec=0

      Verificare i valori dei parametri del kernel a livello di sistema operativo.

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

Connessioni thin JDBC con apertura rapida TCP

Descrive i requisiti per utilizzare le connessioni Thin JDBC con TCP Fast Open (TFO) su Autonomous Database.

Assicurarsi che l'ambiente client e i prerequisiti client siano soddisfatti. Per ulteriori informazioni, vedere Prerequisiti per le connessioni TFO (TCP Fast Open).

Per utilizzare JDBC con TFO (TCP Fast Open), effettuare le operazioni riportate di seguito.

  1. Scaricare il driver JDBC thin più recente.

    Nella pagina Download del driver JDBC di Oracle Database e dei file JAR di accompagnamento:

    • Selezionare un driver versione 23.4 o successiva dai driver disponibili in Oracle Database 23ai JDBC Driver & UCP Downloads - Release gratuita.

    • Selezionare un driver versione 19.23 o successiva dai driver disponibili in Driver JDBC Oracle Database 19c e download UCP - Release a lungo termine

  2. Scaricare il file della libreria TFO (Oracle JDBC TCP Fast Open).
    1. Nella pagina Download del driver JDBC e dei file JAR di Oracle Database, espandere Libreria TFO (Oracle JDBC TCP Fast Open) v1
    2. Scaricare il file .zip della libreria nativa per la piattaforma client:
      • JDBC TFO Library for Linux x86_64, file di libreria per "x86_64" per Linux su Intel.

      • Libreria TFO JDBC per Linux AARCH64, file di libreria per "arm64" per Linux su Arm.

  3. Caricare la libreria nativa nell'ambiente in cui si esegue l'applicazione.

    Impostare le variabili d'ambiente indicate di seguito nel percorso della libreria.

    1. Esportare LD_PRELOAD.
      export LD_PRELOAD=path_to/libtfojdbc1.so;
    2. Se si utilizza JDK 8, esportare LD_LIBRARY_PATH.

      Ad esempio:

      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 si utilizza JDK 17, esportare LD_LIBRARY_PATH.

      Ad esempio:

      export LD_LIBRARY_PATH=extracted_binaries_path:path_to/jdk_17_home/lib;
  4. Abilitare l'opzione TCP Fast Open (TFO) per l'applicazione.

    Di seguito sono riportate alcune opzioni per abilitare TFO nella connessione client al database.

    • Nell'applicazione client, impostare la proprietà di connessione seguente:

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

      La proprietà OracleConnection.CONNECTION_PROPERTY_NET_USE_TCP_FAST_OPEN è impostata su false (disabilitata).

    • Aggiungere la proprietà TFO nell'URL JDBC.

      Ad esempio:

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

      oppure

      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
    • Aggiungere il seguente parametro TNS nella sezione CONNECT_DATA dell'URL di connessione.

      Ad esempio:

      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)))
    • Aggiungere il seguente parametro TNS nella sezione CONNECT_DATA dell'URL di connessione.

      Ad esempio:

      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. Eseguire l'applicazione.

Connessioni aperte rapide TCP con Python

Descrive i requisiti per utilizzare Python con connessioni TFO (TCP Fast Open) su Autonomous Database.

Assicurarsi che l'ambiente client e i prerequisiti client siano soddisfatti. Per ulteriori informazioni, vedere Prerequisiti per le connessioni TFO (TCP Fast Open).

Per utilizzare Python con TCP Fast Open (TFO), attenersi alla procedura riportata di seguito.

  1. Installare Python e il driver python-oracledb.

    Utilizzare la versione più recente di python-orabledb (è richiesta la versione 2.1.0 o successiva).

    Per ulteriori informazioni, vedere Installa Python e il driver python-oracledb.

  2. Aggiungere il parametro di connessione use_tcp_fast_open quando si esegue la connessione a un'istanza di Autonomous Database.

    Ad esempio, utilizzare questa opzione con una delle seguenti opzioni:

    Per ulteriori informazioni, consulta la sezione relativa alla connessione delle applicazioni Python ad Autonomous Database.

Connessioni aperte rapide TCP con Oracle Call Interface Client per connessioni C o SQL*Plus

Descrive i requisiti per utilizzare il client Oracle Call Interface con TFO (TCP Fast Open) per connettersi con C o SQL*Plus ad Autonomous Database.

Assicurarsi che l'ambiente client e i prerequisiti client siano soddisfatti. Per ulteriori informazioni, vedere Prerequisiti per le connessioni TFO (TCP Fast Open).

Nota

È possibile abilitare il protocollo TCP Fast Open (TFO) con connessioni mTLS o TLS. Per ulteriori informazioni, vedere Secure Connections to Autonomous Database con mTLS o con TLS e Update Network Options to Allow TLS or Require Only Mutual TLS (mTLS) Authentication on Autonomous Database.

Per utilizzare Oracle Call Interface con TCP Fast Open (TFO), attenersi alla procedura riportata di seguito.

  1. Scarica l'ultimo client istantaneo Oracle per Linux, versione 23.4 o successiva o versione 19.23 o successiva.
  2. Connettersi al parametro USE_TCP_FAST_OPEN impostato sul valore YES.

    Ad esempio, aggiungere il parametro USE_TCP_FAST_OPEN a connect_data nella stringa di connessione utilizzata per connettersi ad 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)))

    In alternativa, impostare il parametro sqlnet.ora:

    USE_TCP_FAST_OPEN=yes