IBM Support

Could not load "orchoracle"

Troubleshooting


Problem

When running a paralell job with Oracle Enterprise stage, "Could not load orchoracle" warning appears in job log.

Symptom

Running a job with Oracle Enterprise stage, error message like below appears in DataStage job log.

Item #: 100
Event ID: 1234
Timestamp: 2010-10-10 10:10:10
Type: Warning
User Name: dsadm
Message: node_db2: Warning: the following libraries failed to load: "orchoracle": Could not load "orchoracle":
0509-022 Cannot load module /somewhere/DataStage/PXEngine/lib/liborchoracleaix3.so.
0509-150 Dependent module libclntsh.so could not be loaded.
0509-022 Cannot load module libclntsh.so.
0509-026 System error: A file or directory in the path name does not exist.
0509-022 Cannot load /somewhere/DataStage/PXEngine/lib/liborchoracleaix3.so.
0509-150 Dependent module /somewhere/DataStage/PXEngine/lib/liborchoracleaix3.so could not be loaded..

Cause

Oracle Enterprise stage is not installed or
the Oracle client library libclntsh.so is not in shared library search path.

Resolving The Problem

First make sure Oracle Enterprise stage and Oracle client are installed on all machines that have PXEngine then add the Oracle client library path to shared library path for DataStage.

* How to check if Oracle Enterprise stage is installed

If the Oracle Enterprise stage has been installed properly, there should be some regular library files and symbolic links for it in $APT_ORCHHOME/lib directory (for DataStage 7.5x) or $DSHOME/../DSComponents/bin (for Information Server 8.x and higher).



For example, you will find like below for DataStage 7.5x on HP-UX(Itanium):

/opt/DS753/Ascential/DataStage/PXEngine/lib$ ls -l *oracle*
-rwxr-xr-x 1 dsadm dstage 6542352 Nov 6 2007 liborchoracle10ghpia64.so
-rwxr-xr-x 1 dsadm dstage 6542320 Nov 6 2007 liborchoracle9ihpia64.so
lrwxrwxr-x 1 dsadm dstage 24 Jan 24 2008 liborchoraclehpia64.so -> liborchoracle9ihpia64.so

Another example for DataStage 8.1 on Solaris:
/opt/IS81/IBM/InformationServer/Server/DSComponents/bin$ ls -l *oracle*
-rwxr-xr-x 1 dsadm dstage 1579144 Feb 23 2012 liborchoracle10gsun64.so
lrwxrwxrwx 1 root root 88 Feb 23 2012 orchoracle.so -> /opt/IS81/IBM/InformationServer/Server/DSComponents/bin/liborchoracle10gsun64.so

* How to install Oracle Enterprise stage separately

Execute $APT_ORCHHOME/install/install.liborchoracle (for DataStage 7.5x) or $DSHOME/../DSComponents/install/install.liborchoracle (for Information Server 8.x and higher)

* How to set up Oracle client library path

1. Check if you are using 32-bit DataStage or 64-bit one.

DataStage 7.5x is 64-bit on HP-UX(Itanium), 32-bit on other platforms.

Information Server 8.0.1 is 64-bit on zLinux and HP-UX(Itanium), 32-bit on other platforms.

Information Server 8.1 is 64-bit on AIX, Solaris, HP-UX(Itanium), and zLinux, 32-bit on other platforms.

Information Server 8.5 and 8.7 are 64-bit on AIX, Solaris, HP-UX(Itanium), zLinux, and 64-bit Linux (x86_64), 32-bit on Windows and 32-bit Linux(x86_32).

Information Server 9.1 and 11.3 are 32-bit on Windows, 64-bit on other platforms.

2. Make sure that the same version of Oracle client library is installed on all machines listed in APT configuration file.

Check if libclntsh.{so|a|sl} is in $ORACLE_HOME/lib32 (for 32-bit DataStage) or $ORACLE_HOME/lib (for 64-bit DataStage). If not, ask Oracle DBA to generate it by running $ORACLE_HOME/bin/genclntsh command.

3. Ensure the Oracle client library is in shared library path.

Add next line for 32-bit DataStage

LIBPATH=$LIBPATH:$ORACLE_HOME/lib32; export LIBPATH

or next line for 64-bit DataStage

LIBPATH=$LIBPATH:$ORACLE_HOME/lib; export LIBPATH

to $DSHOME/dsenv file.

Note:

  • LIBPATH in above example is shared library path variable for AIX, please use LD_LIBRARY_PATH for Linux, Solaris, and HP-UX(Itanium), SHLIB_PATH for HP-UX(PA-RISC) instead.
  • It is recommended to set ORACLE_HOME and NLS_LANG too in dsenv, cf "Configuring access to Oracle databases".

4. Check if there's no problem to find all the necessary libraries for the Oracle Enterprise stage library reported to fail to load in DataStage job log.

- Start a fresh telnet session.

- Go to $DSHOME directory and source dsenv file.


    cd `cat /.dshome`

    . ./dsenv # dot space dot slash dsenv


- Make sure the Oracle library path is in shared library path using

    echo $LIBPATH # on AIX

    echo $LD_LIBRARY_PATH # on Linux, Solaris, HP-UX(Itanium)


- Run ldd command for the Oracle Enterprise stage library failed to load.

    ldd $APT_ORCHHOME/lib/liborchoracleaix3.so # for DataStage 7.5.x on AIX

    ldd $DSHOME/../DSComponents/bin/orchoracle10g.o # for DataStage 8.5 on AIX

    Note: Library name can differ depending on DataStage version and platforms, please use the one found in "How to check if Oracle Enterprise stage is installed" section.


In MPP configuration with DB2 DPF, some customers do not install Oracle client in DB2 boxes as they don't want to run Oracle Enterprise stage processes in DB2 nodes. In this case, above warning appears for only DB2 nodes and can be ignored or suppressed using message handler.

[{"Product":{"code":"SSVSEF","label":"IBM InfoSphere DataStage"},"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Component":"--","Platform":[{"code":"PF027","label":"Solaris"},{"code":"PF016","label":"Linux"},{"code":"PF010","label":"HP-UX"},{"code":"PF002","label":"AIX"}],"Version":"9.1;8.7;8.5;8.1;8.0.1;7.5.3;7.5.2;7.5.1","Edition":"","Line of Business":{"code":"LOB10","label":"Data and AI"}}]

Document Information

Modified date:
16 June 2018

UID

swg21444371