Which error messages may occur if there are problems with RFC data transfer between Unicode and non-Unicode systems?
A short dump, exception or error message may occur as mentioned below:
Exception:
SYSTEM_FAILURE
Short dumps:
RFC_CONVERSION_STRUC
RFC_CONVERSION_TABLE
RFC_CONVERSION_FIELD
CALL_FUNCTION_OPEN_ERROR
Error messages:
"RFC connection to source system...is damaged ==> no metadata upload",
"Parameter ... cannot be converted from character set NNN to NNN", "codepage of receiver system cannot be determined. Receiver destination was: nn"(B1 999),
"The 0 line of the table could not be converted", or similar.
rscpLangCPListGetCP rscpLangCPListGetCPtry rscpLangCPListGetCPdst
rscpLCgetCtry readLClistA rscpLCgetC rscpLCgetCdst rscpConvert
rscpLCListGetSize rscpLCListGet
RSCP_RFCTRACE_SWITCH
It is also seen that Data transfer results in corrupted characters.
The trace files dev_wN and dev_rfcN contain error messages referring to
Functions starting with rscp* (see 'Other terms' below)
Client side RFC terminates with error message "connection closed (no data)".
For Unicode/non-Unicode RFC connections, a code page conversion is performed for language dependent data on the Unicode system
Problems usually arise when:
• No code page or an improper code page is allocated to language keys in data
• Language keys in data are corrupt or illegal
• Data are not convertible between Unicode and non-Unicode code page
How can I get this resolved?
Step1: Preparation
The below given information is vital for analyzing the source of the problem:
a) Kernel patch and Support package level of the systems involved.
b) Short dump (provide complete content!), if available.
c) Direction of RFC data transfer (who calls (client), who is called (server)?):
- Unicode (client) ' non-Unicode (server)
or
- non-Unicode (client) ' Unicode (server)
If the direction is not obvious one can review the short dump to detect: It normally includes a section "Information about program making the Remote Function Call (RFC)" pointing to the client system and the used destination.
d) When the client initiates the call, what RFC destination is used?
e) Error messages in developer trace (ST11):
Reproduce the data transfer and review the developer trace files on the Unicode side (use ST11). Usually the uppermost dev_wN trace contains the relevant information (if there is a short dump available, N correspond the number of the work process given under system environment information). Search for entries comprising of function names starting with 'rscpL*' or 'readL*. Usually the entries look like follows:
"ERROR => RFC ====> rscpLangCPListGetCP failed (16): lang: X
"ERROR => RFC ====> rscpLangCPListGetCPtry failed (16): lang: X"
"ERROR => RFC ====> rscpLangCPListGetCPdst failed (16): lang: X"
The value 'lang:' (here = X) indicates the 1-letter language key of the transferred data.
More comprehensive RFC trace information can be attained by activating the extended NUS-US RFC Trace via report RSCP_RFCTRACE_SWITCH: On the Unicode system, by switching on the extended trace using this report and reproduce the data transfer again. Later the developer trace (also on the Unicode system) will include more detailed information. 647495, Appendix C contains a description how to use report RSCP_RFCTRACE_SWITCH, as well as instances explaining the meaning of the resulting trace entries.
If report RSCP_RFCTRACE_SWITCH is not yet available in the Unicode system, make the report ZSAP_RSCP_RFCTRACE_SWITCH via the preliminary version attached to 647495.
f) What would be the language configuration of the non-Unicode system?
Run report RSCP0018 (default settings) on the non-Unicode system. The output list includes the required information in sections 'TCP0I', 'TCPDB' and 'LOCALES'