IBM Support

Error compiling Infosphere DataStage jobs with transformer stage.

Question & Answer


Question

Output from transformer compilation follows: ##I IIS-DSEE-TFCN-00001 09:12:38(000) IBM WebSphere DataStage Enterprise Edition 8.1.0.5000 Copyright (c) 2001, 2005-2008 IBM Corporation. All rights reserved ##I IIS-DSEE-TFCN-00006 09:12:38(001) conductor uname: -s=Linux; -r=2.6.18-128.el5; -v=#1 SMP Wed Dec 17 11:41:38 EST 2008; -n=alpha.la14.com; -m=x86_64 ##I IIS-DSEE-TOSH-00002 09:12:38(002) orchgeneral: loaded ##I IIS-DSEE-TOSH-00002 09:12:38(003) orchsort: loaded ##I IIS-DSEE-TOSH-00002 09:12:38(004) orchstats: loaded ##W IIS-DSEE-TOSH-00049 09:12:38(007) Parameter specified but not used in flow: DSPXWorkingDir ##E IIS-DSEE-TBLD-00076 09:12:39(000) Error when checking composite operator: Subprocess command failed with exit status 256. ##E IIS-DSEE-TFSR-00019 09:12:39(001) Could not check all operators because of previous error(s) ##W IIS-DSEE-TFTM-00012 09:12:39(002) 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 09:12:39(003) Error when checking composite operator: Possible range limitation. ##W IIS-DSEE-TFEV-00023 09:12:39(004) Error when checking composite operator: Implicit conversion from source type "Int32" to result type "Decimal". ##W IIS-DSEE-TFEV-00023 09:12:39(005) Error when checking composite operator: Implicit conversion from source type "Decimal" to result type "Int16". ##W IIS-DSEE-TFEV-00023 09:12:39(006) Error when checking composite operator: Implicit conversion from source type "Decimal" to result type "Int16". ##W IIS-DSEE-TBLD-00000 09:12:39(007) Error when checking composite operator: Output from subprocess: / ##W IIS-DSEE-TBLD-00000 09:12:39(008) Error when checking composite operator: Output from subprocess: usr ##W IIS-DSEE-TBLD-00000 09:12:39(009) Error when checking composite operator: Output from subprocess: / ##W IIS-DSEE-TBLD-00000 09:12:39(010) Error when checking composite operator: Output from subprocess: bin ##W IIS-DSEE-TBLD-00000 09:12:39(011) Error when checking composite operator: Output from subprocess: / ##W IIS-DSEE-TBLD-00000 09:12:39(012) Error when checking composite operator: Output from subprocess: ld ##I IIS-DSEE-TBLD-00079 09:12:39(013) Error when checking composite operator: g++ -L/opt/IBM/InformationServer/Server/Projects/Enterprise/RT_BP84.O/ -L/opt/IBM/InformationServer/Server/PXEngine/lib -L/opt/IBM/InformationServer/Server/PXEngine/user_lib -shared -Wl,-Bsymbolic,--allow-shlib-undefined -lorchi686 -lorchcorei686 -lorchbuildopi686 /opt/IBM/InformationServer/Server/Projects/Enterprise/RT_BP84.O/V0S19_Dim_Canal_TR_Completa_Nuevos.tmp.o -o /opt/IBM/InformationServer/Server/Projects/Enterprise/RT_BP84.O/V0S19_Dim_Canal_TR_Completa_Nuevos.so. ##W IIS-DSEE-TBLD-00000 09:12:39(014) Error when checking composite operator: Output from subprocess: :

Cause

By default 64 bit Linux systems compile 64 bit binaries. As of this writing (DS 8.1) DataStage is still a 32 bit application. Although it can run on 64 bit Linux machines, the compiler is required to produce 32 bit binaries.

Answer

Summary:

APT_COMPILEOPT = -O -fPIC -Wno-deprecated -c -m32


APT_LINKOPT = -m32 -shared -Wl,-Bsymbolic,--allow-shlib-undefined
APT_COMPILER = g++
APT_LINKER = g++

First off, here's a quick script to test the default compiler configuration. It will either out "32 bits" or "64 bits".


bits.sh
=======================================
cat <<EOF > /tmp/test_bits.c
#include <stdio.h>
main() { printf("%d bits\n", 8 * sizeof(char *));}
EOF
(cd /tmp; make test_bits && ./test_bits; rm -f test_bits test_bits.c)
=======================================

If the output is "32 bits" then this technote does not apply. If the output is 64 bits then the script below tests the compiler's option to produce 32 bit output:

bits.sh
=======================================
cat <<EOF > /tmp/test_bits.c
#include <stdio.h>
main() { printf("%d bits\n", 8 * sizeof(char *));}
EOF
export CC="g++"
export CFLAGS="-O -fPIC -m32"
(cd /tmp; make test_bits && ./test_bits; rm -f test_bits test_bits.c)
=======================================

If the second script prints "32 bits", then the above APT environment variables should resolve the probelm.

[{"Product":{"code":"SSH2AX","label":"InfoSphere DataStage Pack for SAS"},"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Component":"--","Platform":[{"code":"PF016","label":"Linux"}],"Version":"8.0;8.1","Edition":"","Line of Business":{"code":"LOB10","label":"Data and AI"}}]

Document Information

Modified date:
23 June 2018

UID

swg21414560