Time for another ORA-28575 question!

From: David Elliston <david.elliston_at_gmail.com>
Date: Mon, 28 May 2012 05:37:53 -0700 (PDT)
Message-ID: <4f5bfee9-7343-49c9-a8a6-2eeca42a61ac_at_googlegroups.com>



I've searched the newsgroups and I don't think this particular issue has been posted, although there are many references to this error. If it has I apologize....

We have a table insert trigger which, amongst other things, performs an external procedure call. We have a JDBC client which has successfully been performing this table insert over a remote session; successfully that is until we ran our system on Oracle 11.2.0.3.0 + Solaris 11 (11/11). What we get back now is the dreaded:

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

Our config is straightforward and has worked fine until now.

listener.ora:

EXTERNAL_PROCEDURE_LISTENER =
    (ADDRESS_LIST =

        (ADDRESS =

(PROTOCOL = IPC)
(KEY = EXTPROC_1)
)

    )

SID_LIST_EXTERNAL_PROCEDURE_LISTENER =
    (SID_LIST =

        (SID_DESC=

(SID_NAME = PLSExtProc_1)
(ORACLE_HOME = /oracle/product/11.2.0)
(PROGRAM = extproc32)
(ENVS = LD_LIBRARY_PATH=/usr/lib:/lib:/usr/ccs/lib:/usr/sfw/lib,EXTPROC_DLLS=/oracle/product/11.2.0/lib/app/myAppDLL.so))
    )

tnsnames.ora:

EXTPROC_CONNECTION_DATA =
    (DESCRIPTION =

        (ADDRESS =

(PROTOCOL = IPC)
(KEY = EXTPROC_1)
) (CONNECT_DATA =
(SID = PLSExtProc_1)
)

    )

Our shared library is 32bit so we have installed Oracle 11.2.0.3.0 32bit Client and we link to extproc within this to give us the extproc32 program you see in the config.

We have tried the same table insert using a remote sqlplus session and it fails with the same ORA-28575 error. However.... if we perform the table insert on a local sqlplus session running on the database server it works fine. Looking at the external_procedure_listener alert log we see this for a successful insert in a local session:

 <txt>28-MAY-2012 12:15:03 * (CONNECT_DATA=(SID=PLSExtProc_1)(CID=(PROGRAM=)(HOST=dev0052)(USER=oracle))) * (ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC_1)) * establish * PLSExtProc_1 * 0  </txt>

but for our failing remote sessions we see

 <txt>28-MAY-2012 12:15:42 * (CONNECT_DATA=(SID=PLSExtProc_1)(CID=(USER=oracle))) * (ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC_1)) * establish * PLSExtProc_1 * 0  </txt>

So it looks like the CID data is missing the PROGRAM and HOST when the external procedure call is triggered from a remote session.

Our system works fine on Oracle 10g + Solaris 10. It also works fine on Oracle 11g + Solaris 10. It fails if we try it on Oracle 11g + Solaris 11.

Anyone got any ideas?

Thanks
David. Received on Mon May 28 2012 - 07:37:53 CDT

Original text of this message