Compilation error

Post questions here relative to DataStage Enterprise/PX Edition for such areas as Parallel job design, Parallel datasets, BuildOps, Wrappers, etc.

Moderators: chulett, rschirm, roy

Post Reply
koolnitz
Participant
Posts: 138
Joined: Wed Sep 07, 2005 5:39 am

Compilation error

Post by koolnitz »

Hi

I'm getting the following compilation error from a Parallel job. As per my understanding it's been caused by the lookup stage Lookup_119. I checked and couldn't find anything wrong in terms of column mapping and data type definition. Especially, there is no duplication of the field IP_ID_CUST as mentioned in the error message.

Please let me know what all information do you need to help me out.

Thanks in advance!


*****************************************
Output from transformer compilation follows:

##I TFCN 000001 06:11:01(000) <main_program>
Ascential DataStage(tm) Enterprise Edition 7.5.1A
Copyright (c) 2004, 1997-2004 Ascential Software Corporation.
All Rights Reserved


##I TOSH 000002 06:11:01(001) <main_program> orchgeneral: loaded
##I TOSH 000002 06:11:01(002) <main_program> orchsort: loaded
##I TOSH 000002 06:11:01(003) <main_program> orchstats: loaded
##I TFSC 000001 06:11:01(006) <main_program> APT configuration file: /dstage/dsadm/Ascential/DataStage/Configurations/BIR2_TwoNode_TEST.apt
##I TFSC 000000 06:11:01(007) <main_program>
This step has no datasets.

It has 1 operator:
op0[1p] {(sequential APT_CombinedOperatorController:
(APT_LicenseCountOp in APT_LicenseOperator)
(APT_LicenseCheckOp in APT_LicenseOperator)
) on nodes (
node1[op0,p0]
)}
It runs 1 process on 1 node.
##W TCOS 000049 06:11:02(000) <main_program> Parameter specified but not used in flow: DSPXWorkingDir
##E TCOS 000003 06:11:02(001) <main_program> Syntax error: Error in "transform" operator: Error in operator arg: Error parsing schema: Duplicate field identifier: "IP_ID_CUST", line 12
##E TCOS 000029 06:11:02(002) <main_program> Creation of a step finished with status = FAILED. (IS_Nitin_1.Lookup_119)

*** Internal Generated Transformer Code follows:
0001: //
0002: // Generated file to implement the V0S119_IS_Nitin_1_Lookup_119 transform operator.
0003: //
0004:
0005: // define our input/output link names
0006: inputname 0 lnkHewArrIpRelCde;
0007: tablename 0 lnkInvpxref;
0008: tablename 1 lnkHewTranCustFact;
0009: tablename 2 DSLink205;
0010: tablename 3 lnkDATE;
0011: tablename 4 lnkHewCustFact;
0012: tablename 5 lnkHewCustFact1;
0013: tablename 6 lnkHewCustFact2;
0014: outputname 0 lnklkpHewCust1;
0015:
0016: initialize {
0017: // define our row rejected variable
0018: int8 RowRejected0;
0019:
0020: // define our null set variable
0021: int8 NullSetVar0;
0022:
0023: }
0024:
0025: mainloop {
0026: // initialise our row rejected variable
0027: RowRejected0 = 1;
0028:
0029: // no condition for lookup link: lnkInvpxref
0030: lookup(lnkInvpxref);
0031: if (!is_match(lnkInvpxref)) {
0032: droprecord 0;
0033: };
0034: // no condition for lookup link: lnkHewTranCustFact
0035: lookup(lnkHewTranCustFact);
0036: // no condition for lookup link: DSLink205
0037: lookup(DSLink205);
0038: // no condition for lookup link: lnkDATE
0039: lookup(lnkDATE);
0040: // no condition for lookup link: lnkHewCustFact
0041: lookup(lnkHewCustFact);
0042: // no condition for lookup link: lnkHewCustFact1
0043: lookup(lnkHewCustFact1);
0044: // no condition for lookup link: lnkHewCustFact2
0045: lookup(lnkHewCustFact2);
0046: // evaluate columns (no constraints) for link: lnklkpHewCust1
0047: lnklkpHewCust1.OLD_IP_ID = lnkInvpxref.OLD_IP_ID;
0048: lnklkpHewCust1.YR_DIM_TRAN_CUST = lnkHewTranCustFact.YR_DIM;
0049: lnklkpHewCust1.MO_DIM_TRAN_CUST = lnkHewTranCustFact.MO_DIM;
0050: lnklkpHewCust1.TRAN_CNT = lnkHewTranCustFact.TRAN_CNT;
0051: lnklkpHewCust1.PERIOD = DSLink205.PERIOD;
0052: lnklkpHewCust1.FREQ = DSLink205.FREQ;
0053: lnklkpHewCust1.YR = lnkDATE.YR;
0054: lnklkpHewCust1.MO = lnkDATE.MO;
0055: lnklkpHewCust1.YR_DIM_CUST_FACT = lnkHewCustFact.YR_DIM;
0056: lnklkpHewCust1.MO_DIM_CUST_FACT = lnkHewCustFact.MO_DIM;
0057: lnklkpHewCust1.ADDR_CHNG_IND = lnkHewCustFact.ADDR_CHNG_IND;
0058: lnklkpHewCust1.COUNT_CHK_RTRN_CNT = lnkHewCustFact1.COUNT_CHK_RTRN_CNT;
0059: lnklkpHewCust1.CHK_WRT_CNT = lnkHewCustFact2.CHK_WRT_CNT;
0060: lnklkpHewCust1.CHK_RTRN_CNT = lnkHewCustFact.CHK_RTRN_CNT;
0061: writerecord 0;
0062: RowRejected0 = 0;
0063: }
0064:
0065: finish {
0066: }
0067:
*** End of Internal Generated Transformer Code
Nitin Jain | India

If everything seems to be going well, you have obviously overlooked something.
koolnitz
Participant
Posts: 138
Joined: Wed Sep 07, 2005 5:39 am

Post by koolnitz »

There are 7 reference links in the lookup stage. For one link, the "Lookup Failure" condition was set to DROP while for others it was CONTINUE. When I changed DROP to CONTINUE, the job got compiled successfully. The job complained even when I tried to change DROP to REJECT!

Is there any rule that all the Lookup Failure conditions should be same? We have some jobs where we have diff conditions for diff reference links!!!

Anyone there to throw some light?
Nitin Jain | India

If everything seems to be going well, you have obviously overlooked something.
ray.wurlod
Participant
Posts: 54607
Joined: Wed Oct 23, 2002 10:52 pm
Location: Sydney, Australia
Contact:

Post by ray.wurlod »

Theoretically you can have a mix of Lookup Failed rules. You may have uncovered a bug in the parallel job compiler. Ask your support provider.
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