Verwenden von TCP Fast Open (TFO) zum Verbinden von Clients mit Autonomous Database

Wenn Ihre Anwendung auf Netzwerklatenz reagiert und Sie die Netzwerklatenz zwischen Ihrer Anwendung und der Datenbank verringern möchten, können Sie TCP Fast Open (TFO) aktivieren.

Je nach den Eigenschaften Ihrer Anwendung können TFO-Verbindungen die Anwendungsperformance verbessern, indem sie die Netzwerklatenz für Clientverbindungen verringern.

Voraussetzungen für TCP Fast Open-(TFO-)Verbindungen

Listet die Voraussetzungen für die Verwendung von TCP Fast Open-(TFO-)Verbindungen mit Autonomous Database auf.

Um mit TCP Fast Open (TFO) eine Verbindung zu einer Autonomous Database-Instanz herzustellen, ist für die Clientanwendung Folgendes erforderlich:

  • Der Client muss auf einer VM in Oracle Cloud Infrastructure ausgeführt werden.

  • Einer der Folgenden muss wahr sein:

  • Die VM muss unter Linux ausgeführt werden. Unterstützte Plattformen sind: Oracle Linux x86_64 und Oracle Linux Arm (aarch64).

  • Die folgenden Kernel-Parameter auf BS-Ebene müssen festgelegt werden:

    • Legen Sie als Root-Benutzer die folgenden Parameter fest:
      • sysctl -w net.ipv4.tcp_fastopen=5
      • sysctl -w net.ipv4.tcp_fastopen_blackhole_timeout_sec=0

      Prüfen Sie die Kernel-Parameterwerte auf BS-Ebene:

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

JDBC Thin-Verbindungen mit TCP Fast Open

Beschreibt die Anforderungen zur Verwendung von JDBC Thin-Verbindungen mit TCP Fast Open (TFO) in Autonomous Database.

Stellen Sie sicher, dass die Clientumgebung und die Clientvoraussetzungen erfüllt sind. Weitere Informationen finden Sie unter Voraussetzungen für TCP Fast Open-(TFO-)Verbindungen.

Um JDBC mit TCP Fast Open (TFO) zu verwenden, gehen Sie wie folgt vor:

  1. Laden Sie den neuesten JDBC-Thin-Treiber herunter.

    Auf der Seite Oracle Database JDBC-Treiber und Companion Jars-Downloads:

    • Wählen Sie unter Oracle Database 23ai JDBC Driver & UCP Downloads - Free Release eine Treiberversion 23.4 oder höher aus den verfügbaren Treibern aus.

    • Wählen Sie unter den verfügbaren Treibern unter Oracle Database 19c JDBC Driver & UCP Downloads - Long Term Release eine Treiberversion 19.23 oder höher aus.

  2. Laden Sie die Oracle JDBC TCP Fast Open-(TFO-)Library-Datei herunter.
    1. Blenden Sie auf der Seite Oracle Database JDBC-Treiber und Companion-Jars-Downloads die Oracle JDBC TCP Fast Open-(TFO-)Library ein v1
    2. Laden Sie die ZIP-Datei der nativen Bibliothek für Ihre Clientplattform herunter:
      • JDBC-TFO-Bibliothek für Linux x86_64, Bibliotheksdatei für "x86_64" für Linux auf Intel.

      • JDBC-TFO-Library für Linux AARCH64-Bibliotheksdatei für "arm64" für Linux on Arm.

  3. Laden Sie die native Library in der Umgebung, in der Sie die Anwendung ausführen.

    Legen Sie die folgenden Umgebungsvariablen im Bibliothekspfad fest:

    1. Exportieren Sie LD_PRELOAD.
      export LD_PRELOAD=path_to/libtfojdbc1.so;
    2. Wenn Sie JDK 8 verwenden, exportieren Sie LD_LIBRARY_PATH.

      Beispiele:

      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. Wenn Sie JDK 17 verwenden, exportieren Sie LD_LIBRARY_PATH.

      Beispiele:

      export LD_LIBRARY_PATH=extracted_binaries_path:path_to/jdk_17_home/lib;
  4. Aktivieren Sie die TCP Fast Open-(TFO-)Option für Ihre Anwendung.

    Im Folgenden sind einige Optionen zum Aktivieren von TFO in der Clientverbindung zur Datenbank aufgeführt:

    • Legen Sie in der Clientanwendung die folgende Verbindungseigenschaft fest:

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

      Standardmäßig ist die Eigenschaft OracleConnection.CONNECTION_PROPERTY_NET_USE_TCP_FAST_OPEN auf "false" (deaktiviert) gesetzt.

    • Fügen Sie die TFO-Eigenschaft in der JDBC-URL hinzu.

      Beispiele:

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

      oder

      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
    • Fügen Sie den folgenden TNS-Parameter im Abschnitt CONNECT_DATA der Verbindungs-URL hinzu.

      Beispiele:

      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)))
    • Fügen Sie den folgenden TNS-Parameter im Abschnitt CONNECT_DATA der Verbindungs-URL hinzu.

      Beispiele:

      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. Führen Sie die Anwendung aus.

TCP Fast Open-Verbindungen mit Python

Beschreibt die Anforderungen zur Verwendung von Python mit TCP Fast Open-(TFO-)Verbindungen in Autonomous Database.

Stellen Sie sicher, dass die Clientumgebung und die Clientvoraussetzungen erfüllt sind. Weitere Informationen finden Sie unter Voraussetzungen für TCP Fast Open-(TFO-)Verbindungen.

Um Python mit TCP Fast Open (TFO) zu verwenden, führen Sie die folgenden Schritte aus:

  1. Installieren Sie Python und den python-oracledb-Treiber.

    Verwenden Sie die neueste Version von python-orabledb (Version 2.1.0 oder höher ist erforderlich).

    Weitere Informationen finden Sie unter Python und den python-oracledb-Treiber installieren.

  2. Fügen Sie den Verbindungsparameter use_tcp_fast_open hinzu, wenn Sie eine Verbindung zu einer Autonomous Database-Instanz herstellen.

    Weitere Informationen finden Sie unter Python-Anwendungen mit Autonomous Database verbinden.

Schnelle offene TCP-Verbindungen mit Oracle Call Interface-Client für C- oder SQL*Plus-Verbindungen

Beschreibt die Anforderungen zur Verwendung des Oracle Call Interface-Clients mit TCP Fast Open (TFO) für die Verbindung mit C oder SQL*Plus mit Autonomous Database.

Stellen Sie sicher, dass die Clientumgebung und die Clientvoraussetzungen erfüllt sind. Weitere Informationen finden Sie unter Voraussetzungen für TCP Fast Open-(TFO-)Verbindungen.

Hinweis

Sie können TCP Fast Open (TFO) mit mTLS- oder TLS-Verbindungen aktivieren. Weitere Informationen finden Sie unter Sichere Verbindungen zu Autonomous Database mit mTLS oder mit TLS und Netzwerkoptionen aktualisieren, um TLS- oder nur gegenseitige TLS-(mTLS-)Authentifizierung in Autonomous Database zuzulassen.

Um Oracle Call Interface mit TCP Fast Open (TFO) zu verwenden, gehen Sie wie folgt vor:

  1. Laden Sie den neuesten Oracle Instant Client für Linux herunter, entweder Version 23.4 oder höher oder Version 19.23 oder höher.
  2. Stellen Sie eine Verbindung mit dem Parameter USE_TCP_FAST_OPEN her, der auf den Wert YES gesetzt ist.

    Beispiel: Fügen Sie den Parameter USE_TCP_FAST_OPEN in der Verbindungszeichenfolge, mit der Sie eine Verbindung zu Autonomous Database herstellen, zu connect_data hinzu:

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

    Oder legen Sie den Parameter sqlnet.ora fest:

    USE_TCP_FAST_OPEN=yes