Web Service Call Error

So I’ve been posting a few questions on here about XML and Web Services and now that I’ve created this beast, It seems to be error-ing out in the weirdest way possible.

The dataflow is looped over in batches of 500, this way we can break up out chunk being sent into the web service.

I was curious if anyone had any solutions or answers on the below error:

Error calling function <Update>: <Web Services client unable to invoke a Web Services server. Error: ; nested exception is: 
                                                     	java.net.SocketTimeoutException: Read timed out>.

The above error is repeated quite a lot.

Then we get the following error:

(11.7) 02-04-10 22:35:03 (E) (5940:4156) RUN-058110: |Dataflow DF_iModules_PUSH|Transform Q_CallWS-Function22
                                                     Error calling function <Update>: <Web Services client unable to invoke a Web Services server. Error: ; nested exception is: 
                                                     	org.xml.sax.SAXParseException: The value for attribute "Name" must end with the matching quote character.>.
 (11.7) 02-05-10 01:16:47 (E) (3396:3512) DBS-070300: SQL submitted to Oracle Server <INFSDEVL> resulted in error <ORA-02396: exceeded maximum idle time, please connect again
                                                     >. The SQL submitted is <select OBJECT_KEY, MACHINE, SERVER, TYPE, SERVICE, CONTAINER, INST_MACHINE, INST_SERVER,
                                                     INST_SERVER_PORT, INST_REPO, INST_EXEC, INST_EXEC_KEY, RUN_SEQ, START_TIME, END_TIME, EXECUTION_TIME, STATUS, HAS_ERROR,
                                                     IGNORE_ERROR,  NORM_MACHINE, NORM_SERVER, NORM_TYPE, NORM_SERVICE, NORM_CONTAINER, NORM_INST_MACHINE,  NORM_INST_SERVER,
                                                     NORM_INST_REPO, NORM_INST_EXEC  from AL_HISTORY where OBJECT_KEY = 1282>.

Which appears to be the job going back to the repository but the repository has “hung up” on the job.

Any thoughts? Thank you!


nhohman (BOB member since 2008-11-19)

since you are submitting a batch of 500 records its taking more than 1 minute to complete the web service operation hence you get timeout error, what is the exact version of 11.7 ? check if you see a option in Adapter Datastore to increase this timeout value, click on Advanced button in datastore editor

the following error
The value for attribute “Name” must end with the matching quote character

could be something to do with the source data, does name value has quotes as part of data itself ?


manoj_d (BOB member since 2009-01-02)

We are using 11.7.3.6.

The Adapter Retry Interval is set to 30000. Other than that, I don’t see anything about configuring the time out…
I’ll look through the NAME field and see if there are any quotes.

Thanks.


nhohman (BOB member since 2008-11-19)

the retry interval is for Adapter instance startup not for the call that Adapter makes to the web server

I don’t think that option was there in 11.7.3.6, it was added in later FP, I am attaching a screen shot from 11.7.3.10, which shows the option

you may have to go for the latest FP, or reduce the batch size, since in earlier version the value was hardcoded into Adapter, there is no way to change that
WebserviceDS.zip (19.0 KB)


manoj_d (BOB member since 2009-01-02)

Any idea where I can download this fixpack? I hate navigating the SAP site…

Thanks!


nhohman (BOB member since 2008-11-19)

you have to download it from SAP Service Market Place, go the BusinessObjects Downloads, and select the Support Software

navigate to the BOBJ DATA INTEGRATOR XI R2 ACC
SAP BusinessObjects portfolio
" SBOP DATA INTEGRATOR"
BOBJ DATA INTEGRATOR XI R2 ACC

take the latest FP 11.7.3.12 for your OS


manoj_d (BOB member since 2009-01-02)

By chance was this timeout option added after 12.1.1.4? I’m running into timeouts. Is there something in the DSConfig.txt file that could be used instead?


eganjp :us: (BOB member since 2007-09-12)

you are using Webservice Datastore or Adapter Datastore ?


manoj_d (BOB member since 2009-01-02)

The Datastore type is “Web Service”. Which means that the timeout that you refer to above doesn’t apply. Only the adapter Datastore has that option, correct?

I had searched for postings that had an error that matched mine and this thread was close, so I took a chance. Now that I look at it I think my issue is a bit different. Here is the error that I get:


eganjp :us: (BOB member since 2007-09-12)

run teh job from command line using al_engine with -D -np option, this will create a axis2_log.txt file in %LINK_DIR%/log folder, attach that log file to the post


manoj_d (BOB member since 2009-01-02)

I have not been successful at getting jobs to run using al_engine - I couldn’t figure out the syntax. That’s why I switched over to web services.


eganjp :us: (BOB member since 2007-09-12)

go to job server machine
open a command window, cd to %LINK_DIR%/bin
run the following command
al_engine -U -P -N -S -s -D -np

you can get the values of -N, -S, -U, -P from the Designer Login in case of SQL Server you will have to pass the database name using -Q


manoj_d (BOB member since 2009-01-02)

I don’t have access to the production repository to run the command line. I can run jobs from the management console but since I don’t know the production repository login/password I don’t think the command line execution of the job is going to work. Also, the bad response from the server is unpredictable.

I think I’ve worked around the timeouts. The timeout produces an error to the log but does not raise an exception. I don’t understand this. Why write something to the log if an exception isn’t raised. But I digress.

The call to the web server to check the status of a job using Get_BatchJob_Status is returning NULL values. Once I figured that out I simply added a check for NULL values to my code and when I see those I know that the server didn’t tell me anything positive or negative about my job. It simply doesn’t know. So I set up a loop to allow the status check to occur five more times before giving up for good.

The interesting thing is that all my controller jobs (four running in parallel) get NULL values when making the Get_BatchJob_Status call. With the added code they all continue working just fine.


eganjp :us: (BOB member since 2007-09-12)