Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

ORA-28575: unable to open RPC connection to external procedure agent

173 views
Skip to first unread message

Sebastian Faust

unread,
May 15, 2007, 11:31:12 AM5/15/07
to
Hi,

since some days we are trying to call an external procedure from
oracle 9.2. When calling the procedure from sqlplus, we get the
following frustrating error since 2 days:
ORA-28575: unable to open RPC connection to external procedure agent.

Our listener.ora has the following structure:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = se)(PORT = 1521))
)
)
)

EXTPROC_LISTENER =
(ADDRESS = (PROTOCOL = IPC)(KEY = test_key))

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = MyDB)
(ORACLE_HOME = /opt/oracle/9.2.0)
(SID_NAME= MyDB_SID)
)
)

SID_LIST_EXTPROC_LISTENER =
(SID_DESC =
(SID_NAME = test_SID)
(ORACLE_HOME = /opt/oracle/9.2.0)
(ENVS="EXTPROC_DLLS=ANY")
(PROGRAM =extproc)
)

LOG_DIRECTORY_LISTENER=/opt/oracle/9.2.0/network/log

The tnsnames.ora has the following structure:
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = test_key))
(CONNECT_DATA = (SID = test_SID))
)

EXTPROC_CONNECTION_DATA.test.se =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = test_key))
(CONNECT_DATA = (SID = test_SID))
)

We created the function with:
CREATE OR REPLACE FUNCTION shell(cmd IN VARCHAR2)
RETURN PLS_INTEGER
AS
LANGUAGE C LIBRARY extprocshell_lib
NAME "extprocsh"
PARAMETERS (cmd STRING, RETURN INT);
/

and the library with
CREATE OR REPLACE LIBRARY extprocshell_lib
AS '/opt/oracle/9.2.0/lib/proceduresso';

Does anyone has an idea what's going wrong here?

Thanks in advance!
Sebastian

joel garry

unread,
May 15, 2007, 8:17:58 PM5/15/07
to
On May 15, 8:31 am, Sebastian Faust <sebastian.fa...@googlemail.com>
wrote:

Does lsnrctl status show your extproc?
Can you tnsping EXTPROC_CONNECTION_DATA ?
What platform/versions? Are those the actual SID's etc. that you are
using?
Does EXTPROC_DLLS= '/opt/oracle/9.2.0/lib/proceduresso' do anything
different?
How about "EXTPROC_DLLS=ANY,LD_LIBRARY_PATH=/opt/oracle/9.2.0/lib/
proceduresso" ?

jg
--
@home.com is bogus.
Oops! http://catless.ncl.ac.uk/Risks/24.66.html#subj3

joel garry

unread,
May 15, 2007, 8:20:01 PM5/15/07
to
Oops, I meant to try setting the library path to /opt/oracle/9.2.0/lib

jg
--
@home.com is bogus.

No .sig here, move along.

Sebastian Faust

unread,
May 16, 2007, 4:38:34 AM5/16/07
to
joel garry schrieb:

> Does lsnrctl status show your extproc?
Yes.

> Can you tnsping EXTPROC_CONNECTION_DATA ?

Yes. This works.

> What platform/versions? Are those the actual SID's etc. that you are
> using?

Sun Solaris. What do you mena with actual SID's?

> Does EXTPROC_DLLS= '/opt/oracle/9.2.0/lib/proceduresso' do anything
> different?

No. Still the same problem.

> How about "EXTPROC_DLLS=ANY,LD_LIBRARY_PATH=/opt/oracle/9.2.0/lib/
> proceduresso" ?

No.

What did you mean with your following post?

Do you have any further suggestions?

Cheers,
Sebastian

Sebastian Faust

unread,
May 16, 2007, 4:48:24 AM5/16/07
to
What I forgot to ask.... I compiled a very simple program in C with
the following structure:
int extprocsh(char* cmd)
{
return 999;
}

For compiling I used:
gcc -c test.c -fPIC

and for creating the so file I used:
gcc -shared -o procedures.so test.o

Could the ORA-28575 be related to a failure in my C program?

Cheers,
sebastian

joel garry

unread,
May 16, 2007, 2:01:48 PM5/16/07
to
On May 16, 1:38 am, Sebastian Faust <sebastian.fa...@googlemail.com>
wrote:

Should have been:

How about "EXTPROC_DLLS=ANY,LD_LIBRARY_PATH=/opt/oracle/9.2.0/lib/" ?

The thinking being: maybe it can't find the RPC to connect to without
telling it where the library is. Beyond that, if no one else answers,
try the otn.oracle.com forums.

jg
--
@home.com is bogus.

"By the way, don't try the tall, thin coin-operated machines located
above the urinals. That gum tastes like rubber!" - Dr. Science

0 new messages