Skip to Content
0

Code gets stuck for 30 seconds at CALL METHOD my_httpclient->receive - HRFORMS - Pay Statement

Sep 27, 2017 at 03:51 PM

144

avatar image
Former Member

Hey,

I am executing a HRFORM (pay statement - Adobe). The form took too long to load so I debugged it and found that it gets stuck for about 30 second at :

Class: CL_FP_ADS_OBJECT

Method: RECEIVE_REPLY

Code:

CALL METHOD my_httpclient->receive
EXCEPTIONS http_communication_failure = 1
http_invalid_state = 2
http_processing_failed = 3.

http-commnication-1.png

After the 30 second wait, it gets into an empty implementation of

Method if_abap_runtime~get_runtime by kernel module ab_kmGetRuntimeHR.

http-commnication-2.png

And from there on it gets executed smoothly without any issues. The output is perfect and there are no exceptions thrown or any dumps.

The only problem is that it takes more than 30 seconds for the form to appear. What could be the cause for this?

Any help would be highly appreciated.

Kriba

10 |10000 characters needed characters left characters exceeded
* Please Login or Register to Answer, Follow or Comment.

1 Answer

Best Answer
Sandra Rossi Sep 27, 2017 at 06:21 PM
1

I guess it's more a "problem" at ADS side (Adobe Document Services) rather than SAP's application server. You should ask the administrator to trace the HTTP at ADS side to make sure it spends 30 seconds to generate the form. If so, then it's not an ABAP question. If the administrator is unable to find out the cause of the issue, then you could check SAP notes to know whether there are some recommendations for the performance, and also the support at Adobe.

Show 6 Share
10 |10000 characters needed characters left characters exceeded
Former Member

Now here is the kicker! This is only happening with this Form and not with the other forms. So can it be something that is form specific? Now what we did was to remove all scripting from the form since scripting makes the form heavy and tested it. Same result. We activated form caching from form properties. Still the same. We are baffled!

The code gets stuck here for about 30 seconds - myhttpsclient->recieve

http-commnication-1.png

And then it moves to an empty implementation.

http-commnication-2.png

0

I think you didn't understand my answer, otherwise you wouldn't have pointed out again the HTTP receive. And no, it's not an empty method, it's a kernel method, it does HTTP receive, it means that SAP has previously sent an HTTP request (to ADS server) and is waiting for the answer (receive). ADS (not SAP) is generating the form for 30 seconds.

Again, you should check SAP notes to know whether there are some recommendations for the performance (ADS Trace, 2444027 - Hanging process SAPLHTTP_RUNTIME after ADS call, etc.), and also the support at Adobe.

0
Former Member

Thank you for your suggestion. I have asked my BASIS team to run a HTTP trace from the ADS side. I will look into the SAP Note as well and get back to you. Thank you once again.

0

As checked it's definititely some custom logic which is taking time. Couple of points to check, run the program FP_TEST_00 which generates a sample PDF output to check ADS configuration and also check the request and response headers for the HTTP request for your case when its taking 30 secs.

Verify config prerequisites here

https://help.sap.com/saphelp_nw74/helpdata/en/4b/94e945ea576e82e10000000a421937/frameset.htm

0
Former Member
Ankit Maskara

Hey Ankit,

I have checked FP_TEST_00, FP_PDF_TEST_00, FP_CHECK_DESTINATION_SERVICE and even FP_CHECK_HTTP_DATA_TRANSFER. All seem to be working fine. In fact all other Adobe forms seem to be working fine. But then, the custom logic doesn't seem to be a problem here, the class methods in the interface execute perfectly. And infact we have deleted all scripting to make it light and enabled server caching as well.

The Note which Sandra shared seem to be incomplete and cannot be implemented. So now I am in the process of checking with the basis for a https trace.

You mentioned checking request and response method. Is there a specific way of testing that or you meant in debugging?

Kriba

0

Yes please debug and check, usually in case of errors a more descriptive message will come in the HTTP header of the response.

0