Calling External Dll Issue - RPC
a.) A Win32 .dll which contains one function 'GetFactorial' was
created
using Delphi, and the dll was placed at 'C:\oracle\Dll' at the
oracle
server.
b.) A Oracle Library was created using : Create Or replace
library
FACTDLL as 'C:\oracle\Dll\FactD.dll'
c.) An Oracle Function was created within the package TEST1 as :
function NewFacto(n in Number) return number is EXTERNAL
NAME "GetFactorial"
LIBRARY FACTDLL
LANGUAGE C;
d) At oracle server, RPC service, OracleTNSListener were active.
e) Finally I call the function as
Select TEST1.NewFacto(3) from dual;
But this returns error :
ORA-28575 : unable to open RPC connection to external procedure
agent.
It seems , ORA-28575 is related to invalid configuration
of 'listener.ora'
file at the
server, for the external procedure agent 'EXTPROC.EXE' [in bin
folder]
which handles external procedures.
Have tried multiple options with 'listener.ora'
and 'tnsnames.ora' but
still
the same error occurs.
Am including my listener, tnsnames configuration at server below.
Please help me out
thanx and regs
nitin koshy
# TNSNAMES.ORA
-----------------
INST1_HTTP.COSMICProcess.COSMICSOFT.COM =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = Processserver)(PORT =
1521))
)
(CONNECT_DATA =
(SERVER = SHARED)
(SERVICE_NAME = SASMD.COSMICSOFT)
(PRESENTATION = http://admin)
)
)
INST1_HTTP =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = Processserver)(PORT =
1521))
)
(CONNECT_DATA =
(SERVER = SHARED)
(SERVICE_NAME = SASMSERV.COSMICSOFT.COM)
(PRESENTATION = http://admin)
)
)
SASMD.COSMICProcess.COSMICSOFT.COM =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = Processserver)(PORT =
1521))
)
(CONNECT_DATA =
(SERVICE_NAME = SASMD.COSMICSOFT)
)
)
EXTPROC_CONNECTION_DATA.COSMICProcess.COSMICSOFT.COM =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(Key = EXTPROC0))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
SASMSERV =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = Processserver)(PORT =
1521))
)
(CONNECT_DATA =
(SERVICE_NAME = SASMSERV.COSMICSOFT.COM)
)
)
# TNSNAMES.ORA
---------------
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = Processserver)(PORT =
1521))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = SASMSERV.COSMICSOFT.COM)
(ORACLE_HOME = C:\oracle\ora81)
(SID_NAME = SASMSERV)
)
(SID_DESC =
(GLOBAL_DBNAME = SASMD.COSMICSOFT)
(ORACLE_HOME = C:\oracle\ora81)
(SID_NAME = SASMD)
)
(SID_DESC =
(PROGRAM = C:\oracle\ora81\bin\extproc.exe)
(SID_NAME = PLSExtProc)
(ORACLE_HOME = C:\oracle\ora81)
)
)