Stream Closed When Sending Large Messages with SOAP/XML-RPC

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Stream Closed When Sending Large Messages with SOAP/XML-RPC

Dale V. Georg

I'm using JMeter to test sending messages to a Web Service that I have
running on WebSphere 6.0.  When I send small messages to the Web Service (1
or 2K in size) everything works fine.  However, when I send larger messages,
I start getting "Stream closed" exceptions.  With a 20K message, the
exception happens maybe 25% of the time -- with a 200K message it happens
100% of the time.  

If I deploy the same exact service to Tomcat, I'm able to send the larger
sized messages without any problems.  I'm also able to use another client
program to send large messages to the Web Service on WebSphere.  These two
points seem to indicate that the problem isn't strictly with my service
running on WebSphere, or strictly with JMeter, but somehow the combination
of the two just won't mix.

I'm wondering whether anyone has encountered similar problems before or
might be able to offer some suggestions as to what the problem might be.
It's evident from the full stack trace below that the issue comes when
JMeter tries to read the response back from the server; for some reason, at
that point, the stream seems to have been closed.  I also looked at all the
WebSphere logs, and found no errors or exceptions logged there that might
have indicated a problem that caused WebSphere to close the stream.

Any help is greatly appreciated!

Thanks,
Dale



java.io.IOException: Stream closed
        at
java.io.BufferedInputStream.ensureOpen(BufferedInputStream.java:120)
        at java.io.BufferedInputStream.read(BufferedInputStream.java:270)
        at java.io.FilterInputStream.read(FilterInputStream.java:90)
        at
org.apache.jmeter.protocol.http.sampler.HTTPSampler.readResponse(HTTPSampler
.java:263)
        at
org.apache.jmeter.protocol.http.sampler.HTTPSampler.sample(HTTPSampler.java:
496)
        at
org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBa
se.java:590)
        at
org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBa
se.java:578)
        at
org.apache.jmeter.protocol.http.sampler.SoapSampler.sample(SoapSampler.java:
146)
        at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:281)
        at java.lang.Thread.run(Thread.java:534)


 




---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: Stream Closed When Sending Large Messages with SOAP/XML-RPC

Peter Lin
a stream closed exception would indicate the server unexpected close
the connection. the xml-rpc/soap sampler to my knowledge does not use
a timeout and will not close the connection.

in fact, if the server hangs, you'll see jmeter keep those connections
open indefinitely.

peter


On 6/2/05, Dale V. Georg <[hidden email]> wrote:

>
> I'm using JMeter to test sending messages to a Web Service that I have
> running on WebSphere 6.0.  When I send small messages to the Web Service (1
> or 2K in size) everything works fine.  However, when I send larger messages,
> I start getting "Stream closed" exceptions.  With a 20K message, the
> exception happens maybe 25% of the time -- with a 200K message it happens
> 100% of the time.
>
> If I deploy the same exact service to Tomcat, I'm able to send the larger
> sized messages without any problems.  I'm also able to use another client
> program to send large messages to the Web Service on WebSphere.  These two
> points seem to indicate that the problem isn't strictly with my service
> running on WebSphere, or strictly with JMeter, but somehow the combination
> of the two just won't mix.
>
> I'm wondering whether anyone has encountered similar problems before or
> might be able to offer some suggestions as to what the problem might be.
> It's evident from the full stack trace below that the issue comes when
> JMeter tries to read the response back from the server; for some reason, at
> that point, the stream seems to have been closed.  I also looked at all the
> WebSphere logs, and found no errors or exceptions logged there that might
> have indicated a problem that caused WebSphere to close the stream.
>
> Any help is greatly appreciated!
>
> Thanks,
> Dale
>
>
>
> java.io.IOException: Stream closed
>         at
> java.io.BufferedInputStream.ensureOpen(BufferedInputStream.java:120)
>         at java.io.BufferedInputStream.read(BufferedInputStream.java:270)
>         at java.io.FilterInputStream.read(FilterInputStream.java:90)
>         at
> org.apache.jmeter.protocol.http.sampler.HTTPSampler.readResponse(HTTPSampler
> .java:263)
>         at
> org.apache.jmeter.protocol.http.sampler.HTTPSampler.sample(HTTPSampler.java:
> 496)
>         at
> org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBa
> se.java:590)
>         at
> org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBa
> se.java:578)
>         at
> org.apache.jmeter.protocol.http.sampler.SoapSampler.sample(SoapSampler.java:
> 146)
>         at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:281)
>         at java.lang.Thread.run(Thread.java:534)
>
>
>
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

RE: Stream Closed When Sending Large Messages with SOAP/XML-RPC

Dale V. Georg

Right; and I was having trouble understanding why.  Although, I may have
stumbled onto something.  I hooked up TCPMon to look at the requests and
responses that were going between JMeter and the service.  What I found was
that in the case of the 20K and 200K messages, JMeter wasn't sending the
full message; the message was cut off partway through.  The server was
probably choking on getting only a partial message, and may have been
closing down the connection before JMeter had a chance to read the response.

The interesting thing is that even though both the 20K and 200K messages
were cut off, they weren't cut off at the same point.  In the 200K case,
JMeter did send more of the message than it did in the 20K case, it just
still failed to send the full message.  So my suspicion now is that there
may be a bug either in the code that obtains the message to send from the
GUI, or in the code that actually sends the message to the server.  

Dale
 
 

-----Original Message-----
From: Peter Lin [mailto:[hidden email]]
Sent: Thursday, June 02, 2005 12:18 PM
To: JMeter Users List; [hidden email]
Subject: Re: Stream Closed When Sending Large Messages with SOAP/XML-RPC

a stream closed exception would indicate the server unexpected close
the connection. the xml-rpc/soap sampler to my knowledge does not use
a timeout and will not close the connection.

in fact, if the server hangs, you'll see jmeter keep those connections
open indefinitely.

peter


On 6/2/05, Dale V. Georg <[hidden email]> wrote:
>
> I'm using JMeter to test sending messages to a Web Service that I have
> running on WebSphere 6.0.  When I send small messages to the Web Service
(1
> or 2K in size) everything works fine.  However, when I send larger
messages,

> I start getting "Stream closed" exceptions.  With a 20K message, the
> exception happens maybe 25% of the time -- with a 200K message it happens
> 100% of the time.
>
> If I deploy the same exact service to Tomcat, I'm able to send the larger
> sized messages without any problems.  I'm also able to use another client
> program to send large messages to the Web Service on WebSphere.  These two
> points seem to indicate that the problem isn't strictly with my service
> running on WebSphere, or strictly with JMeter, but somehow the combination
> of the two just won't mix.
>
> I'm wondering whether anyone has encountered similar problems before or
> might be able to offer some suggestions as to what the problem might be.
> It's evident from the full stack trace below that the issue comes when
> JMeter tries to read the response back from the server; for some reason,
at
> that point, the stream seems to have been closed.  I also looked at all
the

> WebSphere logs, and found no errors or exceptions logged there that might
> have indicated a problem that caused WebSphere to close the stream.
>
> Any help is greatly appreciated!
>
> Thanks,
> Dale
>
>
>
> java.io.IOException: Stream closed
>         at
> java.io.BufferedInputStream.ensureOpen(BufferedInputStream.java:120)
>         at java.io.BufferedInputStream.read(BufferedInputStream.java:270)
>         at java.io.FilterInputStream.read(FilterInputStream.java:90)
>         at
>
org.apache.jmeter.protocol.http.sampler.HTTPSampler.readResponse(HTTPSampler
> .java:263)
>         at
>
org.apache.jmeter.protocol.http.sampler.HTTPSampler.sample(HTTPSampler.java:
> 496)
>         at
>
org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBa
> se.java:590)
>         at
>
org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBa
> se.java:578)
>         at
>
org.apache.jmeter.protocol.http.sampler.SoapSampler.sample(SoapSampler.java:
> 146)
>         at
org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:281)

>         at java.lang.Thread.run(Thread.java:534)
>
>
>
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>
>




---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: Stream Closed When Sending Large Messages with SOAP/XML-RPC

sebb-2-2
Which version of JMeter are you using?

I've had a look at the SoapSampler code in both 2.0.3 and CVS HEAD,
and the sample() method creates a connection and then calls
setPostHeaders.

This sets Content-Length, the HeaderManager data if any - else
Content-type to "text/xml". It then calls setDoOutput(true) on the
connection.

The sample() code then calls super.sample() - i.e. HTTPSampler - which
proceeds to create its _own_ new connection and set that up.

Not sure how it ever manages to work...

S.
On 6/2/05, Dale V. Georg <[hidden email]> wrote:

>
> Right; and I was having trouble understanding why.  Although, I may have
> stumbled onto something.  I hooked up TCPMon to look at the requests and
> responses that were going between JMeter and the service.  What I found was
> that in the case of the 20K and 200K messages, JMeter wasn't sending the
> full message; the message was cut off partway through.  The server was
> probably choking on getting only a partial message, and may have been
> closing down the connection before JMeter had a chance to read the response.
>
> The interesting thing is that even though both the 20K and 200K messages
> were cut off, they weren't cut off at the same point.  In the 200K case,
> JMeter did send more of the message than it did in the 20K case, it just
> still failed to send the full message.  So my suspicion now is that there
> may be a bug either in the code that obtains the message to send from the
> GUI, or in the code that actually sends the message to the server.
>
> Dale
>
>
>
> -----Original Message-----
> From: Peter Lin [mailto:[hidden email]]
> Sent: Thursday, June 02, 2005 12:18 PM
> To: JMeter Users List; [hidden email]
> Subject: Re: Stream Closed When Sending Large Messages with SOAP/XML-RPC
>
> a stream closed exception would indicate the server unexpected close
> the connection. the xml-rpc/soap sampler to my knowledge does not use
> a timeout and will not close the connection.
>
> in fact, if the server hangs, you'll see jmeter keep those connections
> open indefinitely.
>
> peter
>
>
> On 6/2/05, Dale V. Georg <[hidden email]> wrote:
> >
> > I'm using JMeter to test sending messages to a Web Service that I have
> > running on WebSphere 6.0.  When I send small messages to the Web Service
> (1
> > or 2K in size) everything works fine.  However, when I send larger
> messages,
> > I start getting "Stream closed" exceptions.  With a 20K message, the
> > exception happens maybe 25% of the time -- with a 200K message it happens
> > 100% of the time.
> >
> > If I deploy the same exact service to Tomcat, I'm able to send the larger
> > sized messages without any problems.  I'm also able to use another client
> > program to send large messages to the Web Service on WebSphere.  These two
> > points seem to indicate that the problem isn't strictly with my service
> > running on WebSphere, or strictly with JMeter, but somehow the combination
> > of the two just won't mix.
> >
> > I'm wondering whether anyone has encountered similar problems before or
> > might be able to offer some suggestions as to what the problem might be.
> > It's evident from the full stack trace below that the issue comes when
> > JMeter tries to read the response back from the server; for some reason,
> at
> > that point, the stream seems to have been closed.  I also looked at all
> the
> > WebSphere logs, and found no errors or exceptions logged there that might
> > have indicated a problem that caused WebSphere to close the stream.
> >
> > Any help is greatly appreciated!
> >
> > Thanks,
> > Dale
> >
> >
> >
> > java.io.IOException: Stream closed
> >         at
> > java.io.BufferedInputStream.ensureOpen(BufferedInputStream.java:120)
> >         at java.io.BufferedInputStream.read(BufferedInputStream.java:270)
> >         at java.io.FilterInputStream.read(FilterInputStream.java:90)
> >         at
> >
> org.apache.jmeter.protocol.http.sampler.HTTPSampler.readResponse(HTTPSampler
> > .java:263)
> >         at
> >
> org.apache.jmeter.protocol.http.sampler.HTTPSampler.sample(HTTPSampler.java:
> > 496)
> >         at
> >
> org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBa
> > se.java:590)
> >         at
> >
> org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBa
> > se.java:578)
> >         at
> >
> org.apache.jmeter.protocol.http.sampler.SoapSampler.sample(SoapSampler.java:
> > 146)
> >         at
> org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:281)
> >         at java.lang.Thread.run(Thread.java:534)
> >
> >
> >
> >
> >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [hidden email]
> > For additional commands, e-mail: [hidden email]
> >
> >
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]