cancel
Showing results for 
Search instead for 
Did you mean: 

Dump SAPSQL_ARRAY_INSERT_DUPREC

Former Member
0 Kudos

Hello All,

Please Help me with the above mentioned dump.

We are using ECC 6.0,oracle 10g and HP-UX.

Please find the attached dump details.

Runtime Errors SAPSQL_ARRAY_INSERT_DUPREC

Exception CX_SY_OPEN_SQL_DB

Date and Time 13.09.2010 16:38:52

Short text

The ABAP/4 Open SQL array insert results in duplicate database records.

What happened?

Error in the ABAP Application Program

The current ABAP program "SAPLZLE1" had to be terminated because it has

come across a statement that unfortunately cannot be executed.

What can you do?

Note down which actions and inputs caused the error.

To process the problem further, contact you SAP system

administrator.

Using Transaction ST22 for ABAP Dump Analysis, you can look

at and manage termination messages, and you can also

keep them for a long time.

Error analysis

An exception occurred that is explained in detail below.

The exception, which is assigned to class 'CX_SY_OPEN_SQL_DB', was not caught

in

procedure "Z_LE1_SAVE_ALGORITHM_PICKS" "(FUNCTION)", nor was it propagated by a

RAISING clause.

Since the caller of the procedure could not have anticipated that the

exception would occur, the current program is terminated.

The reason for the exception is:

If you use an ABAP/4 Open SQL array insert to insert a record in

the database and that record already exists with the same key,

this results in a termination.

(With an ABAP/4 Open SQL single record insert in the same error

situation, processing does not terminate, but SY-SUBRC is set to 4.)

to correct the error

Use an ABAP/4 Open SQL array insert only if you are sure that none of

the records passed already exists in the database.

If the error occures in a non-modified SAP program, you may be able to

find an interim solution in an SAP Note.

If you have access to SAP Notes, carry out a search with the following

keywords:

"SAPSQL_ARRAY_INSERT_DUPREC" "CX_SY_OPEN_SQL_DB"

"SAPLZLE1" or "LZLE1U07"

"Z_LE1_SAVE_ALGORITHM_PICKS"

If you cannot solve the problem yourself and want to send an error

notification to SAP, include the following information:

1. The description of the current problem (short dump)

To save the description, choose "System->List->Save->Local File

(Unconverted)".

2. Corresponding system log

Display the system log by calling transaction SM21.

Restrict the time interval to 10 minutes before and five minutes

after the short dump. Then choose "System->List->Save->Local File

(Unconverted)".

3. If the problem occurs in a problem of your own or a modified SAP

program: The source code of the program

In the editor, choose "Utilities->More

Utilities->Upload/Download->Download".

4. Details about the conditions under which the error occurred or which

actions and input led to the error.

The exception must either be prevented, caught within proedure

"Z_LE1_SAVE_ALGORITHM_PICKS" "(FUNCTION)", or its possible occurrence must be

declared in the

RAISING clause of the procedure.

To prevent the exception, note the following:

em environment

SAP-Release 700

Application server... "ttcsap10"

Network address...... "10.133.12.16"

Operating system..... "HP-UX"

Release.............. "B.11.11"

Hardware type........ "9000/800"

Character length.... 16 Bits

Pointer length....... 64 Bits

Work process number.. 1

Shortdump setting.... "full"

Database server... "agsapdb1"

Database type..... "ORACLE"

Database name..... "TCP"

Database user ID.. "SAPTCP"

Terminal................. " "

Char.set.... "C"

SAP kernel....... 700

created (date)... "Dec 14 2009 20:39:54"

create on........ "HP-UX B.11.11 U 9000/800"

Database version. "OCI_102 (10.2.0.2.0) "

Patch level. 236

Patch text.. " "

Database............. "ORACLE 10.1.0.., ORACLE 10.2.0.., ORACLE 11.2...*"

SAP database version. 700

Operating system..... "HP-UX B.11"

Memory consumption

Roll.... 16192

EM...... 4189848

Heap.... 0

Page.... 0

MM Used. 2014296

MM Free. 2172952

r and Transaction

Client.............. 500

User................ "TTC-BATCH"

Language Key........ "E"

Transaction......... " "

Transactions ID..... "4C8EB92BAA2A632DE10000000A850C10"

Program............. "SAPLZLE1"

Screen.............. "SAPMSSY1 3004"

Screen Line......... 2

Information on caller of Remote Function Call (RFC):

System.............. "TCP"

Database Release.... 700

Kernel Release...... 700

Connection Type..... 3 (2=R/2, 3=ABAP System, E=Ext., R=Reg. Ext.)

Call Type........... "synchron and transactional (emode 0, imode 0)"

Inbound TID.........." "

Outbound TID........."0A850C10632D4C8EB60D0117"

Outbound Queue Name.." "

Client.............. 500

User................ "TTC-BATCH"

Transaction......... " "

Call Program........."SAPLERFC"

Function Module..... "ARFC_DEST_SHIP"

Call Destination.... "NONE"

Source Server....... "ttcsap10_TCP_02"

Source IP Address... "10.133.12.16"

Additional information on RFC logon:

Trusted Relationship " "

Logon Return Code... 0

Trusted Return Code. 0

Note: For releases < 4.0, information on the RFC caller are often

only partially available.

formation on where terminated

Termination occurred in the ABAP program "SAPLZLE1" - in

"Z_LE1_SAVE_ALGORITHM_PICKS".

The main program was "SAPMSSY1 ".

In the source code you have the termination point in line 33

of the (Include) program "LZLE1U07".

The termination is caused because exception "CX_SY_OPEN_SQL_DB" occurred in

procedure "Z_LE1_SAVE_ALGORITHM_PICKS" "(FUNCTION)", but it was neither handled

locally nor declared

in the RAISING clause of its signature.

The procedure is in program "SAPLZLE1 "; its source code begins in line

1 of the (Include program "LZLE1U07 ".

Source Code Extract

Line SourceCde

3 ""Local interface:

4 *" TABLES

5 *" T_ALGO_PICKS STRUCTURE ZLE_ALGO_PICKS

6 *" EXCEPTIONS

7 *" RECORD_SAVE_ERROR

8 *"----


9

10 data: LT_ALGO_PICKS like ZLE_ALGO_PICKS occurs 0 with header line.

11

12 * Insure records don't already exist.

13 select * from ZLE_ALGO_PICKS into table LT_ALGO_PICKS

14 for all entries in T_ALGO_PICKS

15 where VBELN = T_ALGO_PICKS-VBELN

16 and POSNR = T_ALGO_PICKS-POSNR.

17 if SY-SUBRC = 0.

18 loop at LT_ALGO_PICKS.

19 call function 'Z_LE1_CLEAR_ALGORITHM_PICKS'

20 exporting

21 I_VBELN = LT_ALGO_PICKS-VBELN

22 I_POSNR = LT_ALGO_PICKS-POSNR

23 exceptions

24 RECORD_DELETE_ERROR = 1

25 others = 2.

26 if SY-SUBRC <> 0.

27 raise RECORD_SAVE_ERROR.

28 endif.

29 endloop.

30 endif.

31 * Insert new records.

32 sort T_ALGO_PICKS by VBELN POSNR PICK_CNT.

>>>>> insert ZLE_ALGO_PICKS from table T_ALGO_PICKS.

34 if SY-SUBRC <> 0.

35 raise RECORD_SAVE_ERROR.

36 endif.

37

38 endfunction.

ontents of system fields

ame Val.

Y-SUBRC 4

Y-INDEX 2

Y-TABIX 2

Y-DBCNT 0

Y-FDPOS 0

Y-LSIND 0

Y-PAGNO 0

Y-LINNO 1

Y-COLNO 1

Y-PFKEY

Y-UCOMM

Y-TITLE CPIC and RFC Control

Y-MSGTY

Y-MSGID

Y-MSGNO 000

Y-MSGV1

Y-MSGV2

Y-MSGV3

Y-MSGV4

Y-MODNO 0

Y-DATUM 20100913

Y-UZEIT 163852

Y-XPROG SAPMSSY1

Y-XFORM XAB_READ

Active Calls/Events

No. Ty. Program Include Line

Name

11 FUNCTION SAPLZLE1 LZLE1U07 33

Z_LE1_SAVE_ALGORITHM_PICKS

10 FUNCTION SAPLZLE1 LZLE1U05 302

Z_LE1_ALGORITHM_PICK_STOCK

9 FUNCTION SAPLZLE1 LZLE1U04 50

Z_LE1_ALGORITHM_FOR_DELIVERY

8 FORM SAPLZLE1 LZLE1U04 1

Z_LE1_ALGORITHM_FOR_DELIVERY

7 FORM SAPMSSY1 SAPMSSY1 271

XAB_RUN_DRIVER

6 FUNCTION SAPLSXAB LSXABU01 9

RFC_RUN_XAB_DRIVER

5 FUNCTION SAPLERFC LERFCU01 115

ARFC_EXECUTE

4 FUNCTION SAPLERFC LERFCU02 386

ARFC_DEST_SHIP

3 FORM SAPLERFC LERFCU02 1

ARFC_DEST_SHIP

2 FORM SAPMSSY1 SAPMSSY1 85

REMOTE_FUNCTION_CALL

1 MODULE (PBO) SAPMSSY1 SAPMSSY1 30

%_RFC_START

Chosen variables

Name

Val.

No. 11 Ty. FUNCTION

Name Z_LE1_SAVE_ALGORITHM_PICKS

Regards,

Srujan Anugu

Accepted Solutions (0)

Answers (3)

Answers (3)

Former Member
0 Kudos

Hi,

Generally this type of dumps get triggered when there is already a record existing with the same data,

Check with the user ID which user tries to update the same information and then check with an

Abaper or with a funtional team member.

this will help you.

Regards

Nizam

Former Member
0 Kudos

Hello Glenn,

Thank you very much for the answer.

I will contact the ABAP consultant to solve the issue.

Will post if the problem still persists.

Regards,

Srujan Reddy.

Former Member
0 Kudos

Hi Srijan

Please check with the Functional ( or ABAP) team for the program getting executed and what data selection criterion they are using for update or insert .

This issue suggests database duplicacy, and hence the functional guys can check it from a Data-perspective.

Thanks

Rishi

Former Member
0 Kudos

Hello Srujan,

This error come due to dropped users,seesion or some other unknown reason,an update transaction fails.when this happened ,locks placed on resources may not be released.If an object was market as being updated ,and the update fails,the lock may still present be present in the sap system.any other transaction attempting an update on the locked object fail.Database error like SAPSQL_ARRAY_INSERT_DUPREC appear in the system.If update cannot be forced to completion,the lock should be removed from objects.

Thanks

DEV

Former Member
0 Kudos

Bit hard to read all the output of your question as the line breaks have been lost.

However Duprec is exactly what it says it is, attempt to save duplicate record to the database. You cannot create a duplicate record in a relation database when that record has a the same key as a primary key or unique key index. ie It is breaking the relational database model.

Now since I see that the error is on a "Z" program Z_LE1_SAVE_ALGORITHM_PICKS....my basis brain says first " Who wrote this s..t?", to be honest I would walk/phone a good ABAP developer and ask them if they could debug the program for this issue. Now there can be much rarer reasons for duprec (classic is with multibyte, codepage issues) but go with the most likely someone or something is trying to save the same bit of data twice.