cancel
Showing results for 
Search instead for 
Did you mean: 

XI 3.1 Webservices API: Read time out during getDocumentInformation()

Former Member
0 Kudos

Hi,

my client is moving vom BO 6.5 to BO XI 3.1. The client uses BO to create mass reports for indivual subscribers in a batch mode fashion. We are currently evaluating the Webservices API, dealing with Desktop Intelligence reports.

I have implemented a load test prototype using the Webservices API with the help of the examples found here.

Retrieving a single report works fine, but when I try to put some load on the server and request reports with several parallel threads, I get the "Read timeout error" when calling getDocumentInformation(repID, null, actions, null, boRetrieveData). The actions array just contains the FillPrompts instance.

2008-12-05 11:05:07,448 INFO (test-5 ) [HTTPSender ] Unable to sendViaPost to url[http://bojv01:8080/dswsbobje/services/ReportEngine]

java.net.SocketTimeoutException: Read timed out

at java.net.SocketInputStream.socketRead0(Native Method)

at java.net.SocketInputStream.read(SocketInputStream.java:129)

at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)

at java.io.BufferedInputStream.read(BufferedInputStream.java:237)

at org.apache.commons.httpclient.HttpParser.readRawLine(HttpParser.java:77)

at org.apache.commons.httpclient.HttpParser.readLine(HttpParser.java:105)

at org.apache.commons.httpclient.HttpConnection.readLine(HttpConnection.java:1115)

at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpConnectionAdapter.readLine(MultiThreadedHttpConnectionManager.java:1373)

at org.apache.commons.httpclient.HttpMethodBase.readStatusLine(HttpMethodBase.java:1832)

at org.apache.commons.httpclient.HttpMethodBase.readResponse(HttpMethodBase.java:1590)

at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:995)

at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:397)

at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:170)

at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:396)

at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:346)

at org.apache.axis2.transport.http.AbstractHTTPSender.executeMethod(AbstractHTTPSender.java:520)

at org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:191)

at org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:77)

at org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:327)

at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:206)

at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:396)

at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:374)

at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:211)

at org.apache.axis2.client.OperationClient.execute(OperationClient.java:163)

at com.businessobjects.dsws.reportengine.ReportEngine.getDocumentInformation(Unknown Source)

BTW, the threads use different logins and in consequence different connections/sessions.

The timeout occurs after 30secs, so simple reports with no prompts are created without error. Increasing the timeout on the connection as suggested in other postings did not help.

I think the issue is related to Axis2. I don't know how to set the timeout on the Axis client via the BO API. Trying to recreate the client API from the WSDL did not work. Is there any example how to do this correctly? Having the source of the Axis client, one would have the chance to set the timeout on the client programmatically ...

Any help would be greatly appreciated,

con

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

I found a workaround for the issue by patching and compiling the Axis2 kernel library. You need to download it form Apache, install Maven 2.0.7, set the default timeout in .../client/Options.java to a value that suits your needs (for me: 20min), and compile the whole thing using mvn clean install.

But this is obviously not the solution one wants. So, is there anybody with a REAL answer to the problem?

Regards,

con