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 fr...@centrum.cz on 2007/01/11 19:27:23 UTC
Any real solution to Client side SocketTimeout problem?
Hi,
I have just spent last two days searching over internet fo some solution to SocketTimeou exception. I have simple WS (based on Axis2/Tomcat 5.5). Client application uploads files to Server (so InOnly). When I send larger files (like 5MB and more) I get an exception:
org.apache.axis2.AxisFault: Read timed out; nested exception is:
java.net.SocketTimeoutException: Read timed out; nested exception is:
org.apache.axis2.AxisFault: Read timed out; nested exception is:
java.net.SocketTimeoutException: Read timed out
at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:225)
at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:670)
at org.apache.axis2.description.RobustOutOnlyAxisOperation$RobustOperationClient.send(RobustOutOnlyAxisOperation.java:72)
at org.apache.axis2.description.OutInAxisOperationClient.execute(OutInAxisOperation.java:295)
at org.apache.axis2.client.ServiceClient.sendRobust(ServiceClient.java:453)
at org.apache.axis2.client.ServiceClient.sendRobust(ServiceClient.java:380)
at org.apache.axis2.rpc.client.RPCServiceClient.invokeRobust(RPCServiceClient.java:131)
at cz.cca.test.ws.client.Client.main(Client.java:175)
Caused by: org.apache.axis2.AxisFault: Read timed out; nested exception is:
java.net.SocketTimeoutException: Read timed out
at org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:340)
at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:205)
... 7 more
Problem is, that data were successfully sent to server, where they are stored into database, but the client doesn´t receive any response in time. I tried to set
<parameter name="ConfigContextTimeoutInterval" locked="false">300</parameter>
<parameter name="SO_TIMEOUT" locked="false">1000000</parameter>
<parameter name="CONNECTION_TIMEOUT" locked="false">1000000</parameter>
<parameter name="requestTimeout" locked="false">1000000</parameter>
<parameter name="requestTcpNoDelay" locked="false">true</parameter>
In both xml files (one for the client and second one for the server). I even tried to change all possible timeouts in server.xml ( for Tomcat). But even if I lower or raise the values, it takes no effect.
There is main part of my Client:
ConfigurationContext configContext = ConfigurationContextFactory.createConfigurationContextFromFileSystem(".", System.getProperty("user.dir") + File.separator + "axis2_my.xml");
RPCServiceClient serviceClient = new RPCServiceClient(configContext, null);
Options options = serviceClient.getOptions();
// options.setProperty(HTTPConstants.SO_TIMEOUT,new Integer(15));
EndpointReference targetEPR = new EndpointReference("http://localhost:8080/myProject/MyWSService");
options.setTo(targetEPR);
QName opGetStock = new QName("http://MyService.ws.epo.ccc.cz", "upload");
..... some code ....
// logger.debug("SO_TIMEOUT "+options.getProperty("SO_TIMEOUT"));
Osoba podatel = createPodatel( params);
InfoObject infoObject = createInfoObject(params);
Object[] opSetStockArgs = new Object[] { souborText, podatel, infoObject };
System.out.println("Sending...");
serviceClient.invokeRobust(opGetStock, opSetStockArgs);
System.out.println("End");
}
Can anybody help?
thanks, frogg
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org
Re: Any real solution to Client side SocketTimeout problem?
Posted by Thilina Gunarathne <cs...@gmail.com>.
Please try options.setTimeOutInMilliSeconds(xxx); [1]
It was working for me..
Thilina
[1]http://ws.apache.org/axis2/1_1/api/org/apache/axis2/client/Options.html#setTimeOutInMilliSeconds(long)
On 1/12/07, frogg@centrum.cz <fr...@centrum.cz> wrote:
> Hi,
> I have just spent last two days searching over internet fo some solution to SocketTimeou exception. I have simple WS (based on Axis2/Tomcat 5.5). Client application uploads files to Server (so InOnly). When I send larger files (like 5MB and more) I get an exception:
>
> org.apache.axis2.AxisFault: Read timed out; nested exception is:
> java.net.SocketTimeoutException: Read timed out; nested exception is:
> org.apache.axis2.AxisFault: Read timed out; nested exception is:
> java.net.SocketTimeoutException: Read timed out
> at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:225)
> at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:670)
> at org.apache.axis2.description.RobustOutOnlyAxisOperation$RobustOperationClient.send(RobustOutOnlyAxisOperation.java:72)
> at org.apache.axis2.description.OutInAxisOperationClient.execute(OutInAxisOperation.java:295)
> at org.apache.axis2.client.ServiceClient.sendRobust(ServiceClient.java:453)
> at org.apache.axis2.client.ServiceClient.sendRobust(ServiceClient.java:380)
> at org.apache.axis2.rpc.client.RPCServiceClient.invokeRobust(RPCServiceClient.java:131)
> at cz.cca.test.ws.client.Client.main(Client.java:175)
> Caused by: org.apache.axis2.AxisFault: Read timed out; nested exception is:
> java.net.SocketTimeoutException: Read timed out
> at org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:340)
> at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:205)
> ... 7 more
>
> Problem is, that data were successfully sent to server, where they are stored into database, but the client doesn´t receive any response in time. I tried to set
>
> <parameter name="ConfigContextTimeoutInterval" locked="false">300</parameter>
> <parameter name="SO_TIMEOUT" locked="false">1000000</parameter>
> <parameter name="CONNECTION_TIMEOUT" locked="false">1000000</parameter>
> <parameter name="requestTimeout" locked="false">1000000</parameter>
> <parameter name="requestTcpNoDelay" locked="false">true</parameter>
>
> In both xml files (one for the client and second one for the server). I even tried to change all possible timeouts in server.xml ( for Tomcat). But even if I lower or raise the values, it takes no effect.
>
> There is main part of my Client:
>
> ConfigurationContext configContext = ConfigurationContextFactory.createConfigurationContextFromFileSystem(".", System.getProperty("user.dir") + File.separator + "axis2_my.xml");
> RPCServiceClient serviceClient = new RPCServiceClient(configContext, null);
>
> Options options = serviceClient.getOptions();
>
> // options.setProperty(HTTPConstants.SO_TIMEOUT,new Integer(15));
>
> EndpointReference targetEPR = new EndpointReference("http://localhost:8080/myProject/MyWSService");
> options.setTo(targetEPR);
>
>
> QName opGetStock = new QName("http://MyService.ws.epo.ccc.cz", "upload");
>
> ..... some code ....
>
> // logger.debug("SO_TIMEOUT "+options.getProperty("SO_TIMEOUT"));
>
>
>
> Osoba podatel = createPodatel( params);
> InfoObject infoObject = createInfoObject(params);
>
> Object[] opSetStockArgs = new Object[] { souborText, podatel, infoObject };
> System.out.println("Sending...");
> serviceClient.invokeRobust(opGetStock, opSetStockArgs);
> System.out.println("End");
>
> }
>
> Can anybody help?
>
> thanks, frogg
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-user-help@ws.apache.org
>
>
--
Thilina Gunarathne
WSO2, Inc.; http://www.wso2.com/
Home page: http://webservices.apache.org/~thilina/
Blog: http://thilinag.blogspot.com/
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org