Oracle Net TNS文字列パラメータ
ここでは、接続文字列で使用されるパラメータについて説明します。
CONNECT_TIMEOUT
リスナー・アドレスへの接続が試行されたときに適用します。
この設定は、特定のADDRESS
エンドポイントを使用した接続が完了する必要がある最大時間を表します。これにはトランスポート接続時間と、発生する必要があるその他のアクション(SCAN VIPからリスナーVIPへ、最終的にフォアグラウンドで生成されたプロセスへのリダイレクション)が含まれます。
CONNECT_TIMEMOUT
はTRANSPORT_CONNECT_TIMEOUT
より大きい必要があります。そうでない場合、TRANSPORT_CONNECT_TIMEOUT
はCONNECT_TIMEOUT
によって事実上制限されます。TRANSPORT_CONNECT_TIMEOUT
が指定されていない場合、CONNECT_TIMEOUT
はADDRESS
エンドポイントへの接続試行全体(データベース・フォアグラウンドへのトランスポート接続と最終接続の両方)のタイムアウトとして機能します。
CONNECT_TIMEOUT
の値は、ビジー状態のリスナーやホストへの接続時に発生する可能性のある遅延に加えて、TRANSPORT_CONNECT_TIMEOUT
の値も考慮に入れた十分な大きさにすることをお薦めします。接続文字列の例にある90秒という値は非常に長いため、場合によっては短縮する必要があります。ただし、短すぎると設定が非生産的になる可能性があります。これは、失敗する可能性もある追加の試行の原因となり、途中で放棄される可能性のある接続リクエストを処理するために、より非生産的なワークロードをサーバーに導入する可能性があるためです。
RETRY_COUNT
すべてのADDRESS_LISTS
で接続試行が失敗した場合は、最初のADDRESS_LIST
から始まる接続の試行がRETRY_COUNT
回行われます。
これは、スタンバイへのスイッチオーバーまたはフェイルオーバーが進行中で、接続を操作が完了するまで試行し続ける必要がある場合に便利です。
RETRY_DELAY
再試行間の秒数です。
新しいプライマリ・データベースを開くことが許可される短い時間を指定します。このパラメータにRETRY_COUNTを指定して使用すると、新しく開かれたデータベースへの接続を適切な時間待機できます。
プライマリ・データベースが開いた時間に近い時間で接続が完了できるように、再試行回数を多くして再試行の遅延を短くすることをお薦めします。
TRANSPORT_CONNECT_TIMEOUT=1000ms
ADDRESSのTCPホストを使用してリスナーに接続するには、最大1000ミリ秒かかります。接続が確立されない場合は、次のADDRESSを試します。
Oracle RAC SCANホスト名を使用すると、SCANアドレスの各IPは内部で個別のADDRESS文字列に展開されます。接続の試行が失敗すると、各ADDRESSが試されます。
このパラメータを環境に合わせて調整すると、リスナー・エンドポイント接続が成功するまでの待機時間を最小限に抑えることができます。この時間が短すぎると、接続の試行をユーザーがすぐに諦めてしまい、遅延が増えて接続に失敗する可能性があります。時間が長すぎると、リスナー・エンドポイントに到達できない場合にユーザーが諦めて別のエンドポイントを試すまでの待機時間が長くなりすぎる可能性があります。
ホスト名はSCAN VIPを指定します。クラスタを使用する場合、これらは常に使用可能です。これは、ノードまたはネットワークが停止した場合にVIPがインスタント・リプライを送信することを意味します。これにより、接続時にVIPアドレスでサービスが提供されない場合は、次のアドレスがすぐに使用されます。
LOAD_BALANCE=ON within ADDRESS_LIST
ADDRESS
内のHOST
がOracle RAC SCANの複数のアドレスに解決されると、すべてのアドレスがランダムに試行されます。
LOAD_BALANCE=OFF
に設定すると、順序が毎回同じになり、SCANリスナーの1つに過度な負荷がかかる可能性があるため、ON
に設定することをお薦めします。