Oracle External Procedures - Page 5
|Oracle External Procedures|
* ORA-28575: unable to open RPC connection...,
The server's listener configuration is still faulty. Sometimes restarting the listener helps. Ensure that the server's RPC daemons are running, e.g.
- $ ps -ef | grep rpc | grep -v grep
- should display at least one rpc process, often something this on Solaris:
- root 495 1 0 13:16:32 ? 0:00 /usr/sbin/rpcbind
If you are still getting this problem, restart the listener. This often helps.
- $ lsnrctl stop && lsnrctl start
* ORA-28595: Extproc agent : Invalid DLL Path
By default, Oracle only considers DLL's and SO's in the path $ORACLE_HOME/bin and $ORACLE_HOME/lib. If a share object or DLL is installed somewhere else on the system, add the following statement to the listener configuration file $TNS_ADMIN/listener.ora:
If you want to be unspecific (Note that this may have security implications):
If you know where your SO's or DLL are installed:
- ENVS="EXTPROC_DLLS=<absolute directoy>"
After having added it, remember to restart the listener service.
* ORA-XXXXX: ...wrong ELF class: ELFCLASS32
You are probably running Oracle on a 64-bit environment and you may have compiled the source code for 64 bits (using the -m64 option). However, the code was linked against a 32-bit library.
Ensure that $ORACLE_HOME/lib appears before $ORACLE_HOME/lib32 in the LD_LIBRARY_PATH environment variable.
Debugging External Procedures
Oracle provides the DEBUG_EXTPROC package which allows you to launch the external procedure and return the PID. With this PID you can hook into the external procedure using a debugger. Needless to say, this is only useful if your operating system supports debuggers that can hook into running processes. This package needs to be installed by running the dbgextp.sql script from the $ORACLE_HOME/demo directory.