parallel routine issue

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
wuruima
Participant
Posts: 65
Joined: Mon Nov 04, 2013 10:15 pm

parallel routine issue

Post by wuruima »

we migrate the DS from 8 to 11, and AIX to Linux.

I need to compile the c++ program in the Linux server.

I used this command to get the .o file, and it's no problem.
g++ -c HexToChar.cpp -o HexToChar.o

however, I failed to compile the parallel job which use the .o file.

And this is the error log. I don't know how to fix.
Do I need to add any option in the g++ command? please kindly help , thanks.



Output from transformer compilation follows:

##I DSEE-OSHC0001 # <osh_conductor>Information: Dynamic Configuration (osh_conductor) Release 4.3.8 June 9, 2014
##I DSEE-OSHC0004 # <osh_conductor>Information: Checking Authorization...
##I DSEE-OSHC0007 # <osh_conductor>Information: Authorized to proceed.
##I IIS-DSEE-TFCN-00001 08:05:06(000) <main_program>
IBM InfoSphere DataStage Enterprise Edition 11.5.0.7555
Copyright (c) 2001, 2005-2015 IBM Corporation. All rights reserved



##I IIS-DSEE-TFCN-00006 08:05:06(001) <main_program> conductor uname: -s=Linux; -r=2.6.32-504.54.1.el6.x86_64; -v=#1 SMP Tue Oct 25 10:27:56 EDT 2016; -n=hkg3vl5049; -m=x86_64
##I IIS-DSEE-TOSH-00002 08:05:06(002) <main_program> orchgeneral: loaded
##I IIS-DSEE-TOSH-00002 08:05:06(003) <main_program> orchsort: loaded
##I IIS-DSEE-TOSH-00002 08:05:06(004) <main_program> orchstats: loaded
##W IIS-DSEE-TOSH-00049 08:05:06(007) <main_program> Parameter specified but not used in flow: DSPXWorkingDir
##E IIS-DSEE-TBLD-00076 08:05:08(000) <main_program> Error when checking composite operator: Subprocess command failed with exit status 256.
##E IIS-DSEE-TFSR-00019 08:05:08(001) <main_program> Could not check all operators because of previous error(s)
##W IIS-DSEE-TFTM-00012 08:05:08(002) <transform> Error when checking composite operator: The number of reject datasets "0" is less than the number of input datasets "1".
##W IIS-DSEE-TFEV-00025 08:05:08(003) <transform> Error when checking composite operator: Converting number to string.
##W IIS-DSEE-TFEV-00023 08:05:08(004) <transform> Error when checking composite operator: Implicit conversion from source type "Int32" to result type "String".
##W IIS-DSEE-TFEV-00025 08:05:08(005) <transform> Error when checking composite operator: Converting string to number.
##W IIS-DSEE-TFEV-00023 08:05:08(006) <transform> Error when checking composite operator: Implicit conversion from source type "String" to result type "Int32".
##W IIS-DSEE-TBLD-00000 08:05:08(007) <main_program> Error when checking composite operator: Output from subprocess: /usr/bin/ld: /hsbc/fms/dswork/script/cpp/lib/HexToChar.o: relocation R_X86_64_32S against `.rodata'
##W IIS-DSEE-TBLD-00000 08:05:08(008) <main_program> Error when checking composite operator: Output from subprocess: can not be used when making a shared object; recompile with -fPIC
/hsbc/fms/dswork/script/cpp/lib/HexToChar.o: could not read symbols: Bad value

##W IIS-DSEE-TBLD-00000 08:05:08(009) <main_program> Error when checking composite operator: Output from subprocess: collect2: ld returned 1 exit status

##I IIS-DSEE-TBLD-00079 08:05:08(010) <transform> Error when checking composite operator: g++ -L/ds/ht30/projects/dpr_ht3001/dpr_fms_dev/RT_BP5910.O/ -L/iis/ht30/InformationServer/Server/PXEngine/lib -L/iis/ht30/InformationServer/Server/PXEngine/user_lib -shared -m64 -lorchx86_64 -lorchcorex86_64 -lorchbuildopx86_64 /hsbc/fms/dswork/script/cpp/lib/HexToChar.o /ds/ht30/projects/dpr_ht3001/dpr_fms_dev/RT_BP5910.O/V0S1_Untitled3_Transformer_1.tmp.o -o /ds/ht30/projects/dpr_ht3001/dpr_fms_dev/RT_BP5910.O/V0S1_Untitled3_Transformer_1.so.
##E IIS-DSEE-TCOS-00029 08:05:08(011) <main_program> Creation of a step finished with status = FAILED. (Untitled3.Transformer_1)

*** Internal Generated Transformer Code follows:
0001: //
0002: // Generated file to implement the V0S1_Untitled3_Transformer_1 transform operator.
0003: //
0004:
0005: // define external functions used
0006: extern string HexToChar(string inHex);
0007:
0008: // define our input/output link names
0009: inputname 0 DSLink27;
0010: outputname 0 DSLink3;
0011:
0012: initialize {
0013: // define our control variables
0014: int8 RowRejected0;
0015: int8 NullSetVar0;
0016:
0017: }
0018:
0019: mainloop {
0020:
0021: // declare our intermediate variables for this section
0022: string InterVar0_0;
0023:
0024: // initialise the rejected row variable
0025: RowRejected0 = 1;
0026:
0027: // evaluate columns (no constraints) for link: DSLink3
0028: InterVar0_0 = DSLink27.a;
0029: DSLink3.MKNFI_GEN_TX_SRC = HexToChar(InterVar0_0);
0030: writerecord 0;
0031: RowRejected0 = 0;
0032: }
0033:
0034: finish {
0035: }
0036:
*** End of Internal Generated Transformer Code
wuruimao
chulett
Charter Member
Charter Member
Posts: 43085
Joined: Tue Nov 12, 2002 4:34 pm
Location: Denver, CO

Post by chulett »

First thing to confirm is that you are using a supported compiler for your platform and version.
-craig

"You can never have too many knives" -- Logan Nine Fingers
UCDI
Premium Member
Premium Member
Posts: 383
Joined: Mon Mar 21, 2016 2:00 pm

Post by UCDI »

try this, or a similar statement with these flags:

g++ -O -fPIC -Wno-deprecated -m64 -mtune=generic -mcmodel=small -shared -m64 -c filename


and consider the c++ modern flags as well if you are writing c++ 11 or c++14 level code; these allow the newer language features and give better warnings and optimizations etc.

-Wall -Wextra -std=c++14 -pedantic-errors -O2 -s
Post Reply