この技術情報ではWeb Agent/Policy Server両方で利用可能な環境変数SM_ENABLE_TCP_KEEPALIVEについて説明します。環境変数SM_ENABLE_TCP_KEEPALIVE を利用することによってWeb AgentとPolicy Server間の通信失敗で生じるPolicy Server, Web Agentの問題を解決することができます。
Release: r12.8.x, r12.5x
Component: SMPLC, Web Agent
Policy Server
Web AgentとPolicy Server間の通信において、Policy ServerがWeb Agentからのリクエストの処理中に(例えばWeb Agent側のネットワーク停止などで)Web Agentがオフラインになった場合、Web AgentとPolicy Server間の通信失敗が生じます。
この時、Web AgentがPolicy Serverにこの通信失敗を通知しないとPolicy ServerはWeb Agentからのデータを待機し続けます。Web Agentがネットワーク機能を回復しPolicy Serverとの接続を閉じた後も、Policy Serverはそれを検知できないため待機を続けます。
Policy Serverはワーカースレッド単位でWeb Agentとの通信を行っていますが、Web Agentがオフラインになると、Web Agentからのリクエストを処理しているPolicy Serverのワーカースレッドすべてが開放されなくなるため、Policy Serverが反応しなくなりハングする可能性があります。
Policy Server側コンピュータで環境変数SM_ENABLE_TCP_KEEPALIVEを作成・有効にすると、Web Agentのアイドル状態の接続に対してKeepAliveパケットを送信するようにPolicy Serverが設定されます。Policy ServerはKeepAliveパケットに対する応答エラーを検知するとWeb Agentのアイドル状態の接続をクローズします。これにより問題を回避することができます。
Web Agent / Access Gateway (SPS) / AdminUI
同様に(Policy Server側のネットワーク停止などで)Web AgentとPolicy Serverとの通信が切断された場合、Web Agentは切断を検知できず、その通信を使用し続ける状況が発生する可能性があります。この場合、Webページにアクセスしようとすると、HTTP 500エラーが返される場合があります。
Web Agent側のコンピュータで環境変数SM_ENABLE_TCP_KEEPALIVEを作成・有効にすると、上記同様にWeb Agentのアイドル状態の接続を検知・クローズしPolicy Serverへ再接続するため、この問題を回避することができます。
推奨設定
KeepAlive パケットを送信する間隔は、OS 固有の TCP/IP KeepAliveパラメータに基づいて決まります。TCP/IP パラメータ設定の詳細については各OS のドキュメントを参照してください。
Web Agent/Policy Server両方においてはネットワーク停止などへの予期しない障害に対する予防的な対策として、TCP/IP KeepAliveパラメータの適切な値の設定と、環境変数SM_ENABLE_TCP_KEEPALIVEを有効にすることが推奨されます。
環境変数SM_ENABLE_TCP_KEEPALIVEを有効する方法
以下はWeb AgentとPolicy Serverの両方で共通の手順となります。
Windows:
以下のシステム環境変数を作成して値を1に設定します。
SM_ENABLE_TCP_KEEPALIVE
UNIX/Linux:
a. 以下のシステム環境変数を作成します。
SM_ENABLE_TCP_KEEPALIVE=1
b. 環境変数をエクスポートします。