Skip to Main Content

DevOps, CI/CD and Automation

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

error calling external procedure on remote server

492728Feb 22 2006
Hello

I have written an external procedure that runs correctly when it is on the same machine as the database from which I call it. (Windows XP Professional/Oracle 9.2)

When I try to call the procedure from a database on another machine (also Windows XP Professiona l/ Oracle 9.2) I get ORA - 28756 "lost RPC connection to external procedure agent" or ORA - 28758 "protocol error during callback from an external procedure". Using filemon I can see that the DLL is never searched for or called. The problem seems to lie in the communication between the two machines. When I observe network traffic the machines communicate on port 1521 (the listener) and then switch to the port that the listener returns. Shortly after that the connection is terminated with the above error reported in the PL/SQL routine.

The Oracle Administrator's Guide (9.2) states that "the agent must reside on the same computer as the application making the external procedure call." However there are several entries on the internet that show how to do what I am want to accomplish - I suspect I am making some small mistake.

Any help would be greatly appreciated!

Here is the listener on the machine with the DLL.
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = jacxp01)(PORT = 1521))
)
)

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = C:\oracle\ora90)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=C:\easydist\easydist\Debug\easydist.dll;C:\easydist\easydist\Release\easydist.dll")
)

)
Here is the TNSnames.ora on the remote database machine: (I have also tried the commented lines with no more success)
# TNSNAMES.ORA Network Configuration File: C:\oracle\ora92\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.

EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(Key = EXTPROC1))
#(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.121)(PORT = 1521))
)
(CONNECT_DATA =
#(SERVICE_NAME = PLSExtProc)
(SID = PLSExtProc)
)
)
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Mar 22 2006
Added on Feb 22 2006
0 comments
1,066 views