APPX Software Library

Oracle, SQL Server and Other Databases

Oracle Instant Client and Appx

Try and start appx in character mode. Run the character mode client because the error will not be displayed if you are running the Appx Desktop Client (java client).

The appx.oracle engine might give you an error such as:

# /vg01/appx.426/appx.oracle

/usr/lib/dld.sl: Can't open shared library:

/vg01/oracle/oracle-9/OraHome1/lib32/libclntsh.sl.9.0

/usr/lib/dld.sl: No such file or directory Abort #

You could also run the command (if you have it on the system of course) ldd:

# ldd /vg01/appx.426/appx.oracle

 =>

/usr/lib/libc.2 =>      /usr/lib/libc.2

/usr/lib/libdld.2 =>    /usr/lib/libdld.2

/usr/lib/libc.2 =>      /usr/lib/libc.2

/usr/lib/libm.2 =>      /usr/lib/libm.2

/usr/lib/libnss_dns.1 =>        /usr/lib/libnss_dns.1

/usr/lib/libdld.2 =>    /usr/lib/libdld.2

/usr/lib/libc.2 =>      /usr/lib/libc.2

/usr/lib/libpthread.1 =>        /usr/lib/libpthread.1

/usr/lib/librt.2 =>     /usr/lib/librt.2

/usr/lib/libcl.2 =>     /usr/lib/libcl.2

/usr/lib/libisamstub.1 =>       /usr/lib/libisamstub.1

/usr/lib/libdld.2 =>    /usr/lib/libdld.2

/usr/lib/dld.sl: Can't open shared library:

/vg01/oracle/oracle-9/OraHome1/lib32/libclntsh.sl.9.0

/usr/lib/dld.sl: No such file or directory

An alternative to ldd is strace and truss, here is the syntax I've used. However, none of these tools (ldd, strace, truss) should be needed, just attempting to start APPX in character mode should expose the missing oracle library and library path.

# strace -o/tmp/appx.oracle.out /usr/local/appx.oracle

or

# truss -o/tmp/appx.oracle.out /usr/local/appx.oracle

Grepping that file might give you something like:

# grep libclntsh /tmp/appx.oraacle.out

open("/lib/tls/libclntsh.so.9.0", O_RDONLY) = -1 ENOENT (No such file or directory)

Do a file system search on the oracle file libclntsh.sl.9.0

# find / -name libclntsh.sl.9.0 -print

You should get something back such as:

/usr/lib/libclntsh.sl.9.0

You can then create the directory structure that APPX is wanting and create a link from the real libclntsh.sl.9.0 file into the newly created directory like so:

==================================== mkdir -p /vg01/oracle/oracle-9/OraHome1/lib32/ cd /vg01/oracle/oracle-9/OraHome1/lib32/ ln -s /usr/lib/libclntsh.sl.9.0 libclntsh.sl.9.0

Then you should be able to start appx. If APPX complains about another library that is missing, then you would repeat the process described above.

Ohters have also used the same idea to mix and APPX built against Oracle version x when you have Oracle version y installed.

For instance, say you have oracle 10 installed, but your APPX install is looking for Oracle 9 libraries and giving you and error such as:

Can't open shared library:

/vg01/oracle/oracle-9/OraHome1/lib32/libclntsh.sl.9.0

If you don't have the Oracle 9 Client library installed, you won't find it on the file system, what you could do is find the corresponding version 10 file and create a link to it. For instance you might have:

/usr/lib/libclntsh.sl.10.0

In that case you would create a directory and create a link with the version 9 name:

==================================== mkdir -p /vg01/oracle/oracle-9/OraHome1/lib32/ cd /vg01/oracle/oracle-9/OraHome1/lib32/ ln -s /usr/lib/libclntsh.sl.10.0 libclntsh.sl.9.0

That way APPX built against Oracle 9, would see the Oracle 10 client library, and think it was Oracle Client 9.