Using the registering feature of an R/3 System Release 3.0C onwards, an RFC server
program can issue RfcAccept to register itself at an SAP gateway. After that, it can wait
for any RFC request by issueing RfcGetName, RfcDispatch or RfcListen.
RfcGetName and RfcDispatch are blocking calls. The server has to wait until any RFC request is incoming.
In R/3 Release 3.0C and 3.0D, RfcListen is also a blocking call when using registering mode.
From R/3 Release 3.0E onwards, RfcListen is a non-blocking call. However, if you do not issue the RfcListen call quick enough, the SAP gateway will return an error to the RFC client, because no server program was available at that time.
Instead of RfcListen, you can use this new call RfcWaitForRequest with a time interval in seconds as a parameter to define how long you want to wait for RFC requests.
This function is defined in SAPRFC.H.
This call is available with the RFC library from R/3 Release 3.0E onwards.
For more details, see saprfc.h, srfcserv.c or saprfc.hlp in the delivered RFC SDK.