Compilation failing at PX Transformer

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
DS4DRIVER
Premium Member
Premium Member
Posts: 39
Joined: Thu Oct 30, 2003 1:37 pm

Compilation failing at PX Transformer

Post by DS4DRIVER »

Our Dev environment is on 7.5.2 and UAT is on 7.5

I have a job that compiles and runs successfully in Dev and Fails to even Compile in UAT. The following is the Compilation error that is showing up at PX Transformer.

Output from transformer compilation follows:

##I TFCN 000001 14:55:42(000) <main_program>
Ascential DataStage(tm) Enterprise Edition 7.5.0.1
Copyright (c) 2004, 1997-2004 Ascential Software Corporation.
All Rights Reserved


##I TUTL 000031 14:55:42(001) <main_program> The open files limit is 2000; raising to 2147483647.
##I TOSH 000002 14:55:42(002) <main_program> orchgeneral: loaded
##I TOSH 000002 14:55:42(003) <main_program> orchsort: loaded
##I TOSH 000002 14:55:42(004) <main_program> orchstats: loaded
##I TFSC 000001 14:55:42(007) <main_program> APT configuration file: /opt/dstage/Ascential/DataStage/Configurations/db2_2X4.apt
##I TUTL 000031 14:55:43(000) <node_node3> The open files limit is 2000; raising to 2147483647.
##E TBLD 000000 14:55:45(000) <main_program> Error when checking composite operator: Subprocess command failed with exit status 256
##E TFSR 000019 14:55:45(001) <main_program> Could not check all operators because of previous error(s)
##W TFCP 000000 14:55:45(002) <transform> Error when checking composite operator: The number of reject datasets "0"is less than the number of input datasets "1".
##W TBLD 000000 14:55:45(003) <main_program> Error when checking composite operator: Output from subprocess: "/opt/dstage/Ascential/DataStage/Projects/PH2_CMODS/RT_BP1819.O/V0S93_Upd_MORTGAGE_LOAN_RTLOCK_EXPIR_DT_xfm.C", line 518.94: 1540-0064 (S) Syntax error: ")" was expected but ";" was found.

##I TFCP 000008 14:55:45(004) <transform> Error when checking composite operator: /usr/vacpp/bin/xlC_r -I/opt/dstage/Ascential/DataStage/PXEngine/include -+ -O -g -c /opt/dstage/Ascential/DataStage/Projects/PH2_CMODS/RT_BP1819.O/V0S93_Upd_MORTGAGE_LOAN_RTLOCK_EXPIR_DT_xfm.C -o /opt/dstage/Ascential/DataStage/Projects/PH2_CMODS/RT_BP1819.O/V0S93_Upd_MORTGAGE_LOAN_RTLOCK_EXPIR_DT_xfm.tmp.o
##E TCOS 000029 14:55:45(005) <main_program> Creation of step finished with status = FAILED (Upd_MORTGAGE_LOAN_RTLOCK_EXPIR_DT.xfm)

*** Internal Generated Transformer Code follows:
0001: //
0002: // Generated file to implement the V0S93_Upd_MORTGAGE_LOAN_RTLOCK_EXPIR_DT_xfm transform operator.
0003: //
0004:
0005: // define our input/output link names
0006: inputname 0 lnk_CurrdayAndPrevday_Loans;
0007: outputname 0 lnk_UpdCurrdayLoans;
0008:
0009: initialize {
0010: // define our row rejected variable
0011: int8 RowRejected0;
0012:
0013: // define our null set variable
0014: int8 NullSetVar0;
0015:
0016: // declare our intermediate variables for this section
0017: date InterVar0_0;
0018: string InterVar0_1;
0019: string InterVar0_2;
0020: string InterVar0_3;
0021: string InterVar0_4;
0022: string InterVar0_5;
0023:
0024: // initialise constant values which require conversion
0025: InterVar0_0 = date_from_string("1900-01-01");
0026: InterVar0_1 = " ";
0027: InterVar0_2 = "B";
0028: InterVar0_3 = "GUA";
0029: InterVar0_4 = "1900-01-01";
0030: InterVar0_5 = "%yyyy-%mm-%dd";
0031: // Stage variable declaration and initialisation
0032: date StageVar0_OrigRtLockExpirDt;
0033: StageVar0_OrigRtLockExpirDt = date_from_string("2001-01-01");
0034: }
0035:
0036: mainloop {
0037: // initialise our row rejected variable
0038: RowRejected0 = 1;
0039:
0040: // evaluate the stage variables first
0041: if (notnull(lnk_CurrdayAndPrevday_Loans.PREV_RTLOCK_EXPIR_DT)) {
0042: if ((lnk_CurrdayAndPrevday_Loans.PREV_RTLOCK_EXPIR_DT != InterVar0_0)) {
0043: StageVar0_OrigRtLockExpirDt = lnk_CurrdayAndPrevday_Loans.RTLOCK_EXPIR_DT;
0044: } else {
0045: if ((trimc_string(lnk_CurrdayAndPrevday_Loans.RTLOCK_STAT , InterVar0_1 , InterVar0_2) == InterVar0_3)) {
0046: StageVar0_OrigRtLockExpirDt = lnk_CurrdayAndPrevday_Loans.RTLOCK_EXPIR_DT;
0047: } else {
0048: StageVar0_OrigRtLockExpirDt = date_from_string(InterVar0_4 , InterVar0_5);
0049: }
0050: //;
0051: }
0052: //;
0053: } else {
0054: StageVar0_OrigRtLockExpirDt = lnk_CurrdayAndPrevday_Loans.RTLOCK_EXPIR_DT;
0055: }
0056: //;
0057:
0058: // evaluate columns (no constraints) for link: lnk_UpdCurrdayLoans
0059: lnk_UpdCurrdayLoans.RTLOCK_EXPIR_DT = StageVar0_OrigRtLockExpirDt;
0060: writerecord 0;
0061: RowRejected0 = 0;
0062: }
0063:
0064: finish {
0065: }
0066:
*** End of Internal Generated Transformer Code

I checked the compilers in both Dev and UAT

7.5.2

lslpp -l | grep xlC
xlC.adt.include 6.0.0.0 COMMITTED C Set ++ Application
xlC.aix50.rte 6.0.0.13 COMMITTED C Set ++ Runtime for AIX 5.0
xlC.cpp 5.0.2.0 COMMITTED C for AIX Preprocessor
xlC.msg.en_US.cpp 5.0.2.0 COMMITTED C for AIX Preprocessor
xlC.msg.en_US.rte 6.0.0.0 COMMITTED C Set ++ Runtime
xlC.rte 6.0.0.0 COMMITTED C Set ++ Runtime

Compiler variable values are set to

-+ -O -g -c
/usr/vacpp/bin/xlC_r
/usr/vacpp/bin/xlC_r
-G

7.5
lslpp -l | grep xlC
xlC.adt.include 6.0.0.0 COMMITTED C Set ++ Application
xlC.aix50.rte 6.0.0.13 COMMITTED C Set ++ Runtime for AIX 5.0
xlC.cpp 5.0.2.0 COMMITTED C for AIX Preprocessor
xlC.msg.en_US.cpp 5.0.2.0 COMMITTED C for AIX Preprocessor
xlC.msg.en_US.rte 6.0.0.0 COMMITTED C Set ++ Runtime
xlC.rte 6.0.0.0 COMMITTED C Set ++ Runtime

Compiler variable values are set to

-+ -O -g -c
/usr/vacpp/bin/xlC_r
/usr/vacpp/bin/xlC_r
-G

This is a wierd situation that the job works in 7.5.2 and does not compile in 7.5. My lead is suspecting that there is something wrong in the Transformation logic that i do not see.

There are only two columns from source to target. I am just using one Stage variable with the following expression that gets mapped to one of the Output columns and the other one is just a straight move.

StageVar:

Code: Select all

If IsNotNull(lnk_CurrdayAndPrevday_Loans.PREV_RTLOCK_EXPIR_DT) Then (If lnk_CurrdayAndPrevday_Loans.PREV_RTLOCK_EXPIR_DT <> '1900-01-01' Then lnk_CurrdayAndPrevday_Loans.RTLOCK_EXPIR_DT Else (If Trim(lnk_CurrdayAndPrevday_Loans.RTLOCK_STAT, " ", 'B') = 'GUA' Then lnk_CurrdayAndPrevday_Loans.RTLOCK_EXPIR_DT Else StringToDate('1900-01-01',"%yyyy-%mm-%dd"))  ) Else lnk_CurrdayAndPrevday_Loans.RTLOCK_EXPIR_DT
Experts, Please look into this and let me know what is wrong here, that is making the job to compile and run in 7.5.2 and not compile in 7.5


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

Post by ray.wurlod »

If it works in Dev there can be nothing wrong in the transformation logic.

You must track down what's different between the two environments. This may be completely external to DataStage - your search must range far and wide, and include such things as command and shared library search lists (PATH and LD_LIBRARY_PATH environment variables), compiler and linker settings and options (DataStage environment variables), and so on.
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