cancel
Showing results for 
Search instead for 
Did you mean: 

Timeout issues in SOAP2RFC sync scenario

xinjiang_li
Active Participant
0 Kudos

Hi gurus,

We are using XMLSPY to send sync web service, and the receiver R3 side is a synchronous RFC function. This works well when we retrieve 1000 data from this RFC function. But when we wanna get 50000 data, we got timeout error about 30 seconds later after we sent soap request in XMLSPY. In runtime workbench , we found error in sender CC "500 internal server error". In SXI_MONITOR, sometimes we found queue stopped and the status of message is "log version", and sometimes we found the error "ICM Connection to partner timed out after 60s".

Then we think we need to extend the value for ICM timeout related parameter.But we have tried changing http_timeout in SXMB_ADM and icm/server_port_0 and icm/keep_alive_timeout and icm/conn_timeout to a very high value. Still the problem exists (60s error).

When we adjust those parameters to a smaller value than 30seconds, XMLSPY gave error according to the parameter's time setting.

When we adjust thos parameters to a bigger value than 30 seconds, XMLSPY gave error always 30 seconds later.

We have also changed "xiadapter.inbound.timeout.default' to a bigger value, problem still existed.

Why 30s? Why 60s? BTW: our PI version is 7.11.

Any help will be appreciated. Thanks in advance.

Accepted Solutions (0)

Answers (3)

Answers (3)

Former Member
0 Kudos

You should check the timeout setting in ECC system, not the PI system. Normally, ECC system need time to process the request and get the data out of database with some further process on the data. And ECC system usually has a timeout of synchronous timeout setting of 60s. Also, it is not a good idea to retrieve 5000 record in one request.

In our practice, we send the request with a page number and  retrieve data 500 by 500, which may avoid long data processing in ECC system.

For a better solution, use asynchronous message. Send a request to the ECC system which triggers an data retrieving process. when ECC has all the data, it send out the data with another asynchronous response to the source system. But, you have to implement  this scenario with proxy protocol.

Shabarish_Nair
Active Contributor
0 Kudos

do note that the timeout can also happen due to unavaialble threads in the receiver system.

is SAP able to process 50000 calls in parallel?

xinjiang_li
Active Participant
0 Kudos

Hi Shabarish,

Thanks.

It's not parallel, but a single RFC function return 50 k data, so only one thread used in the receiver system, right? Plz advise. Thanks.

Shabarish_Nair
Active Contributor
0 Kudos

First of all, for such a  huge data RFC is not a good idea. Try to use a proxy or limit the amount of data. Also retrieval  of huge information in a  sync mode is not an ideal scenairo. I will have preferred this to be a async request and async response scenario.

baskar_gopalakrishnan2
Active Contributor
0 Kudos

I would say retrieving 50 k records in a single message is on the larger side.  Again the message volume based on the field size etc. Also it also depends on the performance of the OS Processor, memory etc. It is not completely based on the tuning parameters. Design the request to split the message into smaller sections. This way you dont really rely on SAP Performance to fetch 50k records on the server side, handling huge volume records of data at PI side. PI performs optimally well upto 5MB message size in PI 7.11

xinjiang_li
Active Participant
0 Kudos

Hi Baskar,

Thanks for your reply.

Every record has only 2 fields, so the message size will be OK. The functional guy prefer this sync query (full push) solution.

But I don't know why the sync query can't support duration longer than 60s.

Thanks.