2
SAP Note Header Data Symptom During an open SQL SELECT statement that reads many data records into an internal table, the work process terminates and is then restarted. The trace file contains the following entries (among others): ... A *** ERROR => User OSS1760053 reached avail. heapsize = 1906 MB: see ST22 [abstor.c 1779] A *** ERROR => Increase abap/heap_area_total [abstor.c 1780] ... A TH VERBOSE LEVEL FULL A ** RABAX: level LEV_RX_PXA_RELEASE_MTX entered. A ** RABAX: level LEV_RX_PXA_RELEASE_MTX completed. A ** RABAX: level LEV_RX_COVERAGE_ANALYSER entered. A ** RABAX: level LEV_RX_COVERAGE_ANALYSER completed. A ** RABAX: level LEV_RX_SAVE_SHMLOCKS entered. A ** RABAX: level LEV_RX_SAVE_SHMLOCKS completed. A ** RABAX: level LEV_RX_RESET_SHMLOCKS entered. A ** RABAX: level LEV_RX_RESET_SHMLOCKS completed. A ** RABAX: level LEV_RX_ROLLBACK entered. B db_con_rollback (con_da={R/3,0,0},th_rollback=1,tx=0) C *** ERROR => Call to DbSlRollbackDB6 while DBIF already active in DbSlExeReadDB6 [dbsldb6.c 596] B hdl_error_on_commit_rollback: Connection details: B 000: name = R/3, con_id = 000000000, state = ACTIVE , tx = NO , hc = NO , perm = YES, B reco = NO , frco = NO , timeout = 000, con_max = 255, con_opt = 255, occ = NO B ***LOG BZY=> unexpected return code 1 calling DbSlRollba [dbcon#4 @ 3120] [dbcon 3120 ] B ***LOG BYJ=> database function ROLLBACK for connection R/3 failed [dbcon#4 @ 3123] [dbcon 3123 ] B *** ERROR => DISTRIBUTED_TA_FAILED: [dbcon.c 1687] B 000: name = R/3, con_id = 000000000, state = ACTIVE , tx = NO , hc = NO , perm = YES, B reco = NO , frco = NO , timeout = 000, con_max = 255, con_opt = 255, occ = NO B db_con_commit (con_da={R/3,0,0},th_commit=1,tx=0,hold_cursor=1) M ***LOG R39=> ThIRollBack, db_rollback ( 016384) [thxxhead.c 13737] M in_ThErrHandle: 1 1 M *** ERROR => ThIRollBack: db_rollback (step 4, th_errno 18, action 2, level 1) [thxxhead.c 10607] ... C Received cancel request for current DB operation C In the DB interface but outside a DB call -> DBSL_ERR_OK B db_sqlbreak() = 0 ... C *** ERROR => Call to DbSlDisconnectDB6 while DBIF already active in DbSlExeReadDB6 [dbsldb6.c 1404] B Disconnected from connection 0 B statistics db_con_commit (com_total=807, com_tx=139) B statistics db_con_rollback (roll_total=7, roll_tx=0) M ***LOG Q02=> wp_halt, WPStop (Workproc 1 959) [dpuxtool.c 269] Other Terms Reason and Prerequisites The reason for the work process termination is that the system can no longer extend the internal table into which the result set is to be read due to a lack of heap memory. In this case, the system uses a "Longjump" to trigger an ABAP short dump (RABAX) that attempts to use a rollback to reset the transaction that is running. The call of the relevant DBSL rollback function runs in a "reentrant" manner to the database selection that has not yet completed. However, certain DBSL implementations (such as the DB2 platforms) are not "reentrant"-enabled and reject the rollback call with a relevant error code. The failed rollback attempt then initiates the task handler to terminate and restart the work process. Solution 1612404 - Work process termination when selecting large datasets Version 2 Validity: 25.04.2013 - active Language English Released On 25.04.2013 15:37:53 Release Status Released for Customer Component BC-DB-DBI DB Independent Database Interface BC-DB-DB6-SYS Database Interface/DBMS for DB2 Universal Database Priority Recommendations / Additional Info Category Help for error analysis Other Components

0001612404

Embed Size (px)

DESCRIPTION

SAP note

Citation preview

Page 1: 0001612404

SAP Note

Header Data

Symptom

During an open SQL SELECT statement that reads many data records into an internal table, the work process terminates and is then restarted. The trace file contains the following entries (among others): ... A  *** ERROR => User OSS1760053   reached avail. heapsize = 1906 MB: see ST22  [abstor.c     1779] A  *** ERROR => Increase abap/heap_area_total [abstor.c     1780] ... A  TH VERBOSE LEVEL FULL A  ** RABAX: level LEV_RX_PXA_RELEASE_MTX entered. A  ** RABAX: level LEV_RX_PXA_RELEASE_MTX completed. A  ** RABAX: level LEV_RX_COVERAGE_ANALYSER entered. A  ** RABAX: level LEV_RX_COVERAGE_ANALYSER completed. A  ** RABAX: level LEV_RX_SAVE_SHMLOCKS entered. A  ** RABAX: level LEV_RX_SAVE_SHMLOCKS completed. A  ** RABAX: level LEV_RX_RESET_SHMLOCKS entered. A  ** RABAX: level LEV_RX_RESET_SHMLOCKS completed. A  ** RABAX: level LEV_RX_ROLLBACK entered. B  db_con_rollback (con_da={R/3,0,0},th_rollback=1,tx=0) C  *** ERROR => Call to DbSlRollbackDB6 while DBIF already active in DbSlExeReadDB6 [dbsldb6.c    596] B  hdl_error_on_commit_rollback: Connection details: B  000: name = R/3, con_id = 000000000, state = ACTIVE      , tx = NO , hc = NO , perm = YES, B       reco = NO , frco = NO , timeout = 000, con_max = 255, con_opt = 255, occ = NO B  ***LOG BZY=> unexpected return code 1          calling DbSlRollba [dbcon#4 @ 3120] [dbcon   3120 ] B  ***LOG BYJ=> database function ROLLBACK   for connection R/3        failed [dbcon#4 @ 3123] [dbcon   3123 ] B  *** ERROR => DISTRIBUTED_TA_FAILED: [dbcon.c      1687] B  000: name = R/3, con_id = 000000000, state = ACTIVE      , tx = NO , hc = NO , perm = YES, B       reco = NO , frco = NO , timeout = 000, con_max = 255, con_opt = 255, occ = NO B  db_con_commit (con_da={R/3,0,0},th_commit=1,tx=0,hold_cursor=1) M  ***LOG R39=> ThIRollBack, db_rollback ( 016384) [thxxhead.c   13737] M  in_ThErrHandle: 1 1 M  *** ERROR => ThIRollBack: db_rollback (step 4, th_errno 18, action 2, level 1) [thxxhead.c   10607] ... C  Received cancel request for current DB operation C  In the DB interface but outside a DB call -> DBSL_ERR_OK B  db_sqlbreak() = 0 ... C  *** ERROR => Call to DbSlDisconnectDB6 while DBIF already active in DbSlExeReadDB6 [dbsldb6.c    1404] B  Disconnected from connection 0 B  statistics db_con_commit (com_total=807, com_tx=139) B  statistics db_con_rollback (roll_total=7, roll_tx=0) M  ***LOG Q02=> wp_halt, WPStop (Workproc 1 959) [dpuxtool.c   269]

Other Terms

Reason and Prerequisites

The reason for the work process termination is that the system can no longer extend the internal table into which the result set is to be read due to a lack of heap memory. In this case, the system uses a "Longjump" to trigger an ABAP short dump (RABAX) that attempts to use a rollback to reset the transaction that is running. The call of the relevant DBSL rollback function runs in a "reentrant" manner to the database selection that has not yet completed. However, certain DBSL implementations (such as the DB2 platforms) are not "reentrant"-enabled and reject the rollback call with a relevant error code. The failed rollback attempt then initiates the task handler to terminate and restart the work process.

Solution

    1612404 - Work process termination when selecting large datasets  

Version   2     Validity: 25.04.2013 - active   Language   English

Released On 25.04.2013 15:37:53

Release Status Released for Customer

Component BC-DB-DBI DB Independent Database Interface

BC-DB-DB6-SYS Database Interface/DBMS for DB2 Universal Database

Priority Recommendations / Additional Info

Category Help for error analysis

Other Components

Page 2: 0001612404

For technical reasons, we cannot currently change this behavior. However, you should attempt to solve the lack of memory as its own problem, either by increasing the ABAP heap limit (parameter abap/heap_area_total) or by reducing the result set of the selection.

Validity

This document is not restricted to a software component or software component version

References

This document refers to:

SAP Notes

This document is referenced by:

SAP Notes (1)

1825408   MSS: DbSlRollback96 while DBIF already active

1825408   MSS: DbSlRollback96 while DBIF already active