TCP Fast Open (TFO)を使用した自律型AIデータベースへのクライアントの接続

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

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

TCPファスト・オープン(TFO)接続の前提条件

自律型AIデータベースとのTCP Fast Open (TFO)接続を使用するための前提条件をリストします。

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

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

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

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

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

    • rootユーザーとして、次のパラメータを設定します。

      • sysctl -w net.ipv 4.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接続

自律型AIデータベースでTCP Fast Open (TFO)でJDBC Thin接続を使用するための要件について説明します。

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

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

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

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

    • Oracle AI Database 26ai JDBC Driver & UCP Downloads - Free Releaseで使用可能なドライバから、ドライバ・バージョン23.4以上を選択します。

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

  2. Oracle JDBC TCP Fast Open (TFO)ライブラリ・ファイルをダウンロードします。

    • 「Oracle AI Database JDBCドライバおよびコンパニオンJarsダウンロード」ページで、「Oracle JDBC TCP Fast Open (TFO) Library v1」を展開します。

    • クライアント・プラットフォーム用のネイティブ・ライブラリ圧縮ファイルをダウンロードします。

      • Linux x86_64用のJDBC TFOライブラリ、Intel上のLinux用のx86_64用のライブラリ・ファイル。

      • Linux on Arm用の"arm64"用のJDBC TFO Library for Linux AARCH64ライブラリ・ファイル。

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

    ライブラリパスで次の環境変数を設定します。

    • LD_PRELOADをエクスポートします。

      export LD_PRELOAD=path_to/libtfojdbc1.so;

    • 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;

    • 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

      または

      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高速オープン接続

自律型AIデータベースでTCP Fast Open (TFO)接続でPythonを使用するための要件について説明します。

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

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

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

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

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

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

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

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

C接続またはSQL*Plus接続用のOracle Call Interfaceクライアントを使用したTCP高速オープン接続

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

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

ノート

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

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

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

    Linux x86-64 (64ビット)用Oracle Instant Clientダウンロード(Linux x86-64)を参照してください。

    Linux ARMについては、Oracle Instant Client Downloads for Linux ARM (aarch64)を参照してください。

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

    たとえば、Autonomous AI 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