Abnormal termination of stage

Post questions here relative to DataStage Server Edition for such areas as Server job design, DS Basic, Routines, Job Sequences, etc.

Moderators: chulett, rschirm, roy

Post Reply
venugopal81
Participant
Posts: 49
Joined: Sat Mar 26, 2005 12:19 am

Abnormal termination of stage

Post by venugopal81 »

Hi All,

We have extracting data from SAP-BW and Loading into a file.
Total no. of records are 32 millions. When i run my job it is extracting 31.9 millions after that i got this error. ( I ran this job twice it is aborting at same no of records).

Abnormal termination of stage BWDB2AR4Extract_FullLoad_File..Tranform_rules detected


Please suggest me.

Thanks & regards
venu
ArndW
Participant
Posts: 16318
Joined: Tue Nov 16, 2004 9:08 am
Location: Germany
Contact:

Post by ArndW »

Venu,

your question, if it were put into car terms, would be "I was driving home and, just as I was turning into the driveway the car stopped running. What is the cause?"

You might try to to a reset of your job and see if you have a log entry entitled "from previous run". What are you writing to? If it is a database, what have you set as your commit frequency?
venugopal81
Participant
Posts: 49
Joined: Sat Mar 26, 2005 12:19 am

Post by venugopal81 »

From previous run
DataStage Job 802 Phantom 22346
kgefec: fatal error 0
********** Internal heap ERROR 17113 addr=0x0 *********


******************************************************
HEAP DUMP heap name="" desc=0x0
extent sz=0x0 alt=0 het=0 rec=0 flg=0 opc=0
parent=0 owner=0 nex=0 xsz=0x0
Hla: 0

**** Recursive heap error: 17113 addr=0x0,Abnormal termination of DataStage.
Fault type is 10. Layer type is BASIC run machine.
Fault occurred in BASIC program JOB.1617952052.DT.139397119.TRANS1 at address de. ds=0
ArndW
Participant
Posts: 16318
Joined: Tue Nov 16, 2004 9:08 am
Location: Germany
Contact:

Post by ArndW »

OK, now we know that the job has aborted due to some HEAP problem; most likely it is running out of space. Odd is that it seems to be happening in your TRANS1 stage {which I assume is a TRANsform stage}. This normal does not create any temporary storage - unless you are using stage variables that are getting longer each row, or you are calling routines which don't release their string space.

What are you doing in your transform stage that is not a 1-1 derivation? You stated that the job aborted on the same row twice, so perhaps it has something to do with your data in that row. Does it look "odd" at all?
venugopal81
Participant
Posts: 49
Joined: Sat Mar 26, 2005 12:19 am

Post by venugopal81 »

The data is on SAP BW sever and I am pulling the data from it ..
There are 32 millin records and the job is failing at 31 millions . I have tried thrice ..the job aborted at the same number of records...
ArndW
Participant
Posts: 16318
Joined: Tue Nov 16, 2004 9:08 am
Location: Germany
Contact:

Post by ArndW »

The other questions are still unanswered, and I think they apply to solving your problem.
venugopal81
Participant
Posts: 49
Joined: Sat Mar 26, 2005 12:19 am

Post by venugopal81 »

Hi ArndW,


In Transformstage it is 1-1 derivation only. All records validated in SAP BW fine, so there is no issue with the data.

thanks
venu
ray.wurlod
Participant
Posts: 54607
Joined: Wed Oct 23, 2002 10:52 pm
Location: Sydney, Australia
Contact:

Post by ray.wurlod »

Please post the output of the following command, executed at TCL:

Code: Select all

VLIST RT_BP802 JOB.1617952052.DT.139397119.TRANS1 
IBM Software Services Group
Any contribution to this forum is my own opinion and does not necessarily reflect any position that IBM may hold.
venugopal81
Participant
Posts: 49
Joined: Sat Mar 26, 2005 12:19 am

Post by venugopal81 »

there is a big log followed by what are expecting from this:


TMT65_AUTO_EXTRACT..BeforeJob (ExecTCL): Executed command: VLIST RT_BP802 JOB.1617952052.DT.139397119.TRANS1
*** Output from UniVerse command was: ***
Subroutine "RT_BP802.O/JOB.1617952052.DT.139397119.TRANS1"
Compiler Version: 7.5.1.1
Object Level : 5
Machine Type : 10
Local Variables : 59
Subroutine args : 2
Unnamed Common : 0
Named Common Seg: 2
Object Size : 1408
Source lines : 199

00001: * Tokens were replaced below as follows:

00002: * Pin%%V0S1P5.Column%%1 <= zoph_arde_out.OHREQUID
ray.wurlod
Participant
Posts: 54607
Joined: Wed Oct 23, 2002 10:52 pm
Location: Sydney, Australia
Contact:

Post by ray.wurlod »

We need something from further down the "big log" - specifically what's happing at and around address DE.
IBM Software Services Group
Any contribution to this forum is my own opinion and does not necessarily reflect any position that IBM may hold.
venugopal81
Participant
Posts: 49
Joined: Sat Mar 26, 2005 12:19 am

Post by venugopal81 »

EXTRACT..BeforeJob (ExecTCL): Executed command: VLIST RT_BP802 JOB.1617952052.DT.139397119.TRANS1
*** Output from UniVerse command was: ***
Subroutine "RT_BP802.O/JOB.1617952052.DT.139397119.TRANS1"
Compiler Version: 7.5.1.1
Object Level : 5
Machine Type : 10
Local Variables : 59
Subroutine args : 2
Unnamed Common : 0
Named Common Seg: 2
Object Size : 1408
Source lines : 199

00001: * Tokens were replaced below as follows:

00002: * Pin%%V0S1P5.Column%%1 <= zoph_arde_out.OHREQUID

00003: * Pin%%V0S1P5.Column%%2 <= zoph_arde_out.DATAPAKID

00004: * Pin%%V0S1P5.Column%%3 <= zoph_arde_out.RECORD

00005: * Pin%%V0S1P5.Column%%4 <= zoph_arde_out.COMP_CODE

00006: * Pin%%V0S1P5.Column%%5 <= zoph_arde_out.DEBITOR

00007: * Pin%%V0S1P5.Column%%6 <= zoph_arde_out.AC_DOC_NO

00008: * Pin%%V0S1P5.Column%%7 <= zoph_arde_out.FISCPER

00009: * Pin%%V0S1P5.Column%%8 <= zoph_arde_out.ITEM_NUM

00010: * Pin%%V0S1P5.Column%%9 <= zoph_arde_out.REF_DOC_NO

00011: * Pin%%V0S1P5.Column%%10 <= zoph_arde_out.DOC_DATE

00012: * Pin%%V0S1P5.Column%%11 <= zoph_arde_out.REF_KEY2

00013: * Pin%%V0S1P5.Column%%12 <= zoph_arde_out.REF_KEY1

00014: * Pin%%V0S1P5.Column%%13 <= zoph_arde_out.PSTNG_DATE

00015: * Pin%%V0S1P5.Column%%14 <= zoph_arde_out.CREATEDON

00016: * Pin%%V0S1P5.Column%%15 <= zoph_arde_out.GL_ACCOUNT

00017: * Pin%%V0S1P5.Column%%16 <= zoph_arde_out.CLR_DOC_NO

00018: * Pin%%V0S1P5.Column%%17 <= zoph_arde_out.INV_DOC_NO

00019: * Pin%%V0S1P5.Column%%18 <= zoph_arde_out.CLEAR_DATE

00020: * Pin%%V0S1P5.Column%%19 <= zoph_arde_out.NETDUEDATE

00021: * Pin%%V0S1P5.Column%%20 <= zoph_arde_out.LOC_CURRCY

00022: * Pin%%V0S1P5.Column%%21 <= zoph_arde_out.DEB_CRE_LC

00023: * Pin%%V0S1P5.Column%%22 <= zoph_arde_out.FI_DOCSTAT

00024: * Pin%%V0S1P5.Column%%23 <= zoph_arde_out.AC_DOC_TYP

00025: * Pin%%V0S1P5.Column%%24 <= zoph_arde_out.ZI_REF_CD

00026: * Pin%%V0S1P5.Column%%25 <= zoph_arde_out.ZI_REASON

00027: * Pin%%V0S1P5.Column%%26 <= zoph_arde_out.REASON_CDE

00028: * Pin%%V0S1P5.Column%%27 <= zoph_arde_out.DUNN_BLOCK

00029: * Pin%%V0S1P5.Column%%28 <= zoph_arde_out.DUNN_LEVEL

00030: * Pin%%V0S1P5.Column%%29 <= zoph_arde_out.LAST_DUNN

00031: * Pin%%V0S1P5.Column%%30 <= zoph_arde_out.ZI_LTTEXT

00032: * Pin%%V0S1P5.Column%%31 <= zoph_arde_out.ZI_ZUONR

00033: * GET.Pin%%V0S1P5 <= GET.zoph_arde_out

00034: * Pin%%V0S1P5.REJECTEDCODE <= zoph_arde_out.REJECTEDCODE

00035: * Pin%%V0S1P7.Column%%1 <= DSLink18.CDE_COMPANY

00036: * Pin%%V0S1P7.Column%%2 <= DSLink18.IDT_SAP_CUSTOMER

00037: * Pin%%V0S1P7.Column%%3 <= DSLink18.NUM_SAP_ACCT_DOC

00038: * Pin%%V0S1P7.Column%%4 <= DSLink18.NUM_SAP_FISCPER

00039: * Pin%%V0S1P7.Column%%5 <= DSLink18.NUM_SAP_INVC_LINE

00040: * Pin%%V0S1P7.Column%%6 <= DSLink18.IDT_CUSTOMER

00041: * Pin%%V0S1P7.Column%%7 <= DSLink18.NUM_INVOICE

00042: * Pin%%V0S1P7.Column%%8 <= DSLink18.DTE_INVOICE

00043: * Pin%%V0S1P7.Column%%9 <= DSLink18.IDT_CUST_BILL

00044: * Pin%%V0S1P7.Column%%10 <= DSLink18.IDT_CUST_INSTALL

00045: * Pin%%V0S1P7.Column%%11 <= DSLink18.IDT_SAP_WRITE_OFF

00046: * Pin%%V0S1P7.Column%%12 <= DSLink18.DTE_EFFECTIVE

00047: * Pin%%V0S1P7.Column%%13 <= DSLink18.DTE_TRAN_CREATE

00048: * Pin%%V0S1P7.Column%%14 <= DSLink18.NUM_JOURNAL_VOUCH

00049: * Pin%%V0S1P7.Column%%15 <= DSLink18.NUM_BRANCH

00050: * Pin%%V0S1P7.Column%%16 <= DSLink18.NUM_GL_ACCOUNT

00051: * Pin%%V0S1P7.Column%%17 <= DSLink18.NUM_SAP_DOC_CLEAR

00052: * Pin%%V0S1P7.Column%%18 <= DSLink18.NUM_SAP_DOC_PT_PAY

00053: * Pin%%V0S1P7.Column%%19 <= DSLink18.DTE_INVC_CLEARED

00054: * Pin%%V0S1P7.Column%%20 <= DSLink18.DTE_SAP_NET_DUE

00055: * Pin%%V0S1P7.Column%%21 <= DSLink18.CDE_SAP_LOCL_CRNCY

00056: * Pin%%V0S1P7.Column%%22 <= DSLink18.AMT_SAP_DOCUMENT

00057: * Pin%%V0S1P7.Column%%23 <= DSLink18.CDE_SAP_DOC_STATUS

00058: * Pin%%V0S1P7.Column%%24 <= DSLink18.CDE_SAP_ACCT_DOC

00059: * Pin%%V0S1P7.Column%%25 <= DSLink18.CDE_SAP_REF_REAS

00060: * Pin%%V0S1P7.Column%%26 <= DSLink18.CDE_SAP_REVERSAL

00061: * Pin%%V0S1P7.Column%%27 <= DSLink18.CDE_SAP_WRITE_OFF

00062: * Pin%%V0S1P7.Column%%28 <= DSLink18.CDE_SAP_DUNN_BLOCK

00063: * Pin%%V0S1P7.Column%%29 <= DSLink18.CDE_SAP_DUNN_LEVEL

00064: * Pin%%V0S1P7.Column%%30 <= DSLink18.DTE_SAP_LAST_DUNN

00065: * Pin%%V0S1P7.Column%%31 <= DSLink18.TXT_SAP_LINE_DESC

00066: * Pin%%V0S1P7.Column%%32 <= DSLink18.NUM_SAP_ASSIGNMENT

00067: * PUT.Pin%%V0S1P7 <= PUT.DSLink18

00068: * Pin%%V0S1P7.REJECTED <= DSLink18.REJECTED

00069: * Pin%%V0S1P7.REJECTEDCODE <= DSLink18.REJECTEDCODE

00070: *

00071: * Subroutine for active stage BWDB2AR4Extract_FullLoad_File.Tranform_rules generated at 11:36:57 02 MAR 2006

00072: *

00073: SUBROUTINE DSTransformerStage(HANDLES,ERROR)

00074:

00075: $INCLUDE DSINCLUDE DSD_RTCONFIG.H

00076: $INCLUDE DSINCLUDE DSD_STAGE.H
00076 00000 : 058 dimcom STAGECOM.PIN 1024 => 1
00076 00008 : 058 dimcom STAGECOM.NUM.ROWS 1024 => 1
00076 00010 : 058 dimcom STAGECOM.ARR 8192 => 1

00077: $INCLUDE DSINCLUDE DSD_BCI.H
00077 00018 : 058 dimcom BCICOM.DSN 1024 => 1
00077 00020 : 058 dimcom BCICOM.HDBC 1024 => 1
00077 00028 : 058 dimcom BCICOM.NUM.STMTS 1024 => 1
00077 00030 : 102 mul 1024 2 => $R0
00077 00038 : 058 dimcom BCICOM.HSTMT $R0 => 1
00077 00040 : 058 dimcom BCICOM.TXROWS 1024 => 1
00077 00048 : 058 dimcom BCICOM.TXSIZE 1024 => 1
00077 00050 : 058 dimcom BCICOM.PRIVATE 1024 => 1
00077 00058 : 058 dimcom BCICOM.ARR.ROWS 1024 => 1
00077 00060 : 058 dimcom BCICOM.ARR.SIZE 1024 => 1
00077 00068 : 058 dimcom BCICOM.NLS.MAPNAME 1024 => 1
00077 00070 : 058 dimcom BCICOM.ARR 8192 => 1
00077 00078 : 058 dimcom BCICOM.MAP.ARR 8192 => 1
00077 00080 : 058 dimcom BCICOM.TXSTATE 1024 => 1
00077 00088 : 058 dimcom BCICOM.DO.REPREPARE 1024 => 1

00078:

00079: $INCLUDE DSINCLUDE JOBCONTROL.H

00080: DEFFUN DSRLoadString(Num,Text,Args) CALLING '*DataStage*DSR_LOADSTRING'

00081: $DEFINE Pin%%V0S1P5.Column%%1 STAGECOM.ARR(1)

00082: $DEFINE Pin%%V0S1P5.Column%%2 STAGECOM.ARR(2)

00083: $DEFINE Pin%%V0S1P5.Column%%3 STAGECOM.ARR(3)

00084: $DEFINE Pin%%V0S1P5.Column%%4 STAGECOM.ARR(4)

00085: $DEFINE Pin%%V0S1P5.Column%%5 STAGECOM.ARR(5)

00086: $DEFINE Pin%%V0S1P5.Column%%6 STAGECOM.ARR(6)

00087: $DEFINE Pin%%V0S1P5.Column%%7 STAGECOM.ARR(7)

00088: $DEFINE Pin%%V0S1P5.Column%%8 STAGECOM.ARR(8)

00089: $DEFINE Pin%%V0S1P5.Column%%9 STAGECOM.ARR(9)

00090: $DEFINE Pin%%V0S1P5.Column%%10 STAGECOM.ARR(10)

00091: $DEFINE Pin%%V0S1P5.Column%%11 STAGECOM.ARR(11)

00092: $DEFINE Pin%%V0S1P5.Column%%12 STAGECOM.ARR(12)

00093: $DEFINE Pin%%V0S1P5.Column%%13 STAGECOM.ARR(13)

00094: $DEFINE Pin%%V0S1P5.Column%%14 STAGECOM.ARR(14)

00095: $DEFINE Pin%%V0S1P5.Column%%15 STAGECOM.ARR(15)

00096: $DEFINE Pin%%V0S1P5.Column%%16 STAGECOM.ARR(16)

00097: $DEFINE Pin%%V0S1P5.Column%%17 STAGECOM.ARR(17)

00098: $DEFINE Pin%%V0S1P5.Column%%18 STAGECOM.ARR(18)

00099: $DEFINE Pin%%V0S1P5.Column%%19 STAGECOM.ARR(19)

00100: $DEFINE Pin%%V0S1P5.Column%%20 STAGECOM.ARR(20)

00101: $DEFINE Pin%%V0S1P5.Column%%21 STAGECOM.ARR(21)

00102: $DEFINE Pin%%V0S1P5.Column%%22 STAGECOM.ARR(22)

00103: $DEFINE Pin%%V0S1P5.Column%%23 STAGECOM.ARR(23)

00104: $DEFINE Pin%%V0S1P5.Column%%24 STAGECOM.ARR(24)

00105: $DEFINE Pin%%V0S1P5.Column%%25 STAGECOM.ARR(25)

00106: $DEFINE Pin%%V0S1P5.Column%%26 STAGECOM.ARR(26)

00107: $DEFINE Pin%%V0S1P5.Column%%27 STAGECOM.ARR(27)

00108: $DEFINE Pin%%V0S1P5.Column%%28 STAGECOM.ARR(28)

00109: $DEFINE Pin%%V0S1P5.Column%%29 STAGECOM.ARR(29)

00110: $DEFINE Pin%%V0S1P5.Column%%30 STAGECOM.ARR(30)

00111: $DEFINE Pin%%V0S1P5.Column%%31 STAGECOM.ARR(31)

00112: $DEFINE GET.Pin%%V0S1P5 CALL $DSP.GetNext(1,Pin%%V0S1P5.REJECTEDCODE)

00113: IF STAGECOM.TRACE.STATS THEN CALL $PERF.NAME(-2,'DSLink18.Derivation')
00113 00090 : 010 bitand STAGECOM.TRACEMODE 16 => $R0
00113 00098 : 106 ne $R0 0 => $R1
00113 000A0 : 2DE testfw $R1 000BE:
00113 000A8 : 0F8 move -2 => _T0000
00113 000AE : 0F8 move "DSLink18.Derivation" => _T0001
00113 000B4 : 01E call "$PERF.NAME" _T0000 _T0001

00114: $DEFINE Pin%%V0S1P7.Column%%1 STAGECOM.ARR(4)

00115: $DEFINE Pin%%V0S1P7.Column%%2 STAGECOM.ARR(5)

00116: $DEFINE Pin%%V0S1P7.Column%%3 STAGECOM.ARR(6)

00117: $DEFINE Pin%%V0S1P7.Column%%4 STAGECOM.ARR(7)

00118: $DEFINE Pin%%V0S1P7.Column%%5 STAGECOM.ARR(8)

00119: $DEFINE Pin%%V0S1P7.Column%%6 STAGECOM.ARR(32)

00120: $DEFINE Pin%%V0S1P7.Column%%7 STAGECOM.ARR(33)

00121: $DEFINE Pin%%V0S1P7.Column%%8 STAGECOM.ARR(34)

00122: $DEFINE Pin%%V0S1P7.Column%%9 STAGECOM.ARR(35)

00123: $DEFINE Pin%%V0S1P7.Column%%10 STAGECOM.ARR(36)

00124: $DEFINE Pin%%V0S1P7.Column%%11 STAGECOM.ARR(37)

00125: $DEFINE Pin%%V0S1P7.Column%%12 STAGECOM.ARR(38)

00126: $DEFINE Pin%%V0S1P7.Column%%13 STAGECOM.ARR(39)

00127: $DEFINE Pin%%V0S1P7.Column%%14 STAGECOM.ARR(40)

00128: $DEFINE Pin%%V0S1P7.Column%%15 STAGECOM.ARR(41)

00129: $DEFINE Pin%%V0S1P7.Column%%16 STAGECOM.ARR(15)

00130: $DEFINE Pin%%V0S1P7.Column%%17 STAGECOM.ARR(16)

00131: $DEFINE Pin%%V0S1P7.Column%%18 STAGECOM.ARR(17)

00132: $DEFINE Pin%%V0S1P7.Column%%19 STAGECOM.ARR(42)

00133: $DEFINE Pin%%V0S1P7.Column%%20 STAGECOM.ARR(43)

00134: $DEFINE Pin%%V0S1P7.Column%%21 STAGECOM.ARR(20)

00135: $DEFINE Pin%%V0S1P7.Column%%22 STAGECOM.ARR(44)

00136: $DEFINE Pin%%V0S1P7.Column%%23 STAGECOM.ARR(22)

00137: $DEFINE Pin%%V0S1P7.Column%%24 STAGECOM.ARR(23)

00138: $DEFINE Pin%%V0S1P7.Column%%25 STAGECOM.ARR(24)

00139: $DEFINE Pin%%V0S1P7.Column%%26 STAGECOM.ARR(25)

00140: $DEFINE Pin%%V0S1P7.Column%%27 STAGECOM.ARR(26)

00141: $DEFINE Pin%%V0S1P7.Column%%28 STAGECOM.ARR(27)

00142: $DEFINE Pin%%V0S1P7.Column%%29 STAGECOM.ARR(28)

00143: $DEFINE Pin%%V0S1P7.Column%%30 STAGECOM.ARR(45)

00144: $DEFINE Pin%%V0S1P7.Column%%31 STAGECOM.ARR(30)

00145: $DEFINE Pin%%V0S1P7.Column%%32 STAGECOM.ARR(31)

00146: $DEFINE PUT.Pin%%V0S1P7 CALL $DS.SEQPUT(2, Pin%%V0S1P7.REJECTEDCODE)

00147:

00148: UPDATE.COUNT = STAGECOM.RATE
00148 000BE : 0E6 matrix STAGECOM.NUM.ROWS 0 1 => UPDATE.COUNT

00149:

00150:

00151:

00152: LOOP

00153: REJECTED = @TRUE
00153 000C8 : 0F8 move 1 => REJECTED

00154: * Get next row from primary input pin zoph_arde_out

00155: STAGECOM.PINNO = 1
00155 000CE : 0FC move_matrix 1 0 1 => STAGECOM.PIN

00156: GET.Pin%%V0S1P5
00156 000D8 : 0F8 move 1 => _T0002
00156 000DE : 01E call "$DSP.GetNext" _T0002 Pin%%V0S1P5.REJECTEDCODE

00157: ERROR = Pin%%V0S1P5.REJECTEDCODE
00157 000E8 : 0F8 move Pin%%V0S1P5.REJECTEDCODE => ERROR

00158: WHILE NOT(ERROR)
00158 000EE : 10C nop
00158 000F0 : 10E not ERROR => $R1
00158 000F6 : 2DE testfw $R1 0057C:

00159:

00160: STAGECOM.PINNO = 2
00160 00100 : 0FC move_matrix 2 0 1 => STAGECOM.PIN

00161: IF STAGECOM.TRACE.STATS THEN CALL $PERF.BEGIN(-2)
00161 0010A : 010 bitand STAGECOM.TRACEMODE 16 => $R1
00161 00112 : 106 ne $R1 0 => $R2
00161 0011A : 2DE testfw $R2 00132:
00161 00124 : 0F8 move -2 => _T0003
00161 0012A : 01E call "$PERF.BEGIN" _T0003

00162: IF @TRUE THEN
00162 00132 : 2DE testfw 1 0053C:

00163: * Column derivation code for pin DSLink18

00164: Pin%%V0S1P7.Column%%6 = ( IF Num(left(Pin%%V0S1P5.Column%%30, 11)) then left(Pin%%V0S1P5.Column%%30, 11) else "")
00164 0013C : 0E6 matrix STAGECOM.ARR 30 1 => $R2
00164 00146 : 286 left $R2 11 => $R3
00164 0014E : 110 num $R3 => $R4
00164 00154 : 2DE testfw $R4 00174:
00164 0015C : 0E6 matrix STAGECOM.ARR 30 1 => $R6
00164 00166 : 286 left $R6 11 => $R5
00164 0016E : 0C2 jump 0017A:
00164 00174 : 0F8 move "" => $R5
00164 0017A : 0FC move_matrix $R5 32 1 => STAGECOM.ARR

00165: Pin%%V0S1P7.Column%%7 = (left(Pin%%V0S1P5.Column%%9, 10))
00165 00184 : 0E6 matrix STAGECOM.ARR 9 1 => $R5
00165 0018E : 286 left $R5 10 => $R7
00165 00196 : 0FC move_matrix $R7 33 1 => STAGECOM.ARR

00166: Pin%%V0S1P7.Column%%8 = (Iconv(Pin%%V0S1P5.Column%%10, "D4YMD[4,2,2]"))
00166 001A0 : 0E6 matrix STAGECOM.ARR 10 1 => $R7
00166 001AA : 0AC iconv $R7 "D4YMD[4,2,2]" => $R8
00166 001B2 : 0FC move_matrix $R8 34 1 => STAGECOM.ARR

00167: Pin%%V0S1P7.Column%%9 = ( IF Num(Pin%%V0S1P5.Column%%30[23, 11]) then Pin%%V0S1P5.Column%%30[23, 11] else "")
00167 001BC : 0E6 matrix STAGECOM.ARR 30 1 => $R8
00167 001C6 : 0F0 mid $R8 23 11 => $R9
00167 001D0 : 110 num $R9 => $R10
00167 001D6 : 2DE testfw $R10 001FC:
00167 001E0 : 0E6 matrix STAGECOM.ARR 30 1 => $R12
00167 001EA : 0F0 mid $R12 23 11 => $R11
00167 001F4 : 0C2 jump 00202:
00167 001FC : 0F8 move "" => $R11
00167 00202 : 0FC move_matrix $R11 35 1 => STAGECOM.ARR

00168: Pin%%V0S1P7.Column%%10 = ( IF Num(left(Pin%%V0S1P5.Column%%11, 11)) then left(Pin%%V0S1P5.Column%%11, 11) ELSE "")
00168 0020C : 0E6 matrix STAGECOM.ARR 11 1 => $R11
00168 00216 : 286 left $R11 11 => $R13
00168 0021E : 110 num $R13 => $R14
00168 00224 : 2DE testfw $R14 00244:
00168 0022C : 0E6 matrix STAGECOM.ARR 11 1 => $R16
00168 00236 : 286 left $R16 11 => $R15
00168 0023E : 0C2 jump 0024A:
00168 00244 : 0F8 move "" => $R15
00168 0024A : 0FC move_matrix $R15 36 1 => STAGECOM.ARR

00169: Pin%%V0S1P7.Column%%11 = ( IF Pin%%V0S1P5.Column%%25 = 'L3' OR Pin%%V0S1P5.Column%%24 <> @NULL OR LEFT(Pin%%V0S1P5.Column%%26, 1) = 'Z' THEN left(Pin%%V0S1P5.Column%%12, 8) ELSE @NULL)
00169 00254 : 0E6 matrix STAGECOM.ARR 25 1 => $R15
00169 0025E : 06E eq $R15 "L3" => $R17
00169 00266 : 0E6 matrix STAGECOM.ARR 24 1 => $R18
00169 00270 : 106 ne $R18 @NULL => $R19
00169 00278 : 122 or $R17 $R19 => $R20
00169 00280 : 0E6 matrix STAGECOM.ARR 26 1 => $R21
00169 0028A : 286 left $R21 1 => $R22
00169 00292 : 06E eq $R22 "Z" => $R23
00169 0029A : 122 or $R20 $R23 => $R24
00169 002A2 : 2DE testfw $R24 002C4:
00169 002AC : 0E6 matrix STAGECOM.ARR 12 1 => $R26
00169 002B6 : 286 left $R26 8 => $R25
00169 002BE : 0C2 jump 002CA:
00169 002C4 : 0F8 move @NULL => $R25
00169 002CA : 0FC move_matrix $R25 37 1 => STAGECOM.ARR

00170: Pin%%V0S1P7.Column%%12 = (Iconv(Pin%%V0S1P5.Column%%13, "D4YMD[4,2,2]"))
00170 002D4 : 0E6 matrix STAGECOM.ARR 13 1 => $R25
00170 002DE : 0AC iconv $R25 "D4YMD[4,2,2]" => $R27
00170 002E6 : 0FC move_matrix $R27 38 1 => STAGECOM.ARR

00171: Pin%%V0S1P7.Column%%13 = (Iconv(Pin%%V0S1P5.Column%%14, "D4YMD[4,2,2]"))
00171 002F0 : 0E6 matrix STAGECOM.ARR 14 1 => $R27
00171 002FA : 0AC iconv $R27 "D4YMD[4,2,2]" => $R28
00171 00302 : 0FC move_matrix $R28 39 1 => STAGECOM.ARR

00172: Pin%%V0S1P7.Column%%14 = ( IF Num(Pin%%V0S1P5.Column%%30[15, 4]) or Pin%%V0S1P5.Column%%30[15, 4] = "CIBM" then Pin%%V0S1P5.Column%%30[15, 4] else @NULL)
00172 0030C : 0E6 matrix STAGECOM.ARR 30 1 => $R28
00172 00316 : 0F0 mid $R28 15 4 => $R29
00172 00320 : 110 num $R29 => $R30
00172 00326 : 0E6 matrix STAGECOM.ARR 30 1 => $R31
00172 00330 : 0F0 mid $R31 15 4 => $R32
00172 0033A : 06E eq $R32 "CIBM" => $R33
00172 00342 : 122 or $R30 $R33 => $R34
00172 0034A : 2DE testfw $R34 00370:
00172 00354 : 0E6 matrix STAGECOM.ARR 30 1 => $R36
00172 0035E : 0F0 mid $R36 15 4 => $R35
00172 00368 : 0C2 jump 00376:
00172 00370 : 0F8 move @NULL => $R35
00172 00376 : 0FC move_matrix $R35 40 1 => STAGECOM.ARR

00173: Pin%%V0S1P7.Column%%15 = ( IF Num(Pin%%V0S1P5.Column%%30[19, 4]) then Pin%%V0S1P5.Column%%30[19, 4] else @NULL)
00173 00380 : 0E6 matrix STAGECOM.ARR 30 1 => $R35
00173 0038A : 0F0 mid $R35 19 4 => $R37
00173 00394 : 110 num $R37 => $R38
00173 0039A : 2DE testfw $R38 003C0:
00173 003A4 : 0E6 matrix STAGECOM.ARR 30 1 => $R40
00173 003AE : 0F0 mid $R40 19 4 => $R39
00173 003B8 : 0C2 jump 003C6:
00173 003C0 : 0F8 move @NULL => $R39
00173 003C6 : 0FC move_matrix $R39 41 1 => STAGECOM.ARR

00174: Pin%%V0S1P7.Column%%19 = ( if Pin%%V0S1P5.Column%%18 Eq 00000000 THEN Pin%%V0S1P5.Column%%18 else Iconv(Pin%%V0S1P5.Column%%18, "D4YMD[4,2,2]"))
00174 003D0 : 0E6 matrix STAGECOM.ARR 18 1 => $R39
00174 003DA : 06E eq $R39 0 => $R41
00174 003E2 : 2DE testfw $R41 003FC:
00174 003EC : 0E6 matrix STAGECOM.ARR 18 1 => $R42
00174 003F6 : 0C2 jump 0040E:
00174 003FC : 0E6 matrix STAGECOM.ARR 18 1 => $R43
00174 00406 : 0AC iconv $R43 "D4YMD[4,2,2]" => $R42
00174 0040E : 0FC move_matrix $R42 42 1 => STAGECOM.ARR

00175: Pin%%V0S1P7.Column%%20 = (Iconv(Pin%%V0S1P5.Column%%19, "D4YMD[4,2,2]"))
00175 00418 : 0E6 matrix STAGECOM.ARR 19 1 => $R42
00175 00422 : 0AC iconv $R42 "D4YMD[4,2,2]" => $R44
00175 0042A : 0FC move_matrix $R44 43 1 => STAGECOM.ARR

00176: Pin%%V0S1P7.Column%%22 = ( if Right(Pin%%V0S1P5.Column%%21, 1) = "-" then "-" : TRIM(Pin%%V0S1P5.Column%%21, "-", "T") else Pin%%V0S1P5.Column%%21)
00176 00434 : 0E6 matrix STAGECOM.ARR 21 1 => $R44
00176 0043E : 164 right $R44 1 => $R45
00176 00446 : 06E eq $R45 "-" => $R46
00176 0044E : 2DE testfw $R46 0047C:
00176 00458 : 0E6 matrix STAGECOM.ARR 21 1 => $R48
00176 00462 : 24E ptrim $R48 "-" "T" => $R49
00176 0046C : 03A concat "-" $R49 => $R47
00176 00474 : 0C2 jump 00486:
00176 0047C : 0E6 matrix STAGECOM.ARR 21 1 => $R47
00176 00486 : 0FC move_matrix $R47 44 1 => STAGECOM.ARR

00177: Pin%%V0S1P7.Column%%30 = ( if Pin%%V0S1P5.Column%%29 eq 00000000 then Pin%%V0S1P5.Column%%29 else Iconv(Pin%%V0S1P5.Column%%29, "D4YMD[4,2,2]"))
00177 00490 : 0E6 matrix STAGECOM.ARR 29 1 => $R47
00177 0049A : 06E eq $R47 0 => $R50
00177 004A2 : 2DE testfw $R50 004BC:
00177 004AC : 0E6 matrix STAGECOM.ARR 29 1 => $R51
00177 004B6 : 0C2 jump 004CE:
00177 004BC : 0E6 matrix STAGECOM.ARR 29 1 => $R52
00177 004C6 : 0AC iconv $R52 "D4YMD[4,2,2]" => $R51
00177 004CE : 0FC move_matrix $R51 45 1 => STAGECOM.ARR

00178: Pin%%V0S1P7.REJECTED = @FALSE
00178 004D8 : 0F8 move 0 => Pin%%V0S1P7.REJECTED

00179: IF STAGECOM.TRACE.STATS THEN CALL $PERF.END(-2)
00179 004DE : 010 bitand STAGECOM.TRACEMODE 16 => $R51
00179 004E6 : 106 ne $R51 0 => $R53
00179 004EE : 2DE testfw $R53 00506:
00179 004F8 : 0F8 move -2 => _T0004
00179 004FE : 01E call "$PERF.END" _T0004

00180:

00181: PUT.Pin%%V0S1P7
00181 00506 : 0F8 move 2 => _T0005
00181 0050C : 01E call "$DS.SEQPUT" _T0005 Pin%%V0S1P7.REJECTEDCODE

00182: IF NOT(Pin%%V0S1P7.REJECTEDCODE) THEN
00182 00516 : 10E not Pin%%V0S1P7.REJECTEDCODE => $R53
00182 0051C : 2DE testfw $R53 00530:

00183: REJECTED = @FALSE
00183 00524 : 0F8 move 0 => REJECTED
00183 0052A : 0C2 jump 00536:

00184: END ELSE

00185: Pin%%V0S1P7.REJECTED = @TRUE
00185 00530 : 0F8 move 1 => Pin%%V0S1P7.REJECTED
00185 00536 : 0C2 jump 00548:

00186: END

00187: END

00188: ELSE

00189: Pin%%V0S1P7.REJECTED = @TRUE
00189 0053C : 0F8 move 1 => Pin%%V0S1P7.REJECTED

00190: Pin%%V0S1P7.REJECTEDCODE = 0
00190 00542 : 0F8 move 0 => Pin%%V0S1P7.REJECTEDCODE

00191: END

00192:

00193:

00194: UPDATE.COUNT -= 1
00194 00548 : 194 sub UPDATE.COUNT 1 => UPDATE.COUNT

00195: IF UPDATE.COUNT LE 0 THEN CALL DSD.Update(HANDLES);UPDATE.COUNT = STAGECOM.RATE
00195 00550 : 0CE le UPDATE.COUNT 0 => $R53
00195 00558 : 2DE testfw $R53 00572:
00195 00560 : 01E call "DSD.Update" HANDLES
00195 00568 : 0E6 matrix STAGECOM.NUM.ROWS 0 1 => UPDATE.COUNT

00196: REPEAT
00196 00572 : 10C nop
00196 00574 : 0C2 jump 000C8:

00197: RETURN
00197 0057C : 15C return

00198: END
00198 0057E : 15C return
ray.wurlod
Participant
Posts: 54607
Joined: Wed Oct 23, 2002 10:52 pm
Location: Sydney, Australia
Contact:

Post by ray.wurlod »

Address DE in the object code is associated with the source statement GET.Pin%%V0S1P5 which (from source line 33) maps to a GET (get next row) call on the main input link into the stage (link name zoph_arde_out) and which, from line 112, is a call to $DSP.GetNext.

My main reason for wanting to see this was to make sure that it wasn't anything else.

A heap error usually indicates in this case that the operation has exhausted available memory or scratch disk space. Presumably the link zoph_arde_out is directly retrieving data from SAP. There's not much more you can do from a DataStage perspective; something in this process has run out of resources.

What has your support provider had to say? I worry about the word "recursive" in the error message; it looks like the (vendor-supplied) function DSP.GetNext is using a recursive algorithm for memory allocation. Eek! So easy to get wrong, and run away with memory.
IBM Software Services Group
Any contribution to this forum is my own opinion and does not necessarily reflect any position that IBM may hold.
loveojha2
Participant
Posts: 362
Joined: Thu May 26, 2005 12:59 am

Post by loveojha2 »

Hi Ray,

Can you please explain what does command

Code: Select all

VLIST
do. and what are the parameters that it accepts. So that it may help in future for error tracing.

Thanks a lot.
Success consists of getting up just one more time than you fall.
ArndW
Participant
Posts: 16318
Joined: Tue Nov 16, 2004 9:08 am
Location: Germany
Contact:

Post by ArndW »

VLIST is one of the internal debugging tools embedded in the DataStage/UniVerse engine.

DataStage BASIC programs are not compiled to machine objects, they are actually compiled into a pseudocode format which, at runtime, is interpreted by the engine and executed. The VLIST program will show the compiled pseudocode along with hex program addresses and (depending upon the compiler options used) the source code line. It is quite useful for debugging user-written programs which include the line numbers, a little less so for system programs which are compiled in such a way that the xref tables are not visible and the source lines are not visible.

The display shows the "assembler" code for the engine and it takes a bit of practice to understand the commands and correlate them to the original program.

You can call up "HELP VLIST" from the TCL line, or better yet go to the IBM product pages and download PDF - I am not 100% certain which one describes VLIST, it might be in the "perform" guide.
ray.wurlod
Participant
Posts: 54607
Joined: Wed Oct 23, 2002 10:52 pm
Location: Sydney, Australia
Contact:

Post by ray.wurlod »

Chapter 5 od the DataStage BASIC manual.
IBM Software Services Group
Any contribution to this forum is my own opinion and does not necessarily reflect any position that IBM may hold.
Post Reply