Discussion:
jmeter tries to reuse busy ports?
Nikita Tovstoles
2006-05-09 06:07:16 UTC
Permalink
Hi,

I am running JMeter and webapp being tested on the same machine. Could
someone please let me know whether the following http request error
message means that JMeter is trying to use a local (outbound) port that
is already in use (and that this is NOT a reponse from Tomcat webapp
being tested):

If so, does that mean JMeter is reusing a port on a subsequent request
without confirming that preceeding request's been completed? What can I
do about this?

-My test plan:
40 Threads, each running one HTTP request at 200 ms interval.
-Summary Results = 13964 in 114.9s = 121.5/s Avg: 2 Min: 0 Max: 375 Err:
30 (0.21%)
-using "Kill thread on error" - otherwise error *rate* seems to escalate
dramatically with time
-I see no exceptions/errors in Tomcat logs anywhere
-using JMeter 2.1.1
thanks a lot,

-nikita
PS. This is an awesomely helpful tool!

<sampleResult timeStamp="1147139453203" dataType="text"
threadName="Clients 1-11" label="Test Command" time="63"
responseMessage="Non HTTP response message" responseCode="Non HTTP
response code" success="false">

<property xml:space="preserve" name="samplerData">
GET http://localhost:8081/envmanager/etsadmin?cmd=test
</property>
<assertionResult failureMessage="Test failed, text expected to contain
/success/" error="false" failure="true"/>
<assertionResult failureMessage="" error="false" failure="false"/>

<binary>
java.net.BindException: Address already in use: connect

at java.net.PlainSocketImpl.socketConnect(Native Method)

at java.net.PlainSocketImpl.doConnect(Unknown Source)

at java.net.PlainSocketImpl.connectToAddress(Unknown Source)

at java.net.PlainSocketImpl.connect(Unknown Source)

at java.net.Socket.connect(Unknown Source)

at java.net.Socket.connect(Unknown Source)

at sun.net.NetworkClient.doConnect(Unknown Source)

at sun.net.www.http.HttpClient.openServer(Unknown Source)

at sun.net.www.http.HttpClient.openServer(Unknown Source)

at sun.net.www.http.HttpClient.<init>(Unknown Source)

at sun.net.www.http.HttpClient.New(Unknown Source)

at sun.net.www.http.HttpClient.New(Unknown Source)

at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown
Source)

at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)

at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source)

at
org.apache.jmeter.protocol.http.sampler.HTTPSampler.sample(HTTPSampler.java:424)

at
org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:514)

at
org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:503)

at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:247)

at java.lang.Thread.run(Unknown Source)

</binary>
</sampleResult>
sebb
2006-05-09 16:35:07 UTC
Permalink
Post by Nikita Tovstoles
Hi,
I am running JMeter and webapp being tested on the same machine. Could
someone please let me know whether the following http request error
message means that JMeter is trying to use a local (outbound) port that
is already in use (and that this is NOT a reponse from Tomcat webapp
The error message comes from JMeter, not Tomcat.

In this case the error is generated by the default Java HTTP
implementation, which is part of the Java installation.
Post by Nikita Tovstoles
If so, does that mean JMeter is reusing a port on a subsequent request
without confirming that preceeding request's been completed? What can I
do about this?
JMeter relies on Java to do the socket creation, so the error is in
the Java library.

You could try changing to the Apache HTTPClient HTTP Sampler.
Post by Nikita Tovstoles
40 Threads, each running one HTTP request at 200 ms interval.
30 (0.21%)
-using "Kill thread on error" - otherwise error *rate* seems to escalate
dramatically with time
-I see no exceptions/errors in Tomcat logs anywhere
-using JMeter 2.1.1
thanks a lot,
-nikita
PS. This is an awesomely helpful tool!
<sampleResult timeStamp="1147139453203" dataType="text"
threadName="Clients 1-11" label="Test Command" time="63"
responseMessage="Non HTTP response message" responseCode="Non HTTP
response code" success="false">
$B!](B
<property xml:space="preserve" name="samplerData">
GET http://localhost:8081/envmanager/etsadmin?cmd=test
</property>
<assertionResult failureMessage="Test failed, text expected to contain
/success/" error="false" failure="true"/>
<assertionResult failureMessage="" error="false" failure="false"/>
$B!](B
<binary>
java.net.BindException: Address already in use: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(Unknown Source)
at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at sun.net.NetworkClient.doConnect(Unknown Source)
at sun.net.www.http.HttpClient.openServer(Unknown Source)
at sun.net.www.http.HttpClient.openServer(Unknown Source)
at sun.net.www.http.HttpClient.<init>(Unknown Source)
at sun.net.www.http.HttpClient.New(Unknown Source)
at sun.net.www.http.HttpClient.New(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown
Source)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source)
at
org.apache.jmeter.protocol.http.sampler.HTTPSampler.sample(HTTPSampler.java:424)
at
org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:514)
at
org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:503)
at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:247)
at java.lang.Thread.run(Unknown Source)
</binary>
</sampleResult>
---------------------------------------------------------------------
Loading...