Coldfusion使用webservice - > java.net.SocketTimeoutException:连接超时

时间:2011-10-22 10:38:38

标签: web-services coldfusion timeout connection axis

我正在使用Coldfusion 9上的Web服务获取属性数据并将结果保存到本地数据库。脚本每天通过调度程序执行一次。问题是有时会引发错误(见下文)。

基本上我得到一个ID列表(一个获取此列表的请求)并在结果上循环,每个ID(~150个请求)都有一个webservice请求。

遗憾的是,我无法在一个请求中获取所有属性的详细数据。

我尝试在JVM参数中设置-Dsun.net.client.defaultConnectTimeout=10000 - 结果相同......

"Error","jrpp-7225","10/22/11","03:00:32",,"Cannot perform web service invocation properties.
The fault returned when invoking the web service operation is:
AxisFault
    faultCode: {http://schemas.xmlsoap.org/soap/envelope/} Server.userException
    faultSubcode:
        faultString: java.net.SocketTimeoutException: connect timed out 
        faultActor:
            faultNode:
                faultDetail: {http://xml.apache.org/axis/}stackTrace:java.net.SocketTimeoutException: connect timed out
                at java.net.PlainSocketImpl.socketConnect(Native Method)
                at java.net.PlainSocketImpl.doConnect(Unknown Source)
                at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
                at java.net.PlainSocketImpl.connect(Unknown Source)
                at java.net.SocksSocketImpl.connect(Unknown Source)
                at java.net.Socket.connect(Unknown Source)
                at sun.reflect.GeneratedMethodAccessor191.invoke(Unknown Source)
                at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
                at java.lang.reflect.Method.invoke(Unknown Source)
                at org.apache.axis.components.net.DefaultSocketFactory.create(DefaultSocketFactory.java:15...

关于这个的任何想法?导致超时的原因是:一台速度慢的远程服务器?我们的服务器无法为新连接打开更多套接字?

1 个答案:

答案 0 :(得分:0)

您可能需要以较小批量执行Web服务请求。使用数据库或其他一些持久变量来存储150个ID的初始列表,然后在单独的cfschedule调用中执行1-50,51-100等。您可以在代码中更新计划作业的属性,以便在处理批处理时将间隔设置为61秒,然后在所有批处理完成后将其重置为原始值。