TCP Fast Open (TFO)を使用したAutonomous Databaseへのクライアントの接続

アプリケーションがネットワーク・レイテンシの影響を受けやすく、アプリケーションとデータベース間のネットワーク・レイテンシを削減する場合は、TCP Fast Open (TFO)を有効にできます。

アプリケーションの特性に応じて、TFO接続はクライアント接続のネットワーク待機時間を短縮することでアプリケーションのパフォーマンスを向上させることができます。

TCP Fast Open (TFO)接続の前提条件

Autonomous DatabaseでTCP Fast Open (TFO)接続を使用するための前提条件をリストします。

TCP Fast Open (TFO)を使用してAutonomous Databaseインスタンスに接続するには、クライアント・アプリケーションには次のものが必要です:

  • クライアントは、Oracle Cloud InfrastructureのVM上で実行する必要があります。

  • 次の条件の1つに該当している必要があります。

  • VMはLinuxで実行されている必要があります。サポートされているプラットフォームは、Oracle Linux x86_64およびOracle Linux Arm (aarch64)です。

  • 次のOSレベルのカーネル・パラメータを設定する必要があります。

    • rootユーザーとして、次のパラメータを設定します。
      • sysctl -w net.ipv4.tcp_fastopen=5
      • sysctl -w net.ipv4.tcp_fastopen_blackhole_timeout_sec=0

      OSレベルのカーネル・パラメータ値を確認します。

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

TCP Fast Openを使用したJDBC Thin接続

Autonomous DatabaseでTCP Fast Open (TFO)でJDBC Thin接続を使用するための要件について説明します。

クライアント環境とクライアントの前提条件が満たされていることを確認します。詳細は、TCP Fast Open (TFO)接続の前提条件を参照してください。

TCP Fast Open (TFO)でJDBCを使用するには、次のステップを実行します。

  1. 最新のJDBC-thinドライバをダウンロードします。

    Oracle Database JDBCドライバおよびコンパニオンJarのダウンロードのページから:

    • Oracle Database 23ai JDBCドライバおよびUCPダウンロード- 無料リリースで使用可能なドライバから、ドライバ・バージョン23.4以上を選択します。

    • Oracle Database 19c JDBCドライバおよびUCPダウンロード- 長期リリースで、使用可能なドライバからドライバ・バージョン19.23以上を選択します

  2. Oracle JDBC TCP Fast Open (TFO)ライブラリ・ファイルをダウンロードします。
    1. Oracle Database JDBCドライバおよびCompanion Jarsのダウンロードページで、Oracle JDBC TCP Fast Open (TFO)ライブラリv1を展開します
    2. クライアント・プラットフォーム用のネイティブ・ライブラリ.zipをダウンロードします。
      • Linux x86_64用のJDBC TFOライブラリ。Intel上のLinux用のx86_64用のライブラリ・ファイル。

      • Linux on Armのarm64用のJDBC TFOライブラリ(Linux AARCH64ライブラリ・ファイル)。

  3. アプリケーションを実行する環境にネイティブ・ライブラリをロードします。

    ライブラリ・パスに次の環境変数を設定します:

    1. LD_PRELOADをエクスポートします。
      export LD_PRELOAD=path_to/libtfojdbc1.so;
    2. JDK 8を使用している場合は、LD_LIBRARY_PATHをエクスポートします。

      たとえば:

      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. JDK 17を使用している場合は、LD_LIBRARY_PATHをエクスポートします。

      たとえば:

      export LD_LIBRARY_PATH=extracted_binaries_path:path_to/jdk_17_home/lib;
  4. アプリケーションのTCP Fast Open (TFO)オプションを有効にします。

    次に、データベースへのクライアント接続でTFOを有効にするオプションの一部を示します。

    • クライアント・アプリケーションで、次の接続プロパティを設定します。

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

      デフォルトでは、プロパティ OracleConnection.CONNECTION_PROPERTY_NET_USE_TCP_FAST_OPENはfalse(使用不可)に設定されます。

    • JDBC URLにTFOプロパティを追加します。

      たとえば:

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

      Or

      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
    • 接続URLのCONNECT_DATAセクションに次のTNSパラメータを追加します。

      たとえば:

      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)))
    • 接続URLのCONNECT_DATAセクションに次のTNSパラメータを追加します。

      たとえば:

      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. アプリケーションの実行

Pythonを使用したTCP高速オープン接続

Autonomous DatabaseでTCP Fast Open (TFO)接続でPythonを使用するための要件について説明します。

クライアント環境とクライアントの前提条件が満たされていることを確認します。詳細は、TCP Fast Open (TFO)接続の前提条件を参照してください。

TCP Fast Open (TFO)でPythonを使用するには、次のステップを実行します:

  1. Pythonおよびpython-oracledbドライバをインストールします。

    最新バージョンのpython-orabledbを使用します(バージョン2.1.0以降が必要です)。

    詳細は、Pythonおよびpython-oracledbドライバのインストールを参照してください。

  2. Autonomous Databaseインスタンスに接続するときに、use_tcp_fast_open接続パラメータを追加します。

    たとえば、次のいずれかでこのオプションを使用します。

    詳細は、Autonomous DatabaseへのPythonアプリケーションの接続を参照してください。

Oracle Call Interface Client for CまたはSQL*Plus接続を使用したTCP高速オープン接続

Oracle Call Interface ClientとTCP Fast Open (TFO)を使用してCまたはSQL*PlusとAutonomous Databaseに接続するための要件について説明します。

クライアント環境とクライアントの前提条件が満たされていることを確認します。詳細は、TCP Fast Open (TFO)接続の前提条件を参照してください。

ノート

mTLS接続またはTLS接続を使用してTCP Fast Open (TFO)を有効にできます。詳細は、Autonomous Databaseへのセキュアな接続およびAutonomous DatabaseでTLS認証を許可するか相互TLS (mTLS)認証のみを必要とするようにネットワーク・オプションを更新を参照してください。

TCP Fast Open (TFO)でOracle Call Interfaceを使用するには、次のステップを実行します。

  1. Linux用の最新のOracleインスタント・クライアント(バージョン23.4以上または19.23以上)をダウンロードします。

    Linux x86-64については、Oracle Instant Client Downloads for Linux x86-64 (64ビット)を参照してください。

    Linux ARM用のOracle Instant Client Linux ARM (aarch64)用ダウンロードを参照してください。

  2. USE_TCP_FAST_OPENパラメータを値YESに設定して接続します。

    たとえば、Autonomous Databaseへの接続に使用する接続文字列で、パラメータUSE_TCP_FAST_OPENconnect_dataに追加します:

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

    または、sqlnet.oraパラメータを設定します。

    USE_TCP_FAST_OPEN=yes