首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java.net.SocketException:套接字关闭,JMeter

java.net.SocketException:套接字关闭,JMeter
EN

Stack Overflow用户
提问于 2014-08-27 15:34:25
回答 3查看 30K关注 0票数 10

我使用的是3-6个用户负载的JMeter。我经常得到下面的异常。请告诉我这个问题的原因是什么?这是JMeter的问题还是服务器应用程序的问题?提前谢谢你。

下一个异常是:

代码语言:javascript
复制
java.net.SocketException: Socket closed
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)
at sun.security.ssl.InputRecord.readFully(Unknown Source)
at sun.security.ssl.InputRecord.read(Unknown Source)
at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source)
at sun.security.ssl.SSLSocketImpl.readDataRecord(Unknown Source)
at sun.security.ssl.AppInputStream.read(Unknown Source)
at org.apache.http.impl.io.AbstractSessionInputBuffer.fillBuffer(AbstractSessionInputBuffer.java:166)
at org.apache.http.impl.io.SocketInputBuffer.fillBuffer(SocketInputBuffer.java:90)
at org.apache.http.impl.io.AbstractSessionInputBuffer.readLine(AbstractSessionInputBuffer.java:281)
at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:92)
at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:61)
at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:254)
at org.apache.http.impl.AbstractHttpClientConnection.receiveResponseHeader(AbstractHttpClientConnection.java:289)
at org.apache.http.impl.conn.DefaultClientConnection.receiveResponseHeader(DefaultClientConnection.java:252)
at org.apache.http.impl.conn.ManagedClientConnectionImpl.receiveResponseHeader(ManagedClientConnectionImpl.java:191)
at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:300)
at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:127)
at org.apache.http.impl.client.DefaultRequestDirector.tryExecute(DefaultRequestDirector.java:715)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:520)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:805)
at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.executeRequest(HTTPHC4Impl.java:481)
at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.sample(HTTPHC4Impl.java:298)
at org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy.sample(HTTPSamplerProxy.java:74)
at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1105)
at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1094)
at org.apache.jmeter.threads.JMeterThread.process_sampler(JMeterThread.java:429)
at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:257)
at java.lang.Thread.run(Unknown Source)
EN

回答 3

Stack Overflow用户

发布于 2019-08-15 03:12:24

好吧,我有这个问题,我尝试和工作的解决方案是更新Java版本。从1.8到1.12。

因为它是Jar (编译的Java程序),所以如果您尝试使用以前版本的java运行它,可能会导致此错误。

票数 1
EN

Stack Overflow用户

发布于 2020-10-23 06:04:03

这对我来说很有效:

在您的计算机菜单上搜索"Update Java“并选择它,然后在Java控制面板上选择"Update”选项。现在,选择“立即更新”。等待安装完成,不要忘记在安装结束前选择"Ok“。

当Java被更新时,POST在JMeter上工作。这是AndiFB答案的相同解决方案。

票数 0
EN

Stack Overflow用户

发布于 2018-10-16 15:46:30

是否从JMeter 2.10开始重置连接?如果您最近升级到JMeter 2.10或2.11,您可能已经注意到此类型的错误增加:

套接字关闭非HTTP响应码: org.apache.http.NoHttpResponseException (目标服务器响应失败)

解释此类错误的增加可以通过两个设置更改来解释:

在HTTP2.10中禁用了失败请求的重试(仅限幂等请求),在JMeter 2.11中禁用了JMeter Client 3和4实现中的陈旧检查。为什么要进行这些更改?以前的重试默认设置导致在某些类型的失败中请求数量增加。

以前的陈旧检查有点昂贵,因为它适用于每个样本。这就是为什么默认设置被更改为禁用它的原因。

重试或过时检查可能会隐藏服务器配置方面的问题:

服务器无法发送(可选) Keep-Alive报头使服务器拒绝连接,重试将增加负载更改配置:如果您认为此服务器行为正常,则可以在两个位置更改配置:

在user.properties set中为HttpClient 4启用重试:

httpclient4.retrycount=1这将使JMeter重试一次。对于HttpClient 3,在user.properties set中:

httpclient3.retrycount=1这将使JMeter重试一次。

启用HC4实施的陈旧检查:

在user.properties中:

hc.parameters集合中的hc.parameters.file=hc.parameters:

用于HC3实施的http.connection.stalecheck$Boolean=true:

在user.properties中:

httpclient.parameters集合中的httpclient.parameters.file=httpclient.parameters:

http.connection.stalecheck$Boolean=true JMeter 2.12即将发布的JMeter版本中的新设置添加了一项设置,用于在服务器不发送Keep-Alive报头时添加空闲连接超时。

该值以毫秒为单位:

httpclient4.idletimeout=

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25521368

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档