RSCLICOP terminates with DBIF_RSQL_NO_MEMORY. The table which it wants to copy is a logical cluster table (e.g. BSEG or CDHDR).
The error is reported from dbrclu2.c line 36?? (in the C-coding in the function c2_write_to_db()).
If an ABAP short dump can be generated, it shows the following code selection:
LSCCRF01, line 38970
038910 SELECT * PACKAGE SIZE 512 INTO TABLE IS FROM (TABLE)
038920 CLIENT SPECIFIED WHERE (CTAB).
038930 IF SY-SUBRC = 0.
038940 READ TABLE IS INDEX 1.
038950 DEL_ENTRY = SY-TFILL + DEL_ENTRY.
038960 * delete the table
> DELETE (TABLE) FROM TABLE IS.
038980 IF SY-SUBRC <> 0.
038990 PERFORM LOG_MSG
039000 USING 2 '143'
039010 SY-MANDT 'del' TABLE SPACE.
039020 ENDIF.
039030 ENDIF.
039040 ENDSELECT.
Thus packages of 512 (BSEG) keys are always collected and then deleted.
(2)
The termination occurs when inserting the new records.
The physical cluster table is not defined in the Dictionary as client-
dependent (for example, in EDIDOC the client field MANDT was in
the Dictionary MANDT CHAR 3 instead of MANDT CLNT 3).
Client copy, CDCLS, CDHDR, RFBLG, BSEG, EDIDOC, EDIDD, cluster,
cluster table
The cause of the termination is the programming of the cluster
interface.
An internal storage area which is required if records of a cluster
table are written to the database while reading cursor (selections) are
still open for this cluster table has to be extended.
However, the storage requirements cannot be fulfilled.
(1)
Corrected in release 3.0C
Workarounds:
Increase the SHORT storage area of the R/3 system for the duration
of the client copy (profile parameter "ztta/short_area")
or
change LSCCRF01 so that 20 is used instead of 512 as the package size
(has a negative influence on the total duration of the copy).
(2)
Define the physical cluster table in the Dictionary as client-dependent.
No comments:
Post a Comment