51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 95047|回复: 22
打印 上一主题 下一主题

[求助] 如何解决connection reset by peer

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-4-4 09:54:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
录制c/s结构下的winsocket通信,在vuser_ini中创建连接(lrs_create_socket),在action中发送数据(send),在vuser_end中关闭连接(lrs_close_socket),但是现在的问题是在使用controller运行场景时,运行一段时间出现failed transactions,error的具体信息如下:
Action.c(18): Error : socket1 - Connection reset by peer. Error code : 10054.
查看代码发生错误的位置,发生在action中的发送数据(send)语句。
请问如何能解决这个问题,如果连接被重置(Connection reset by peer),可否自动创建新的连接,继续实现数据发送。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2007-4-9 15:04:25 | 只看该作者
把所有脚本都放在action里。
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2007-4-9 18:05:12 | 只看该作者
补充Zee版主的。

用户的执行速度可能不一致,如果录制在init,可能就出现有的用户在action的时候,有的用户已经close连接了,所以导致connect 被关闭。



不知道在controller里面钩上init all vuser before execution是否可以解决这个问题? Zee。
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2007-4-9 18:29:26 | 只看该作者
我在做过样的测试的时候,跑多个vuser,没有关系的。
你勾上init all vuser before execution也和后面的执行时间没有关系。你也控制不了每个vuser的迭代时间呀。
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2007-4-13 13:47:13 | 只看该作者
我的action中只录制一个动作,即发送100字节的数据给服务器,lr_think_time(0.1);然后我在运行时设置中将think的设置*0.1,这样子理论上可以保证1秒100条数据的发送,不知这样子是否正确?然后我将脚本复制10份,将其中的vuser_init设置为存在的客户连接,然后将这些脚本添加到controller中,且quantity都为1,这样子我在运行的时候就可以看到服务器端存在10个连接,且每个连接100/s的速度上传数据,当运行时间长了以后,就出现连接reset。这应该与服务器不能处理这么多数据的原因引起的,然后后续的数据积压,到一定阶段的时候就被reset了。不知理解的对否?
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2007-7-6 12:30:02 | 只看该作者
原帖由 Zee 于 2007-4-9 15:04 发表
把所有脚本都放在action里。



放了

还是没有用!sdlkfj9
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2007-7-6 12:57:27 | 只看该作者
Problem Description: Error: "-27780: read to host failed: [10054] Connection reset by peer"

The user gets the following error messages during replay of a Web script:

"Error -27780: read to host <host name> failed: [10054] Connection reset by peer"
"Error -27790: Failed to read data from server <host name>"

Diagnosis: The client sends a POST request to the server and gets a response with HTTP status 200, connection close and redirection using both JS code and meta-refresh. There is no content-length, so the client is supposed to decide when to close the connection. Internet Explorer closes the connection before sending the request to the redirection URL. But, LoadRunner does not; later the server closes the connection, and the result is the error message.



--------------------------------------------------------------------------------

Solution: Use web_set_sockets_option ("CLOSE_KEEPALIVE_CONNECTIONS", "1")

Add the following step after the POST step:

   web_set_sockets_option("CLOSE_KEEPALIVE_CONNECTIONS", "1");

This step closes all the open connections, and as a result, LoadRunner stops waiting for the rest of the response of the redirection.


答案其实一样,打开socket后记得关。
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2007-7-6 15:42:50 | 只看该作者
再次感谢!!
这里转帖一个方法
希望对你有帮助

现象:1、在单脚本执行10次迭代没有问题。2、在Controller中并发执行出现此错误。3、错误总定位在程序是某一行。4、失败的用户的迭代次数都相同。

方法:1、排除了程序问题
   
      2、排除了服务器防火墙、弑毒软件问题

      3、使用IP 欺骗无效。

原因:是参数问题。

      1)、参数是使用EXCEL表,用 micro query生成的。结果小数点后的0被处理成了空值。
     
      2)、而空值在BUFFER里传送给服务器后,服务器程序不识别,连接被强制关闭。

教训啊!无论多少个参数,一定要确认参数无错误。
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2007-7-22 09:39:10 | 只看该作者
学习了
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2008-3-13 15:46:08 | 只看该作者
怎么办?我现在的测试100个并发VUSER,64个passed,36个failed,都是出现这个Connection reset by peer. Error code : 10054.,而且服务器显示只有2个用户登录过了,这怎么回事啊
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2008-9-5 10:08:12 | 只看该作者
我也遇到同样的问题了,郁闷
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2008-9-5 18:23:04 | 只看该作者
我也是同样的问题,但是我是在做C/S应用程序设计中出现的问题,这里也请各位帮忙解决下

lrs_receive("socket0", "buf29", LrsLastArg);

不知道,这个是什么问题
回复 支持 反对

使用道具 举报

该用户从未签到

13#
发表于 2009-5-30 22:53:14 | 只看该作者
经常出现的Connection reset by peer: 原因可能是多方面的,不过更常见的原因是:①:服务器的并发连接数超过了其承载量,服务器会将其中一些连接Down掉;②:客户关掉了浏览器,而服务器还在给客户端发送数据;③:浏览器端按了Stop
[10054] Connection reset by peer
Connection reset by peer is a tough one because it can be caused by so many things. In all cases, the server determines that the socket is no longer good and closes it from its side.

Read Error
Scenario: Mary couldn't make out what Joe was saying anymore, so she hung up rather than lose his messages (data).
A read error occurs when a server cannot successfully read from a user's client. Servers gather information from the client by text, setup, and other items.When the server receives an error when reading from a client, it then disconnects the user, resulting in a read error quit message.

Write Error
Scenario: Mary was trying to talk to Joe but didn't think she was getting through, so she hung rather than lose his messages (data).
A write error occurs when a server cannot successfully write to a user's client. When the server receives information, it usually responds with information of its own. When the server receives an error when writing to a client, it then disconnects the user, resulting in a write error quit message similar to the read error format.

Ping Timeout Error
Scenario: Mary, having been raised in a household with too many kids and always craving attention, keeps asking to make sure that Joe is still on the line and listening. If he doesn't reply fast enough to suit her, she hangs up.
Servers automatically ping users at a preset time. The reason for this is to ensure the client is still connected to the server. When you see "PING? PONG!" results in your status window, it means the server has pinged your client, and it has responded back with a pong to ensure the server that you are still connected. When this does not happen and you disconnect without the server's knowledge, the server will automatically disconnect the user when it does not receive a response, resulting in a ping timeout. Ping timeouts occur to EVERYONE.

Broken pipe Error
Scenario: Mary had picked up a sticky note with a message she needed to relay to Joe, but somehow between her hand and her mouth, the message got misplaced. Mary was trying to talk to Joe but didn't think she was getting through, so she hung up rather than lose his messages (data).
A broken pipe error occurs when the server knows it has a message but can't seem to use its internal data link to get the data out to the socket.

Miscellaneous
Scenario: Lots of other reasons; perhaps the operator broke in and gave Mary a message that made her doubt the validity of the call so she hung up.
回复 支持 反对

使用道具 举报

该用户从未签到

14#
发表于 2009-12-17 13:28:14 | 只看该作者
我也遇到过这样的问题,没有找到解决问题的办法!
回复 支持 反对

使用道具 举报

该用户从未签到

15#
发表于 2009-12-17 16:50:36 | 只看该作者

回复 10# 的帖子

这个应该是参数的问题,说明用户没有登录成功,请查看参数是否正确且设置是否正确
回复 支持 反对

使用道具 举报

该用户从未签到

16#
发表于 2010-10-22 11:06:51 | 只看该作者
碰到相同的问题,求解
回复 支持 反对

使用道具 举报

该用户从未签到

17#
发表于 2011-8-22 15:37:21 | 只看该作者
关注中......
回复 支持 反对

使用道具 举报

该用户从未签到

18#
发表于 2011-8-23 15:22:54 | 只看该作者
........
回复 支持 反对

使用道具 举报

该用户从未签到

19#
发表于 2011-11-17 11:16:13 | 只看该作者
有解决的没?俺也遇到了这种问题。。。
回复 支持 反对

使用道具 举报

该用户从未签到

20#
发表于 2011-12-20 17:01:14 | 只看该作者
我也遇到这个问题了,用zee 的方法解决了
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-23 05:22 , Processed in 0.079061 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表