Page 1 of 1

Crazy Transformer error. Any help is greatly appreciated

Posted: Fri May 23, 2008 6:30 am
by bikan
I have been using 7.5.x for quite some time and never came across this problem which was trobling me a big time.

I have a transformer in the job with a good number of transformations and conversions, the problem is transformer just wont compile and the reason it gives is crazy

0000 05:16:15(682) <main_program> Error when checking composite operator: Output from subprocess: "/data/ds/Projects/dpr_gwd_dev/RT_BP340.O/V52S0_CopyOfdjpBIR2XFMOHC_WhirlAMBS2A_16_tfpAMBS2.C", line 1520.13: 1540-0825 (W) The character "^@" is not allowed.
"/data/ds/Projects/dpr_gwd_dev/RT_BP340.O/V52S0_CopyOfdjpBIR2XFMOHC_WhirlAMBS2A_16_tfpAMBS2.C", line 1520.22: 1540-0825 (W) The character "^A" is not allowed.

##W TBLD 000000 05:16:15(683) <main_program> Error when checking composite operator: Output from subprocess: "/data/ds/Projects/dpr_gwd_dev/RT_BP340.O/V52S0_CopyOfdjpBIR2XFMOHC_WhirlAMBS2A_16_tfpAMBS2.C", line 1520.14: 1540-0063 (S) The text "710" is unexpected.

##I TFCP 000000 05:16:15(684) <transform> Error when checking composite operator: /usr/vacpp/bin/xlC_r -O -I/dstage/dsadm/Ascential/DataStage/PXEngine/include -O -c -qspill=32704 /data/ds/Projects/dpr_gwd_dev/RT_BP340.O/V52S0_CopyOfdjpBIR2XFMOHC_WhirlAMBS2A_16_tfpAMBS2.C -o /data/ds/Projects/dpr_gwd_dev/RT_BP340.O/V52S0_CopyOfdjpBIR2XFMOHC_WhirlAMBS2A_16_tfpAMBS2.tmp.o.
##E TCOS 000029 05:16:15(685) <main_program> Creation of a step finished with status = FAILED. (CopyOfdjpBIR2XFMOHC_WhirlAMBS2A_16.tfpAMBS2)


I sneaked into the generated .C file and i am bewildered indeed to find the ^A characters. This is the third or fourth time we are facing this prob, and every time we did some adhoc solutions like recoding the job or moving some older correct version etc etc, but the solution or the cause of the problem is not found.

The lines of .C file i will paste here

+1515 if(input0DecimalAMBS_DATE_OPENED[0]!=stage0InterVar0_0)
+1516 {
+1517 local0InterVar0_1=APT_ConvertFromString(input0DecimalAMBS_DATE_OPENED[0].asString());
+1518 localVar1690 =local0InterVar0_1;
+1519 localVar1690.trimPadding(UChar(' '), APT_UString::eBeginning);
+1520 localVar710 =loc^AlVar1690;
+1521 localVar1710.trimPadding(UChar(' '), APT_UString::eEnd);
+1522 localVar1730 =localVar1710;
+1523 localVar1740=((1>=1)?localVar1730.substring(1-1,4):APT_UString(""));
+1524 local0InterVar0_2=APT_strtod(localVar1740,&pUCharBuf);


As I have already said, I am lost in no mans land.
Any idea ,Where can I raise a ticket to IBM DS product support group?

Posted: Fri May 23, 2008 6:36 am
by ray.wurlod
Through your support provider, probably the folks who sold DataStage to you. The variable names localVarxxx are generated names in the code, and should not have ^A (presumably Ctrl-A) instead of a. Ctrl-@ is one way to represent NUL (0x00); it's not clear from what you posted where this is occurring, but suggests that some string has been terminated abnormally early in the generated source code.

Posted: Fri May 23, 2008 6:50 am
by bikan
Hi Ray,

I generally occurs in one of the stage variable definitions. And I can confidently say that there is noting malicious in the stage variable definition that should have caused this. FYR, I am pasting "the" stage variable definition that's causing the problem "this" time,

If lnkjonAmbs.AMBS_DATE_OPENED <>0 Then If TrimB( TrimF (lnkjonAmbs.AMBS_DATE_OPENED)) [1,4] /4 =0 Then If TrimLeadingTrailing(lnkjonAmbs.AMBS_DATE_OPENED) [5,7] > 0 And TrimLeadingTrailing(lnkjonAmbs.AMBS_DATE_OPENED) [5,7] <367 Then 1 Else 0 Else If TrimLeadingTrailing(lnkjonAmbs.AMBS_DATE_OPENED) [5,7] >0 And TrimLeadingTrailing(lnkjonAmbs.AMBS_DATE_OPENED) [5,7] <366 Then 1 Else 0 Else 0

As you can easily see , I am checking for a date which comes as Dec(7) in the YYYYXXX format, where XXX is the offset of days from starting of the year