Technote (troubleshooting)
Problem(Abstract)
Jobs on MPP environment fail to run reporting error:
Teradata_CC,0: Error loading connector library libcctera12.so libcliv2.so: wrong ELF Class: ELFCLASS32 (CC_LoadedConnector::loadlibrary, file CC_ConnectorFactory.cpp, line 1,525)(pxbridge.C:7466)
Cause
On MPP environments the paths containing DataStage binaries as well as other Clients binaries are NFS mounted to the compute nodes. During the Teradata client installation process on the Conductor a symbolic link is created in /usr/lib64 to point to libcliv2.so in the Teradata install home. If /usr/lib64 is not NFS mounted to the compute nodes this symbolic link will not exist on compute nodes.
This symbolic link only exists on the server where Teradata client was installed.
cd /usr/lib64
$ ls -l libcliv2.so
lrwxrwxrwx 1 root root 43 2012-03-27 10:10 libcliv2.so -> /opt/teradata/client/13.0/lib64/libcliv2.so
Diagnosing the problem
After setting the environment variables for DataStage you can test the existence of required Teradata binaries by changing directory to /opt/IBM/InformationServer/DSComponents/bin and running the ldd command:
ldd libcctera12.so (or libcctera.so for variant 8.1)
$ ldd libcctera12.so
libfcl.so => /opt/app/IBM/IS/Server/PXEngine/lib/libfcl.so (0x00002b3385a12000)
libicuuc.so.32 => /opt/app/IBM/IS/Server/PXEngine/lib/libicuuc.so.32 (0x00002b3385d00000)
libcliv2.so => not found
libtelapi.so => /opt//teradata/client/13.0/tbuild/lib64/libtelapi.so (0x00002b338604b000)
libnsl.so.1 => /lib64/libnsl.so.1 (0x00002b33861bf000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00002b33863d8000)
libdl.so.2 => /lib64/libdl.so.2 (0x00002b33865f3000)
libstdc++.so.6 => /opt/app/IBM/IS/ASBNode/apps/proxy/cpp/linux-all-x86_64/libstdc++.so.6 (0x00002b33867f7000)
libm.so.6 => /lib64/libm.so.6 (0x00002b33869f6000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00002b3386c79000)
libc.so.6 => /lib64/libc.so.6 (0x00002b3386e87000)
libicui18n.so.32 => /opt/app/IBM/IS/Server/PXEngine/lib/libicui18n.so.32 (0x00002b33871df000)
libicutu.so.32 => /opt/app/IBM/IS/Server/PXEngine/lib/libicutu.so.32 (0x00002b33873fd000)
libicuio.so.32 => /opt/app/IBM/IS/Server/PXEngine/lib/libicuio.so.32 (0x00002b338750c000)
libxml4c.so.56 => /opt/app/IBM/IS/Server/DSComponents/lib/libxml4c.so.56 (0x00002b3387619000)
liborchx86_64.so => /opt/app/IBM/IS/Server/PXEngine/lib/liborchx86_64.so (0x00002b3387ab6000)
liborchcorex86_64.so => /opt/app/IBM/IS/Server/PXEngine/lib/liborchcorex86_64.so (0x00002b3388646000)
libicudata.so.32 => /opt/app/IBM/IS/Server/PXEngine/lib/libicudata.so.32 (0x00002b338889c000)
libpxicu.so => /opt//teradata/client/13.0/tbuild/lib64/libpxicu.so (0x00002b338962b000)
/lib64/ld-linux-x86-64.so.2 (0x00002b3385531000)
liborchmonitorx86_64.so => /opt/app/IBM/IS/Server/PXEngine/lib/liborchmonitorx86_64.so (0x00002b338972e000)
If you see any "not found" messages, this means the files either do not exist or there are permission problems with the file.
Resolving the problem
In this case, to resolve this issue, you can either A. create the symbolic link in the /usr/lib64 OR B. set the LD_LIBRARY_PATH to point the the actual binary in the Teradata Home/lib directory.
A.
cd /usr/lib64
ln -s /opt//teradata/client/13.0/lib64/libclib2.so libcliv2.so
B.
in $DSHOME/dsenv add the path of libcliv2.so to LD_LIBRARY_PATH and restart DataStage
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt//teradata/client/13.0/lib64
Rate this page:
Copyright and trademark information
IBM, the IBM logo and ibm.com are trademarks of International Business Machines Corp., registered in many jurisdictions worldwide. Other product and service names might be trademarks of IBM or other companies. A current list of IBM trademarks is available on the Web at "Copyright and trademark information" at www.ibm.com/legal/copytrade.shtml.