10-11-2006 10:04 PM
Has anyone ever had a performance problem with calling FM BUPA_ADDRESS_ADD?
We have a custom program that calls this FM and then executes a COMMIT AND WAIT. The transaction time-outs in the foreground. The time-out limit is set at 30 minutes. Below is the first page of the ABAP dump.
Any insights will be greatly appreciated. Thanks.
Runtime errors TIME_OUT
Occurred on 09/20/2006 at 10:35:04
------------------------------------------------------------------------------------------
Time limit exceeded.
--------------
What happened?
--------------
The program "SAPLBUPA_MWX_BDOC_OUTBOUND" has exceeded the maximum permitted
runtime without
interruption, and has therefore been terminated.
----------------
What can you do?
----------------
Print out the error message (using the "Print" function)
and make a note of the actions and input that caused the
error.
To resolve the problem, contact your SAP system administrator.
You can use transaction ST22 (ABAP Dump Analysis) to view and administer
termination messages, especially those beyond their normal deletion
date.
is especially useful if you want to keep a particular message.
--------------
Error analysis
--------------
After a certain length of time, the program is terminated. In the case
of a work area, this means that
- endless loops (DO, WHILE, ...),
- database accesses producing an excessively large result set,
- database accesses without a suitable index (full table scan)
do not block the processing for too long.
The system profile "rdisp/max_wprun_time" contains the maximum runtime of a
program. The
current setting is 600 seconds. Once this time limit has been exceeded,
the system tries to terminate any SQL statements that are currently
being executed and tells the ABAP processor to terminate the current
program. Then it waits for a maximum of 60 seconds. If the program is
still active, the work process is restarted.
successfully processed, the system gives it another 600 seconds.
Hence the maximum runtime of a program is at least twice the value of
the system profile parameter "rdisp/max_wprun_time".
------------------------
How to correct the error
------------------------
You should usually execute long-running programs as batch jobs.
If this is not possible, increase the system profile parameter
"rdisp/max_wprun_time".
Depending on the cause of the error, you may have to take one of the
following measures:
- Endless loop: Correct program;
- Dataset resulting from database access is too large:
Instead of "SELECT * ... ENDSELECT", use "SELECT * INTO internal table
(for example);
- Database has an unsuitable index: Check index generation.
You may able to find an interim solution to the problem
in the SAP note system. If you have access to the note system yourself,
use the following search criteria:
------------------------------------------------------------------------
"TIME_OUT" C
"SAPLBUPA_MWX_BDOC_OUTBOUND" or "LBUPA_MWX_BDOC_OUTBOUNDF30"
"GET_ADDRESS_STRUCT"
------------------------------------------------------------------------
----------------------------------------------------------------
If you cannot solve the problem yourself, please send the
following documents to SAP:
1. A hard copy print describing the problem.
To obtain this, select the "Print" function on the current screen.
-
2. A suitable hardcopy prinout of the system log.
To obtain this, call the system log with Transaction SM21
and select the "Print" function to print out the relevant
part.
3. If the programs are your own programs or modified SAP programs,
supply the source code.
To do this, you can either use the "PRINT" command in the editor or
print the programs using the report RSINCL00.
4. Details regarding the conditions under which the error occurred
or which actions and input led to the error.
------------------
System environment
------------------
SAP Release.............. "620"
Application server....... "tlsrv100"
Network address.......... "153.7.7.100"
Operating system......... "AIX"
Release.................. "5.2"
Hardware type............ "0009ACDF4C00"
Character length......... 8 Bits
Pointer length........... 64 Bits
Work process number...... 0
Short dump setting....... "full"
Database server.......... "tlsrv123"
Database type............ "DB6"
Database name............ "EQA"
Database owner........... "SAPR3"
Character set............ "en_US.ISO8859-1"
SAP kernel............... "640"
Created on............... "Jan 15 2006 20:35:42"
Created in............... "AIX 1 5 00538A4A4C00"
Database version......... "DB6_81 "
Patch level.............. "109"
Patch text............... " "
Supported environment....
Database................. "DB6 09.*, DB6 08.*"
SAP database version..... "640"
Operating system......... "AIX 1 5, AIX 2 5, AIX 3 5"
--------------------
User, transaction...
--------------------
Client.............. 400
User................ "WUH006"
Language key........ "E"
Transaction......... "ZPTP_ADDR_USER "
Program............. "SAPLBUPA_MWX_BDOC_OUTBOUND"
Screen.............. "ZPTP_ADDR_USER 0100"
Screen line......... 30
-------------------------------
Information on where terminated
-------------------------------
The termination occurred in the ABAP program "SAPLBUPA_MWX_BDOC_OUTBOUND" in
"GET_ADDRESS_STRUCT".
The main program was "ZPTP_ADDR_USER ".
The termination occurred in line 932 of the source code of the (Include)
program "LBUPA_MWX_BDOC_OUTBOUNDF30"
of the source code of program "LBUPA_MWX_BDOC_OUTBOUNDF30" (when calling the
editor 9320).
-------------------
Source code extract
-------------------
009020 ENDIF.
009030
009040 * Adressverwendung übernehmen
009050 ls_addr-data-addr_usage-addr_usages = lt_bupa_addressusage.
009060
009070 * Nur wenn mindestens ein Datenteil gefüllt ist, gibt es einen
009080 * Eintrag in der Struktur.
009090 IF NOT ls_addr-data-addr_usage-addr_usages IS INITIAL OR
009100 NOT lv_remark_changed IS INITIAL OR
009110 NOT lv_version_changed IS INITIAL OR
009120 NOT ls_addr-data-postal-datax IS INITIAL OR
009130 NOT lv_communication_changed IS INITIAL OR
009140 NOT lv_user_exit_found IS INITIAL.
009150 * Clear X-flags for ISO-codes for initial values
009160 IF ls_addr-data-postal-data-countryiso IS INITIAL.
009170 CLEAR ls_addr-data-postal-datax-countryiso.
009180 ENDIF.
009190 IF ls_addr-data-postal-data-languiso IS INITIAL.
009200 CLEAR ls_addr-data-postal-datax-langu_iso.
009210 ENDIF.
009220 IF ls_addr-data-postal-data-po_ctryiso IS INITIAL.
009230 CLEAR ls_addr-data-postal-datax-po_ctryiso.
009240 ENDIF.
009250
009260 APPEND ls_addr TO lt_addr.
009270 ENDIF.
009280 ENDLOOP.
009290
009300 LOOP AT ltab_but020_old INTO ls_but020 WHERE
009310 partner = p_partner.
-----> READ TABLE ltab_but020_new WITH KEY
009330 partner = ls_but020-partner
009340 addrnumber = ls_but020-addrnumber
009350 TRANSPORTING NO FIELDS.
009360 IF sy-subrc <> 0.
009370 CLEAR ls_addr.
009380 ls_addr-task = 'D'.
009390
009400 lv_char32_guid = ls_but020-address_guid.
009410 ls_addr-data_key-guid = lv_char32_guid.
009420
009430 ls_addr-data-postal-data-standardaddress = ls_but020-xdfadr.
009440 ls_addr-data-postal-data-extaddressnumber = ls_but020-adext.
009450 ls_addr-data-postal-datax-standardaddress = 'X'.
009460 ls_addr-data-postal-datax-extaddressnumber = 'X'.
009470
009480 * Auf besonderen Wunsch der Mobile-Bridge kennzeichnen wir beim
009490 * Löschen jetzt auch die Komm.daten
009500 ls_addr-data-communication-phone-current_state = 'X'.
009510 ls_addr-data-communication-fax-current_state = 'X'.
10-11-2006 10:11 PM
10-11-2006 11:32 PM
Our support pack leve is at SAPKA62058. I verify the OSS notes you recommended, but ones that apply to our system are already implemented. Any more ideas? Thanks.
10-12-2006 3:48 AM