You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Andy Gasser <an...@gmail.com> on 2009/06/01 20:24:33 UTC

Re: Connection reset when calling service from Tomcat

I  have an Axis2 web service that is calling another Axis2 web service
on a separate server via a client proxy. I'm running using the Axis2
web app in Tomcat on both servers. To make this easier let's say
service A calls service B. Periodically SocketExceptions are being
thrown in service A while calling Service B indicating that the
connection was reset. Looking at the stack trace I can see that Axis2
is in the BStub.fromOM method calling service B.

We didn't have this problem when in development and we have since gone
to production, making it harder to troubleshoot. Service A is writing
an exception trace to the Tomcat log, but Service B is not. I think
the issue is that the client proxy is not waiting long enough for the
response, but I'm shooting in the dark.

Since we are in production a code change is more difficult to deploy,
so changing configuration is preferred. I tried adding these
parameters in the axis.xml file under the http transportSender to set
the timeout to 10 minutes, but it didn't fix the problem:
         <parameter name="SO_TIMEOUT" locked="false">600000</parameter>
         <parameter name="CONNECTION_TIMEOUT" locked="false">600000</parameter>

It's my understanding that the transportSender settings should affect
the defaults for the call from service A to service B so I don't have
to configure the client in code, but it really isn't clear to me. If
you have any suggestions or can point me to some documentation this is
more complete than
http://ws.apache.org/axis2/1_4_1/http-transport.html I would
appreciate it!

Re: Connection reset when calling service from Tomcat

Posted by Greg Stasica <gs...@googlemail.com>.
hi,

thanks for sharing.
i can't remember exactly the context but i've already seen similar problem
and the solution had been as you wrote it e.i keep-alive parameter



On Thu, Jun 4, 2009 at 4:56 PM, Andy Gasser <an...@gmail.com> wrote:

> As a courtesy I'll post back my resolution. It turns out the Tomcat
> connector for service B was configured to allow only 1 connection over
> a keep-alive connection instead of the default. Apparently the Axis2
> client proxy wasn't able to handle this. I change the setting back to the
> default and the problem appears to have gone away.
>
>
> On Tue, Jun 2, 2009 at 11:54 AM, Andy Gasser <an...@gmail.com>
> wrote:
> > As an update, I added the code to set the timeout using
> > options.setTimeOutInMilliSeconds on the client. I don't think we're
> > seeing the error as often now, but we're still getting it.
> >
> >
> > On Tue, Jun 2, 2009 at 11:12 AM, Andy Gasser <an...@gmail.com>
> wrote:
> >> I apologize if I posted this more than once, I accidentally tried to
> post
> >> before confirming my subscription.
> >>
> >> I have an Axis2 web service that is calling another Axis2 web service
> >> on a separate server via a client proxy. I'm running using the Axis2
> >> web app in Tomcat on both servers. To make this easier let's say
> >> service A calls service B. Periodically SocketExceptions are being
> >> thrown in service A while calling Service B indicating that the
> >> connection was reset. Looking at the stack trace I can see that Axis2
> >> is in the BStub.fromOM method calling service B.
> >>
> >> We didn't have this problem when in development and we have since gone
> >> to production, making it harder to troubleshoot. Service A is writing
> >> an exception trace to the Tomcat log, but Service B is not. I think
> >> the issue is that the client proxy is not waiting long enough for the
> >> response, but I'm shooting in the dark.
> >>
> >> Since we are in production a code change is more difficult to deploy,
> >> so changing configuration is preferred. I tried adding these
> >> parameters in the axis.xml file under the http transportSender to set
> >> the timeout to 10 minutes, but it didn't fix the problem:
> >>         <parameter name="SO_TIMEOUT" locked="false">600000</parameter>
> >>         <parameter name="CONNECTION_TIMEOUT"
> locked="false">600000</parameter>
> >>
> >> It's my understanding that the transportSender settings should affect
> >> the defaults for the call from service A to service B so I don't have
> >> to configure the client in code, but it really isn't clear to me. If
> >> you have any suggestions or can point me to some documentation this is
> >> more complete than
> >> http://ws.apache.org/axis2/1_4_1/http-transport.html I would
> >> appreciate it!
> >>
> >
>



-- 
Greg Stasica

Re: Connection reset when calling service from Tomcat

Posted by Andy Gasser <an...@gmail.com>.
As a courtesy I'll post back my resolution. It turns out the Tomcat
connector for service B was configured to allow only 1 connection over
a keep-alive connection instead of the default. Apparently the Axis2
client proxy wasn't able to handle this. I change the setting back to the
default and the problem appears to have gone away.


On Tue, Jun 2, 2009 at 11:54 AM, Andy Gasser <an...@gmail.com> wrote:
> As an update, I added the code to set the timeout using
> options.setTimeOutInMilliSeconds on the client. I don't think we're
> seeing the error as often now, but we're still getting it.
>
>
> On Tue, Jun 2, 2009 at 11:12 AM, Andy Gasser <an...@gmail.com> wrote:
>> I apologize if I posted this more than once, I accidentally tried to post
>> before confirming my subscription.
>>
>> I have an Axis2 web service that is calling another Axis2 web service
>> on a separate server via a client proxy. I'm running using the Axis2
>> web app in Tomcat on both servers. To make this easier let's say
>> service A calls service B. Periodically SocketExceptions are being
>> thrown in service A while calling Service B indicating that the
>> connection was reset. Looking at the stack trace I can see that Axis2
>> is in the BStub.fromOM method calling service B.
>>
>> We didn't have this problem when in development and we have since gone
>> to production, making it harder to troubleshoot. Service A is writing
>> an exception trace to the Tomcat log, but Service B is not. I think
>> the issue is that the client proxy is not waiting long enough for the
>> response, but I'm shooting in the dark.
>>
>> Since we are in production a code change is more difficult to deploy,
>> so changing configuration is preferred. I tried adding these
>> parameters in the axis.xml file under the http transportSender to set
>> the timeout to 10 minutes, but it didn't fix the problem:
>>         <parameter name="SO_TIMEOUT" locked="false">600000</parameter>
>>         <parameter name="CONNECTION_TIMEOUT" locked="false">600000</parameter>
>>
>> It's my understanding that the transportSender settings should affect
>> the defaults for the call from service A to service B so I don't have
>> to configure the client in code, but it really isn't clear to me. If
>> you have any suggestions or can point me to some documentation this is
>> more complete than
>> http://ws.apache.org/axis2/1_4_1/http-transport.html I would
>> appreciate it!
>>
>

Re: Connection reset when calling service from Tomcat

Posted by Andy Gasser <an...@gmail.com>.
As an update, I added the code to set the timeout using
options.setTimeOutInMilliSeconds on the client. I don't think we're
seeing the error as often now, but we're still getting it.


On Tue, Jun 2, 2009 at 11:12 AM, Andy Gasser <an...@gmail.com> wrote:
> I apologize if I posted this more than once, I accidentally tried to post
> before confirming my subscription.
>
> I have an Axis2 web service that is calling another Axis2 web service
> on a separate server via a client proxy. I'm running using the Axis2
> web app in Tomcat on both servers. To make this easier let's say
> service A calls service B. Periodically SocketExceptions are being
> thrown in service A while calling Service B indicating that the
> connection was reset. Looking at the stack trace I can see that Axis2
> is in the BStub.fromOM method calling service B.
>
> We didn't have this problem when in development and we have since gone
> to production, making it harder to troubleshoot. Service A is writing
> an exception trace to the Tomcat log, but Service B is not. I think
> the issue is that the client proxy is not waiting long enough for the
> response, but I'm shooting in the dark.
>
> Since we are in production a code change is more difficult to deploy,
> so changing configuration is preferred. I tried adding these
> parameters in the axis.xml file under the http transportSender to set
> the timeout to 10 minutes, but it didn't fix the problem:
>         <parameter name="SO_TIMEOUT" locked="false">600000</parameter>
>         <parameter name="CONNECTION_TIMEOUT" locked="false">600000</parameter>
>
> It's my understanding that the transportSender settings should affect
> the defaults for the call from service A to service B so I don't have
> to configure the client in code, but it really isn't clear to me. If
> you have any suggestions or can point me to some documentation this is
> more complete than
> http://ws.apache.org/axis2/1_4_1/http-transport.html I would
> appreciate it!
>

Connection reset when calling service from Tomcat

Posted by Andy Gasser <an...@gmail.com>.
I apologize if I posted this more than once, I accidentally tried to post
before confirming my subscription.

I have an Axis2 web service that is calling another Axis2 web service
on a separate server via a client proxy. I'm running using the Axis2
web app in Tomcat on both servers. To make this easier let's say
service A calls service B. Periodically SocketExceptions are being
thrown in service A while calling Service B indicating that the
connection was reset. Looking at the stack trace I can see that Axis2
is in the BStub.fromOM method calling service B.

We didn't have this problem when in development and we have since gone
to production, making it harder to troubleshoot. Service A is writing
an exception trace to the Tomcat log, but Service B is not. I think
the issue is that the client proxy is not waiting long enough for the
response, but I'm shooting in the dark.

Since we are in production a code change is more difficult to deploy,
so changing configuration is preferred. I tried adding these
parameters in the axis.xml file under the http transportSender to set
the timeout to 10 minutes, but it didn't fix the problem:
        <parameter name="SO_TIMEOUT" locked="false">600000</parameter>
        <parameter name="CONNECTION_TIMEOUT" locked="false">600000</parameter>

It's my understanding that the transportSender settings should affect
the defaults for the call from service A to service B so I don't have
to configure the client in code, but it really isn't clear to me. If
you have any suggestions or can point me to some documentation this is
more complete than
http://ws.apache.org/axis2/1_4_1/http-transport.html I would
appreciate it!