cancel
Showing results for 
Search instead for 
Did you mean: 

bad response time for aRFC

Former Member
0 Kudos

On our R/3 ECC6 production system ,we have one aRFC call by external system,there are 200000 times per day.
and the response time for the RFC call is 35ms ,Some times its response time(commit time) are much longer and up to 2 seconds.
There is very simple code for the RFC as shown below
    ......
    insert ztable from table lt_internal_table.
    commit work
    call function 'function_name'
    starting new task 'N'.
    tables
       it_tab = lt_internal_table.
  

Regards,

ShiChunQing

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

Dear Randorlf ,

  Now i can determine that  statement "commit work"   have a high cost  some times.

  I write a simple report as show below, 

  One high cost will occurs per several minutes.

 

________________________________

  report ztest.

  ...............

  do  10 times.

     ............  

    GET RUN TIME FIELD t1.

    INSERT ytest_table FROM TABLE lt_tab.

    GET RUN TIME FIELD t2.

    t1 = t2 - t1.

    WRITE:/ 'insert:',t1,sy-uzeit.

    COMMIT WORK.

    GET RUN TIME FIELD t3.

    t2 = t3 - t2.

    WRITE: 'commit:',t2,sy-uzeit.

enddo.

_________________________________________

Run results:

_________________________________________________

insert:        879  16:23:02 commit:      1,713  16:23:02

insert:      1,607  16:23:05 commit:      4,434  16:23:05

insert:       1,265  16:23:08 commit:      3,790  16:23:08

insert:        648  16:23:11 commit:      1,195  16:23:11

insert:        659  16:23:14 commit:    390,208  16:23:15

insert:        640  16:23:18 commit:      1,032  16:23:18

__________________________________________________

Best regards

shichunqing

former_member184455
Active Participant
0 Kudos

Hi ShiChunQing,

Why do you complain about the bad response time - is somebody waiting on the return of the aRFC?

How many entries does LT_INTERNAL_TABLE have in a single call?

Is it possible to combine data of several calls to reduce the number of aRFCs and commits?

Are you sure that response time is determined by commit time?

Best regards, Randolf

Former Member
0 Kudos

Randorlf ,

Thanks your answer.

1:   System  always give  a warning message to DBA , if  the response time  is too longer than average time per RFC call,

2: Only one  entrie for  internal table LT_INTERNAL_TABLE.

3:  yes,  Commit time take too many times  ( analysis from STAD).



Best regards, Shichunqing



former_member184455
Active Participant
0 Kudos

Hi Shichunqing,

You should not call a RFC to insert and commit a single line. The additional costs for the RFC are higher than the costs of the insert. Also, RFC calls with little data cannot make use of data compression during transfer. Instead bundle many lines (~100) into one call and do one commit for them. Of course, error handling will become a little bit more complicated then, but you save resources like network and database.

Best Regards, Randolf