Utilizzare TCP Fast Open (TFO) 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 TCP Fast Open (TFO).

A seconda delle caratteristiche della tua applicazione, le connessioni TFO possono migliorare le prestazioni delle applicazioni 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 TCP Fast Open (TFO) con Autonomous Database.

Per utilizzare TCP Fast Open (TFO) 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.

  • Una delle seguenti condizioni deve essere vera:

  • 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 parametri riportati di seguito.
      • sysctl -w net.ipv4.tcp_fastopen=5
      • sysctl -w net.ipv4.tcp_fastopen_blackhole_timeout_sec=0

      Verificare i valori dei parametri 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 TCP Fast Open (TFO).

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

  1. Scaricare il driver JDBC-thin più recente.

    Dalla pagina Download dei driver Oracle Database JDBC e dei file JAR Companion:

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

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

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

      • Libreria TFO JDBC per il file della libreria AARCH64 Linux 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 delle 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");

      Per impostazione predefinita, 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 parametro TNS seguente 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 parametro TNS seguente 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 Fast Open 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 TCP Fast Open (TFO).

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

  1. Installare Python e il driver python-oracledb.

    Utilizzare l'ultima versione di python-orabledb (è richiesta la versione 2.1.0 o successiva).

    Per ulteriori informazioni, vedere Install Python and the python-oracledb Driver.

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

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

    Per ulteriori informazioni, consulta la sezione Connetti le applicazioni Python ad Autonomous Database.

Connessioni Fast Open TCP con client Oracle Call Interface per connessioni C o SQL*Plus

Descrive i requisiti per utilizzare il client Oracle Call Interface con TFO (TCP Fast Open) per connettersi a 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 TCP Fast Open (TFO).

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), effettuare le operazioni riportate di seguito.

  1. Scarica il client istantaneo Oracle più recente 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