zoukankan      html  css  js  c++  java
  • loadrunner-27796错误寻求解决办法

    转载

    Action.c(58): Error -27796: Failed to connect to server "www.baidu.com:80": [10048] Address already in use
    Try changing the registry value
    HKEY_LOCAL_MACHINESystemCurrentControlSetServices cpipParametersTcpTimedWaitDelay to 30
    and HKEY_LOCAL_MACHINESystemCurrentControlSetServices cpipParametersMaxUserPort to 65534
    and rebooting the machine
    See the readme.doc file for more information

    .......2012.10.20.-----

    网上的提示多为:LR压力测试遇到如上错误,跟据提示在注册表中已将TcpTimedWaitDelay  改为 1;MaxUserPort 改为 65534;并且重启电脑。运行后仍出现上面的错误。。。。但还是无法解决。

    于是~~~~:
    在 run-time setting/browser emulation中将simulate a new user on each iteration  选项去掉(默认是选中的)。重新运行一切正常,没有错误出现。

    【复制博主的猜测:
    猜测原因,客户端性能比较好,发出压力太快,所以把tcp/ip的连接或端口占满。在网上查了一下,xp好像默认开启15个tcp/ip。。。

    去掉这个选项的意思是,始终使用一个tcp/ip链接,不断开,也就是开发人员所说的长链接或持久连接。   
    短连接:建立连接-----发送和接收报文1-------关闭连接

    长连接:建立连接-----发送和接收报文1.。。。2.。。。3-----关闭连接 】

    妈的,累死了,搞了一整个晚上的connectify还是不能用,我cao...!又熬夜了,还一事无成,我的超级本啊,我的PPT啊。cao。。。不弄了,来去睡。

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

     Error -27796: Failed to connect to server "125.93.51.230:8080": [10061]

    Connection refused..

    2013.05.31,这个27796一直是我心中的痛,试过网上所有的方法了,还是不行,我只能怀疑是不是我的客户端OS是win7的,所以才造成这种情况.....哎~!

    认真分析这个错误,其实比较容易理解,就是连接不上服务,由于端口已经满了,那么自己的本机已经修改成65534,服务器已经修成成65534,那么这就是唯一的解决方式么?后来仔细思考,我找到了两种解决方式:

    1、通过让每次迭代不启用新的连接,我想就可以解决此问题,经过验证,发现这个问题确实不发生了。操作如下,在controller的运行时设置中的-->browser Emulation-->不扣选simulate a new user on each iteration,这样运行时并发人数是多少,那么就启动多少个端口。还是上面的问题,是否勾选这个选项就一定会报27796错误么?

    2、回答上面的提问,答案是不一定。如果你每次迭代启用新的端口,但是由于迭代次数*并发数<65534就不会报这个错误。如果设置的迭代次数*并发数>65534,也不一定会出现这个错误,例如:并发人数为1000,平均响应时间为1s,那么也就是说1s会占用1000个端口,也就是说不到66s时端口就会占满,如果服务器能在65s内关闭之前占用的端口之间的连接,也就是说65s超时时间,或者会话保持为65s以内,那么就能解决此问题。

    以上提出两种解决方式,都可以解决27796error,一个是修改loadrunner中的controller设置,另一个就是设置服务器的超时时间在合理范围之内,不要太长,也不要太短。

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

    官方的troubleshooting:
    查看工具的troubleshooting,如下:
    Message Code 27796
    Failed to connect to server 'hostname';port_ld': 'reason'.
    Unable to connect to the specified server and port.
    Troubleshooting
    o     Try to address the reason provided for the connection failure.
    o     Try to access the application with a browser from the injector machine and from another machine (such as the recording machine).
    o     Check that you accurately specified the correct host name and port.
    o     Ping the host/port.
    o     Check if the server application you are trying to access is running.
    o     If you used a hostname, check if it was resolved to the correct address.
    o     Check if the server application is listening to the right port.
    成功的解决方法:
     
    在负载生成器的注册表HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters里,有如下两个键值:
    TcpTimedWaitDelay
    MaxUserPort
    1,这里的TcpTimedWaitDelay默认值应该中是30s,所以这里,把这个值调小为5s(按需要调整)。
    2,也可以把MaxUserPort调大(如果这个值不是最大值的话)。
     
    反复验证,问题解决。【我怎么试了好几种方法都失败啊。】
     
    ----------------------------------------------------connection time out---------------
    Error -27796: Failed to connect to server "ip地址": [10060] Connection timed out的解决办法:
     

    解决办法一是:

    (1)1. 修改run time setting中的请求超时时间Preferences 中点击Options 其中有三项的参数可以一次都修改了,HTTP-request connect timeout,HTTP-request receieve timeout,Step download timeout,分别建议修改为1000、1000、10000;run time setting设置完了后记住还需要在control组件的option的run time setting中设置相应的参数;

         2. Browser Emulation 中的Download non-HTML resources 选项去掉,点击OK即可 

    (2)办法(一)不能解决的情况下,解决办法如下:

      设置runt time setting中的internet protocol-preferences中的advaced区域有一个winlnet replay instead of sockets选项,选项后再回放就成功了。切记此法只对windows系统起作用,此法来自zee的资料。

  • 相关阅读:
    C#事件解析
    VB 正则表达式应用
    vb.net 2进制、8进制、10进制、16进制...各种进制间的轻松转换
    .net 中的委托(delegate)的使用和原理
    什么是Color LUT/Color Map
    Java怀旧:About left/right shift, negative value representation and signextended(while shifting)
    Eclipse Tips
    Setup KGDB
    Java怀旧:foreach version loop, Changes to iteration variable doesn't take effect
    Java怀旧:break <label> & continue <label>,break <label>相当于简易的goto了,凑活用了
  • 原文地址:https://www.cnblogs.com/wxh04/p/8779545.html
Copyright © 2011-2022 走看看