Crazy Transformer error. Any help is greatly appreciated

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
bikan
Premium Member
Premium Member
Posts: 128
Joined: Thu Jun 08, 2006 5:27 am

Crazy Transformer error. Any help is greatly appreciated

Post 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?
ray.wurlod
Participant
Posts: 54607
Joined: Wed Oct 23, 2002 10:52 pm
Location: Sydney, Australia
Contact:

Post 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.
IBM Software Services Group
Any contribution to this forum is my own opinion and does not necessarily reflect any position that IBM may hold.
bikan
Premium Member
Premium Member
Posts: 128
Joined: Thu Jun 08, 2006 5:27 am

Post 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
Post Reply