Platinum Partner
architects,enterprise-integration,web services,integration,tips and tricks,apache axis2

How to Configure Timeout Duration on the Client Side for Axis2 Web Services

Axis2 uses CommonsHTTPTransportSender by default, which is based on commons-httpclient-3.1. At transport level, there’re two types of timeouts that can be set:

1. Socket Timeout
2. Connection Timeout

Here’s how you can configure the above ones:

Way #1: Configuring timeouts in axis2.xml

Socket Timeout
<parameter name=”SO_TIMEOUT”>some_integer_value</parameter>

Connection timeout
<parameter name=”CONNECTION_TIMEOUT”>some_integer_value</parameter>

Way #2: Configuring timeouts in code

    …
    Options options = new Options();
    options.setProperty(HTTPConstants.SO_TIMEOUT, new Integer(timeOutInMilliSeconds));
    options.setProperty(HTTPConstants.CONNECTION_TIMEOUT, new Integer(timeOutInMilliSeconds));

    // or
    options.setTimeOutInMilliSeconds(timeOutInMilliSeconds);
    …

Real-life code: How to set timeout for a Axis2 Stub?

long timeout = 2 * 60 * 1000; // Two minutes
Stub stub = new TestStub();
stub._getServiceClient().getOptions().setTimeOutInMilliSeconds(soTimeout);
 
//or
 
long timeout = 2 * 60 * 1000; // Two minutes
Stub stub = new TestStub();
stub._getServiceClient().getOptions().setProperty(
                 HTTPConstants.SO_TIMEOUT, new Integer(timeOutInMilliSeconds));
stub._getServiceClient().getOptions().setProperty(
                 HTTPConstants.CONNECTION_TIMEOUT, new Integer(timeOutInMilliSeconds));



Published at DZone with permission of {{ articles[0].authors[0].realName }}, DZone MVB. (source)

Opinions expressed by DZone contributors are their own.

{{ tag }}, {{tag}},

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}
{{ parent.authors[0].realName || parent.author}}

{{ parent.authors[0].tagline || parent.tagline }}

{{ parent.views }} ViewsClicks
Tweet

{{parent.nComments}}