从不同位置访问相同的OBIEE Web服务时出现超时错误

时间:2012-02-21 10:23:32

标签: timeout axis2 webservice-client obiee

我们有一个使用OBIEE webservices来获取数据的应用程序。我们的应用程序开发团队位于两个不同的位置,即SanJose(CA)和Bangalore(Ind)。 当我们在SanJose建立当地环境时,每个人都可以正常工作,而且根本没有问题。

但是当我们尝试在班加罗尔设置本地开发环境时,我们正在获得读取超时异常。我们认为这可能是防火墙限制问题,但没有这样的限制(通过网络团队确认)

我们正在使用Tomcat6.0和java6。解决这个问题对我们来说非常紧迫,以满足我们的最后期限。请帮助向我们展示一种我们可以遵循并解决此问题的方法。

异常堆栈跟踪如下:

[INFO] Unable to sendViaPost to url[http://<SOME-OBIEE-SERVER>/analytics/saw.dll?SoapImpl=webCatalogService]
java.net.SocketTimeoutException: Read timed out
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.read(Unknown Source)
    at java.io.BufferedInputStream.fill(Unknown Source)
    at java.io.BufferedInputStream.read(Unknown Source)
    at org.apache.commons.httpclient.HttpParser.readRawLine(HttpParser.java:78)
    at org.apache.commons.httpclient.HttpParser.readLine(HttpParser.java:106)

1 个答案:

答案 0 :(得分:1)

“读取超时”表示客户端连接到远程服务器并发送请求。但是,在超时到期之前,客户端没有收到服务器的响应。尽管可以更改超时,但Axis2客户端使用默认超时30秒。

运行Web服务的人员应该能够判断他们是否可以看到客户端连接以及服务响应客户端请求所需的时间。如果Web服务响应缓慢,那么您可能只需要增加客户端超时。或者,如果服务迅速响应请求,那么我会寻找类似防火墙阻止返回流量的东西。快速测试可能是通过Web浏览器访问Web服务URL,或者向服务发送故意错误的请求,看看是否收到错误。