cancel
Showing results for 
Search instead for 
Did you mean: 

HTTP Request Post Method holds 5000 entries

chinna_babu2
Active Participant
0 Kudos
136

Hi Experts,

We found a weird change in our BSP Application after we upgraded our ERP ECC6 Enh3 to Enh6.

In our BSP page html input controls gets generated at runtime and data gets filled in. When I submit the form (method = Post), I could see complete form data is not submitted to server.

When I debug the code I found some thing strange that request->get_form_fields ( changing fields = it_filds ) could hold only 5000 rows/records, another things that it give an exception - CX_SY_STRG_PAR_VAL but control passes to the next statement.

I never seen this issue before upgrade. We have compared all the http parameters in server with a backup server, all are same.

Can anyone please advise whether this is a known issue happens after the upgrade and any Notes available for the same.

Regards,

Murthy


Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Can you point to the location of the 5000 record limitation? I can't locate such limitation in the code. Could it be that the 5000th record is a duplicate with one of the previous 4999 records? What is your SAP_BASIS level? What is your kernel version and patch level? There has been some changes in the XSS processing of form fields in recent SAP_BASIS levels.

chinna_babu2
Active Participant
0 Kudos

Hi

I thought the same before, but to conclude its not because of duplicate records I wrote the below code to generated html input controls.

<%

     DATA     :     ithttp type tihttpnvp.

     request->get_form_fields( changing fields = ithttp ).

     " After the page submit with button click, I could see only 5000 records (name and value pairs) in ithttp table, which it supposed to have 6000 records.

   " Below while loop generates 6000 html input controls

     i = 6000.

     while i > 0.

%>

     <input type="text" id="fld_<%=i%>" name="fld_<%=i%>" value="val_<%=i%>">

<%

     endwhile.

%>

Below are the Component Information in our system.

SAP_BASIS    731    0006    SAPKB73106

SAP_ABA       731     0006    SAPKA73106

SAP_AP         700     0028    SAPKNA7028

WEBCUIF       731     0006    SAPK-73106INWEBCUIF

Kernel Release - 720

Kernel Patch Number - 401.

Please suggest whether to handle form data in other means from this upgrade.

Regards,

Murthy

Former Member
0 Kudos

Can you place a break-point inside GET_FORM_FIELDS and see what SYSTEM-CALL returns, especially is there any error in M_LAST_ERROR? You might also want to increase the ICM trace, reproduce the error and see if there are any errors in the trace.

Do you really need to pass over 5000 name=value pairs from the client? I have never needed more than couple hundred. Can the application be redesigned, eg. can it be stateful? Could you use client-side or server-side cookies?

chinna_babu2
Active Participant
0 Kudos

Hi,

I can't place a break-point inside, since this is in interface. Unfortunately, I can't redesign the code as the design is necessary.

I want to understand what changes has effected causing this error.

Regards,

Murthy

Former Member
0 Kudos

The implementing class is CL_HTTP_ENTITY, place the break-point there. Also see if ICM tracing helps.

chinna_babu2
Active Participant
0 Kudos

Thanks Samuli,

I did the debug at GET_FORM_FIELDS

system-call ict
     did
       ihttp_scid_get_form_fields
     parameters
       m_c_msg                            " > c handle
       fields                             " > form fields table
       m_last_error.                      " < return code

Here is the result.

M_LAST_ERROR                                  0
FIELDS                                  [5000x2(16)]Standard Table
M_C_MSG                                  D0001100DF070000

I would get the basis to increase the trace level and will check if any errors related to the same.

Regards,

Murthy

chinna_babu2
Active Participant
0 Kudos

Hi

I have increased the trace level to 3 and run the program to see any errors related to the issue.

I could see only one error, but not sure whether anything to do with the issue.

*** ERRIR => NiBufIConnect: non-buffered connect pending after 5000ms [nibuf.cpp 4669]

Former Member
0 Kudos

It doesn't sound related. I guess the problem then really is with the SYSTEM-CALL not returning more than 5000 entries. I suppose you should create a customer message to SAP support.

Former Member
0 Kudos

I think I found the solution to our problem, take a look at SAP note 1786552:

... in order to prevent denial of service attacks form fields are truncated after 5000 entries...increase the profil parameter "ict/max_form_fields" to the desired value. Transactions RZ10 or RZ11

br Georg

chinna_babu2
Active Participant
0 Kudos

Hi Georg,

I had a look into this note before, since this parameter doesn't exists in system our Basis afraid to create this parameter.

I have raised an OSS message, waiting for SAP to come back on this issue.

Please let me know whether changing this parameter has worked for you or not.

Regards,

Murthy

Former Member
0 Kudos

Hi Murthy,

it did work! You only need to take care to restart the server (not only icm) and everything works like a charm.

And regarding the parameter not existing in the system, was the same for me at the client I'm doing the development for. The basis there simply added the parameter and restartet the whole server.

br Georg

Answers (1)

Answers (1)

Former Member
0 Kudos

Hi,

I'd also be very interested in an answer to this since I'm facing the same problem.

br Georg