2

外部課金サーバーに接続するアプリケーションがあります。クライアント側のサーバーに障害が発生すると、何百もの接続が CLOSE_WAIT 状態になりました。

クライアントコードを確認しました。そして、クライアントが TCP 接続を適切に閉じているようです。

サーバー側の問題によりサーバーが接続を適切に閉じていないためにこれが発生した場合、クライアントフォームがソケットを CLOSE_WAIT 状態に保つのを防ぐ方法はありますか?

また、スレッド数と CPU 使用率が通常よりも上昇していることも確認しました。

アプリの再起動後、数時間経過しても CLOSE_WAIT の蓄積はなく、スレッド数と CPU 使用率は正常に戻りました。

サーバーが接続を適切に閉じることができなかった場合、クライアントを再起動して CLOSE_WAIT を削除する以外に何かすることはありませんか? (つまり、クライアント側でこの問題を防ぐことができるコードの改善があります)

クライアント側でカスタマイズされた JDiameter コードを使用して課金サーバーに接続します。

(サーバー側のコードにはアクセスできません)

4

1 に答える 1