Symptoms
You run a workspace on Linux and receive the following messages in the translation log:
ORACLE Reader: Using Rich geometry.
DLL '/opt/fmeserver/Server/fme/plugins/fmeocilink.so' was found but could not be loaded. Ensure that all the dependent modules exist for this DLL
Oracle client libraries could not be loaded. Ensure that the client is installed and properly configured, and the system PATH environment variable includes the file path to your Oracle client.
Cause
A number of possibilities:
- An Oracle client was not installed.
- FME 64-bit is attempting to use a 32-bit Oracle client.
- The libslntsh.so is not present or has a specific name libslntsh.so.x.x
- The libslntsh.so is not referenced in the LD_LIBRARY_PATH environment variable.
Resolution
- Locate libslntsh.so.x.x and make a link to it with the less specific name libslntsh.so
- ln -s libclntsh.so.x.y.z libclntsh.so
- Update the LD_LIBRARY_PATH environment variable so that it references the directory with those .so files.
FME should now work with Oracle. If it doesn't then you can determine what dependencies the library is missing by running the List dynamic dependencies command:
- ldd /usr/share/fmeserver/Server/fme/plugins/fmeocilink.so
Here is the output of ldd for one of our installations with a working Oracle reader/writer: linux-vdso.so.1 => (0x00007fff533ff000)
librwtool_fme.so => not found
libfmeobj.so => not found
libdl.so.2 => /lib/libdl.so.2 (0x00007f364ae28000)
libpthread.so.0 => /lib/libpthread.so.0 (0x00007f364ac0c000)
libclntsh.so => /opt/instantclient11_1/libclntsh.so (0x00007f36488c4000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f36485b6000)
libm.so.6 => /lib/libm.so.6 (0x00007f3648331000)
libc.so.6 => /lib/libc.so.6 (0x00007f3647fbf000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00007f3647da6000)
/lib64/ld-linux-x86-64.so.2 (0x00007f364b249000)
libnnz11.so => /opt/instantclient11_1/libnnz11.so (0x00007f3647949000)
libnsl.so.1 => /lib/libnsl.so.1 (0x00007f3647730000)
libaio.so.1 => /lib/libaio.so.1 (0x00007f364752d000)