web-dev-qa-db-ja.com

TOADクライアント通信を使用したキープアライブの構成

TOADSoft クライアントとOracleサーバーとの通信のロングアイドルセッションが、中間状態のフルファイアウォールでタイムアウトしたために切断されたように見えるシナリオがあります。

これらのセッションは数時間アイドル状態になる可能性があります。
ファイアウォールのタイムアウトをグローバルに増やして、
もちろん、特定のフローのより長いタイムアウトはサポートされていません。

PuTTYアイドル接続のこの問題を修正しました。
これにより、 構成可能なキープアライブ が可能になります。

しかし、TOADソフトウェアでそのようなサポートをまだ特定していません。

システム全体の構成を少し調べて、 システム全体のキープアライブの構成 に関するこのMicrosoft TechNetの詳細を思いつきました。これには、 KeepAliveTime および関連するレジストリ変数の操作が含まれます。

HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\KeepAliveTime

これは システム全体のキープアライブを使用するためのLinuxシステム全体の構成 のようです。
しかし、それにはプログラムがsetsockopt()を使用し、キープアライブを要求する必要があります(右?)。

キープアライブのサポートは、カーネルで構成されている場合でも、Linuxのデフォルトの動作ではないことに注意してください。プログラムは、setsockoptインターフェイスを使用してソケットのキープアライブ制御を要求する必要があります。キープアライブを実装するプログラムは比較的少ないです...


質問

  1. これを使用できますか WindowsクライアントマシンまたはサーバーでのKeepAliveTimeテクニック
    (誰かが試したことがありますか?)
    • これらのTOAD接続を(通信の両端から)アクティブに保つ他の方法はありますか?
1
nik

デルのサイトでこれを見つけ、動作することを確認しました(Toad 11.5.0.56の下で): ネットワークがタイムアウトしないように、Toadにはキープアライブ/インターバル時間/ ping設定がありますか?(49507)

要約すると、DBMS出力メニューバーの左側にある赤いボタンアイコンをクリックして、DBMS出力ウィンドウで出力をオンにします(緑色に変わります)。これには、[データグリッド]タブの横にある[DBMS出力]タブで、または[表示]-> [DBMS出力]からアクセスできます。

これにより、自動的にポーリングもオンになります。私の経験では、接続を維持するには、DBMS出力ポーリングの両方を有効にする必要があります。

1
Randall

Sqlnet.oraでSQLNET.EXPIRE_TIMEの値を設定します。

これが Oracleマニュアル がこの主題について言っていることです:

目的

パラメータSQLNET.EXPIRE_TIMEを使用して、クライアント/サーバー接続がアクティブであることを確認するためのプローブを送信する時間間隔を分単位で指定します。 0より大きい値を設定すると、クライアントの異常終了が原因で接続が無期限に開いたままになることがなくなります。プローブが終了した接続、または使用されなくなった接続を検出すると、エラーを返し、サーバープロセスを終了させます。このパラメータは主に、一度に複数の接続を処理するデータベースサーバーを対象としています。

この終了した接続検出機能の使用に関する制限は次のとおりです。

  • 遺贈された接続では許可されていません。
  • 非常に小さいですが、プローブパケットは、ネットワークパフォーマンスを低下させる可能性のある追加のトラフィックを生成します。
  • 使用しているオペレーティングシステムによっては、サーバーは、接続プローブイベントを発生する他のイベントと区別するために追加の処理を実行する必要がある場合があります。これにより、ネットワークパフォーマンスが低下する可能性もあります。

デフォルト:0

最小値:0

推奨値:10

SQLNET.EXPIRE_TIME=10

1
crb

SSHアクセスはありますか? SSHトンネルを設定し、それを介してSQL通信を送信できます。

TOAD:サーバー(またはtnsnames)はローカルホストになります。リスニングポートは12346などのランダムなポートです。
PuTTY:ポートフォワーディング。送信元ポート:12346、宛先:$ REMOTE_IP:1521。ローカルポートのままにしておきます。

接続セクションを介して、PuTTYでTCPキープアライブを有効にしていることを確認してください。

1
Kevin M