2016-11-03 8 views
0

client.close();エンドポイントへの接続を直ちに終了していません。 netstatは、client.close呼び出しが完了してから数秒間接続が開いていることを示しています。 強制的に接続を強制終了する方法はありますか?ジャージー2クライアントがすぐに接続を閉じない

+2

org.glassfish.jersey.client.ClientPropertiesで何かを見つけることができない、少なくともジャージーのためにこの値を設定することが可能である場合、私は知らない

は、私はジャージークライアントがHttpURLConnectionの使用と思うし、私はHttpURLConnectionのは、デフォルトでは持続的な接続を使用していますね。 'http.keepAlive = false'を試しましたか? –

答えて

-1

おそらく、close()コールと実際の接続の終了の間の時間を定義するSO_LINGER値の設定が原因です。

このソケットオプションの詳細は、this SO answerにあります。Javaでは、Socket.setSOLinger()で値を設定することができます。私は

+0

SO_LINGERは 'close()'呼び出しと実際の接続の終了の間の時間を定義しません。保留中のデータをフラッシュするための 'close()'コールの待機時間*を定義します。これは通常はオフ*ですが、実際には正の値に設定された製造コードは見たことがありません。この質問の真の説明は@BrettKail:HTTPキープアライブによって与えられるものです。 – EJP

関連する問題