広告





X


GitHub


※A5:SQL Mk-2はGitHubのプライベートリポジトリで開発されているためソースコードを参照することはできません。
      

放置すると接続が切れる時(Oracle)

 ルーターなどを介して データベースに接続し、放置すると接続が切れる場合があります。これはA5:SQL Mk-2とデータベースの間にルーターやファイアウォール等のネットワーク機器があり、これらが問題となっているケースがあります。

 ルーター等でNATが利用されている場合、無通信の状態が続くとルーター等で接続が切れたと判断されNATテーブルからルーティング情報が削除されてしまうことが原因です。
 この場合は、Keep aliveを利用し、無通信の状態を防ぐことで対処します。
(Version 2.7.0以降の直接接続は使わないで下さい。OCI経由又はOLE DBプロバイダ経由で接続します。)

設定1
 以下の例のようにTNSNAMES.oraに(ENABLE=BROKEN)を記述します。
例)
LOCALHOST_ORCL =
  (DESCRIPTION =
    (ENABLE = BROKEN)
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ORCL)
    )
  )


設定2
 レジストリから、TCPプロトコル の KeepAlive パケットの送信間隔を設定します。
 単位はミリ秒で、ルーターの無通信タイムアウトの検出時間よりは短くする必要があります。

  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
    KeepAliveTime (REG_DWORD)

 例えば5分に設定するには 0x493E0 (10進数では300000)を指定します。


情報元:るきへなWeblog


home
 
      
プレミアムサポート