Hello.
I'm trying to call an external c procedure from pl/sql. I've read Oracle Documentation on it, and I've followed all the steps.
You must create a dinamyc library, OK, I've done it (extproc.so).
Then you must add some entries to listener.ora and tnsnames.ora. Looks like that:
TNSNAMES.ORA:
NAME.WORLD =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = host.com)(PORT =
1525))
)
(CONNECT_DATA =
(SERVICE_NAME = NAME.world)
)
)
extproc_connection_data =
(DESCRIPTION =
(ADDRESS =
(PROTOCOL = IPC)
(KEY = extproc_key)
)
(CONNECT_DATA = (SID=extproc_agent))
)
LISTENER.ORA:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = host.com)(PORT =
1525))
(ADDRESS = (PROTOCOL = IPC)(KEY=extproc_key))
)
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = NAME.world)
(ORACLE_HOME =
(...)/8i)
(SID_NAME = NAME)
)
(SID_DESC =
(SID_NAME=extproc_agent)
(ORACLE_HOME =
(...)/8i)
(PROGRAM=extproc)
)
)
Well, I've succesfully created a library named extproc_lib that references to the dll absolute path.
And I've compiled a pl/sql function (sysrun) which is a public name for the external procedure function.
But when I try to execute it, I receive this error:
ORA-28575: unable to open RPC connection to external procedure agent
ORA-06512: at "SYS_TOOLS.SYSRUN", line 0
ORA-06512: at line 5
The documentation says it may be a listener error, but I cannot find where.
Any ideas?
Thanks
I'm trying to call an external c procedure from pl/sql. I've read Oracle Documentation on it, and I've followed all the steps.
You must create a dinamyc library, OK, I've done it (extproc.so).
Then you must add some entries to listener.ora and tnsnames.ora. Looks like that:
TNSNAMES.ORA:
NAME.WORLD =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = host.com)(PORT =
1525))
)
(CONNECT_DATA =
(SERVICE_NAME = NAME.world)
)
)
extproc_connection_data =
(DESCRIPTION =
(ADDRESS =
(PROTOCOL = IPC)
(KEY = extproc_key)
)
(CONNECT_DATA = (SID=extproc_agent))
)
LISTENER.ORA:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = host.com)(PORT =
1525))
(ADDRESS = (PROTOCOL = IPC)(KEY=extproc_key))
)
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = NAME.world)
(ORACLE_HOME =
(...)/8i)
(SID_NAME = NAME)
)
(SID_DESC =
(SID_NAME=extproc_agent)
(ORACLE_HOME =
(...)/8i)
(PROGRAM=extproc)
)
)
Well, I've succesfully created a library named extproc_lib that references to the dll absolute path.
And I've compiled a pl/sql function (sysrun) which is a public name for the external procedure function.
But when I try to execute it, I receive this error:
ORA-28575: unable to open RPC connection to external procedure agent
ORA-06512: at "SYS_TOOLS.SYSRUN", line 0
ORA-06512: at line 5
The documentation says it may be a listener error, but I cannot find where.
Any ideas?
Thanks