Azure データベースサーバーを使用する LAC/E で、データベース接続終了の ORA-03135 が見られる - WKB264945
Article number: 264945To English version
症状
- 65 分間の非アクティブな状態の後、LAC/E でログインすると、「Database connection terminated ORA-03135」(データベースの接続が切断されました ORA-03135)と表示される
- 取り込み時間が 65 分を超えると、バッファリングが見られる
- Citrix セッションに ORA-03135 が表示されない
- 65 分未満の取り込み時間では、ORA-03135 もバッファリングも見られない
環境
- Empower 3.6.1(すべてのバージョンが影響を受ける可能性がある)
- Azure データベースサーバー
- Azure Citrix
- Azure 生データファイル共有
原因
Azure ポリシーは、65 分間何も操作されないと、外部コンピューター (LAC/E) からのアイドル状態の TCP 接続を閉じます。ORA-03135 は、Oracle の外部の何かによって接続が閉じられたことを示します。
解決策
選択肢は 2 つだけです。データベースへの Empower SQL TCP 接続は、注入の開始時と終了時にのみアクティブです。
- SQLNET.Expire_Time を設定します(Empower、頻繁なバッファリング、複数のサイト、複数の LAC/E - WKB229311 を参照)。しかし、空のパケットはドロップされる/無視されることがあります。
- サーバーで TCP KeepAlive を設定します。これにより、無視されていない開いている接続に ACK パケットが送信されます。開いているがアイドル状態の接続は応答するはずです。
追加情報
Windows での既定の TCP 維持時間間隔は 2 時間です。他の設定が低い値でタイムアウトするように設定されている場合、TCP keepalive は開始されません。
一定期間 (KeepAliveTime) の非アクティブ状態の後、サーバーは指定された間隔 (KeepAliveInterval) で指定された最大数まで ACK パケットを送信します。
サーバーで設定する TCP KeepAlive レジストリーキー:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\
* 値はミリ秒で設定されます
- https://learn.microsoft.com/en-us/answers/questions/1115172/keepalivetime-registry-setting-for-windows-server
- https://www.alitajran.com/tcp-keepalivetime-exchange-server/
- https://en.wikipedia.org/wiki/Keepalive
id264945, エンタープライズ