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.
|