开发者

The sockettimeoutexception is frustrating on Google App engine(JAVA). Workaround needed

开发者 https://www.devze.com 2023-04-01 07:20 出处:网络
I am connecting to a 3rd party server on the following wsdl http://webservices.ticketvala.com/axis2/services/WSTicketvala?wsdl

I am connecting to a 3rd party server on the following wsdl http://webservices.ticketvala.com/axis2/services/WSTicketvala?wsdl

I am using JAX-WS to generate client code and call relevent method on 3rd party server. 3rd party server may take time between 15-25 seconds to send response. It开发者_开发技巧 works fine on tomcat.

Now when i deploy this to GAE 1.5.3, often i get ScocketTimeoutException in less than 10 seconds. Sometimes it is succesfull taking even 20 seconds. I want to know why it fails many times. And any workaround to increase this response deadline time / to avoid this ScoketTimeOutException forever.

Similarly,

I have another RESTfull service at http://ticketgoose.com/bookbustickets/TGWSStationNameResponseAction.do?" + "event=getStationDetails&password=123456&userId=ctshubws

I am connecting it through java.net.URL and many times i get TimeoutException. How can i raise this timeout limit to more than 30 seconds?

Thanks Deepak


No user-initiated request can take more than 30 seconds to complete in Google App Engine: http://code.google.com/intl/en/appengine/docs/java/runtime.html#The_Request_Timer

And a HTTP request to a external URL in a user-initiated request can't take more than 10 seconds to complete: http://code.google.com/intl/en/appengine/docs/java/urlfetch/overview.html#Requests

If you need to do the overall work in more than 30 seconds and can do it in background (not needing to return the response directly via HTTP), use Task Queues. Note that the simplest way to do background work with tasks is to use the DeferredTask. And the best part: HTTP requests to external URLs on tasks can take up to 10 minutes to complete.

0

精彩评论

暂无评论...
验证码 换一张
取 消