Local Check

The local check checks whether any resources are available locally. It makes sense to carry out a detailed check only if local resources are available. If no local resources are available, the detailed check is not carried out.  The local check is always carried out in the work process.

(Only the whole number counts, numbers after the decimal point are ignored.)

The check proceeds as follows.

Initially, the maximum resources are set to 10,000: resources = 10000.

...

       1.      The communication channels are checked. Specifically, the system checks that there are still enough entries in the communication table (display using transaction SM51  ®  Go to  ®  Server  Information  ®  Communication Table).

...

                            a.      The following calculation is performed:
quota = (rdisp/max_comm_entries*rdisp/rfc_max_comm_entries) / 100 (only the whole number counts, numbers after the decimal point are ignored).
If the quota is 0, the reason TH_ARFC_RES_LOCAL_LOW_MAX_COMM_ENTRIES and the return value = 2 (NEVER_GET_RESOURCES) are set.

                            b.      The system determines the number of communication channels in use, sets the quota to this value, and checks whether the maximum quota has been exceeded.

                            c.      If the quota has been exceeded (count>quota), no resources are returned, and the reason TH_ARFC_RES_LOCAL_MAX_COMM_ENTRIES and the return value 0 are returned.

                            d.      Otherwise, the resources are calculated afresh (and may be reduced) (new_resources=min(quota – count, resources)), and the reason TH_ARFC_RES_OK and the return value 0 are returned.

       2.      Number of asynchronous messages.
The work process can temporarily store only a limited number of asynchronous messages. The profile parameter
rdisp/max_arq (default value=200) determines the exact number. This value cannot be dynamically changed.

...

                            a.      quota = max(rdisp/max_arq – act_size – 20, 0 ). Besides the currently occupied queue entries, a buffer of 20 is subtracted.

                            b.      count = asyn_rfcs (number of asynchronous RFCs).

                            c.      If the quota has been exceeded (count>quota), no resources are returned, and the reason TH_ARFC_RES_LOCAL_ARFCQUEUE and the return value 0 are returned.

                            d.      Otherwise, the resources are calculated afresh, and the reason TH_ARFC_RES_OK and the return value 0 are set.