I have created an external program that extracts a very large table from SAP 7.0 through RFC using the NetWeaver SDK APIs. This program repeatedly calls an RFC-enabled function written in ABAP. On the first
call the function does "OPEN CURSOR WITH HOLD" and a "FETCH". On each subsequent call the function does a "FETCH". The cursor is declared as "STATICS".
When I run the program I am getting the following error:
DBIF_RSQL_INVALID_CURSOR: Invalid interruption of a database selection.
This error manifests itself in two ways.
1) When time interval between RfcInvoke() calls is about 0.5 sec., it takes 30 sec. to 90 sec. for the error to come out.
2) When time interval between RfcInvoke() calls is about 0.2 sec. or lower, it takes 8 min. to 17 min. for the error to come out, but sometimes the program completes successfully in 25 min.
1) What is causing this error?
2) If it has something to do with SAP configuration, how it be modified to extract this particular table.
3) Is it possible in general to extract a table of any size (on the magnitude of gigabytes) using such an approach, that is, a "pull".
4) If the answer is negative, what approach do you think is appropriate.
Any help will be appreciated.