0

面对一个奇怪的问题,我们使用 JAPI 连接(它的 http 连接并且没有 jdbc)从 oracle 数据库连接到 Oracle Essbase Server。

我们能够执行程序直到 300 秒,然后我们得到以下错误:-

invokeMethod localException11111 ::: java.net.SocketTimeoutException: recv() timed out 
Resource temporarily unavailable 
java.net.SocketTimeoutException: recv() timed out 
Resource temporarily unavailable 
at java.net.SocketInputStream.socketRead0(Native Method) 
at java.net.SocketInputStream.read(SocketInputStream.java:128) 
at java.io.BufferedInputStream.fill(BufferedInputStream.java:218) 
at java.io.BufferedInputStream.read1(BufferedInputStream.java:258) 
at java.io.BufferedInputStream.read(BufferedInputStream.java:317) 
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:740) 
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:683) 
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1280) 
at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:379) 
at com.essbase.api.session.EssOrbPluginHttp.invokeMethod(EssOrbPluginHttp.java:139) 
at com.essbase.api.session.EssOrbPluginHttp.invokeMethod(EssOrbPluginHttp.java:109) 
at com.essbase.api.session.EssOrbPlugin.essMainCalc(Unknown Source) 
at com.essbase.api.datasource.EssCube.calcWithRunTimeSubVars(Unknown Source) 
at com.essbase.api.datasource.EssCube.calculate(Unknown Source) 
at com.ing.mass.essconnect.Database.calculate(Database.java:314) 
at com.ing.mass.essconnect.Database.calculate(Database.java:300) 
at com.ing.mass.services.Cubes.calculateNow(Cubes.java:1704) 
at com.ing.mass.services.Cubes.calculate(Cubes.java:1510) 
invokeMethod finally ::: 
TESTING .....com.essbase.api.base.EssException: Cannot connect to Provider Server. java.net.SocketTimeoutException: recv() timed out 
Resource temporarily unavailable 
at com.essbase.api.session.EssOrbPl uginHttp.invokeMethod(EssOrbPluginHttp.java:244) 
at com.essbase.api.session.EssOrbPluginHttp.invokeMethod(EssOrbPluginHttp.java:109) 
at com.essbase.api.session.EssOrbPlugin.essMainCalc(Unknown Source) 
at com.essbase.api.datasource.EssCube.calcWithRunTimeSubVars(Unknown Source) 
at com.essbase.api.datasource.EssCube.calculate(Unknown Source) 
at com.ing.mass.essconnect.Database.calculate(Database.java:314) 
at com.ing.mass.essconnect.Database.calculate(Database.java:300) 
at com.ing.mass.services.Cubes.calculateNow(Cubes.java:1704) 
at com.ing.mass.services.Cubes.calculate(Cubes.java:1510) 
Calculation completed 
Calculation completed 111 
Cubes calculateNow method finallly

为了解决这个问题,我们已经花了一周的时间来解决这个问题,但到目前为止还没有运气。

期待收到您的专家建议。

在此先感谢 Pankaj

4

1 回答 1

0

此问题现已解决 - 问题出在新的 java 代码上,需要添加像 sun.net.client.defaultReadTimeout 这样的超时参数(以毫秒为单位设置)

于 2018-10-26T07:18:53.683 回答