Oracle 8.04 prozedure call
Date: 1998/03/05
Message-ID: <34FE675E.1E17_at_ERL9.SIEMENS.NET>
HELP!!!!!
We are going to use Oracle 8.04. We installed a Oracle 8 Server with a
database, connected the
Client with it.
Then we must use the external Procedure Call. We read in the online
Documentation that we
have to initialiye a second Listener named external_prozedure_listener.
OK, he is running, and I can look at him with the Admin Tool lsnrctl80.
But if I try to call the "C" Programm included in a DLL(Library/Package) the Error 28575 appears.
I don't know what we have configured wrong....
I copied the TNSNAMES.ORA, LNSNAMES.ORA, SQLNET.ORA file into this mail,
and
the PL/SQL Scripts for creating and calling the c-programm.
Do you know the error's ???
Thanks for answering
bye Franz Bachtraegl , Germany
Die Datei TNSNAMES.ORA:
# C:\ORANT\NET80\ADMIN\TNSNAMES.ORA Configuration
File:C:\orant\net80\admin\tnsnames.ora
# Generated by Oracle Net8 Assistant
APROD =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = erlm568a)(PORT = 1521))
(CONNECT_DATA = (SID = prod))
)
TFTP.WORLD =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = hostname)(PORT = 1521))
(CONNECT_DATA = (SID = tftp))
)
PROD =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = erlm568a)(PORT = 1521))
(CONNECT_DATA = (SID = prod))
)
EXTPROC_CONNECTION_DATA.WORLD =
(DESCRIPTION =
(SDU = 2048)
(ADDRESS = (PROTOCOL = IPC)(Key = exkey))
(CONNECT_DATA = (SID = extproc)(GLOBAL_DBNAME = entw))
(SOURCE_ROUTE = YES)
)
ENTW =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = erlm568a)(PORT = 1521))
(CONNECT_DATA = (SID = entw))
)
BEQ-LOCAL.WORLD =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(Key = export))
(CONNECT_DATA = (SID = entw))
)
SFINGER.WORLD =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(Key = entw))
(CONNECT_DATA = (SID = entw))
)
TCP-LOOPBACK.WORLD =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
(CONNECT_DATA = (SID = ORCL))
)
Die Datei LISTENER.ORA :
# C:\ORANT\NET80\ADMIN\LISTENER.ORA Configuration
File:C:\orant\net80\admin\listener.ora
# Generated by Oracle Net8 Assistant
PASSWORDS_LISTENER= (oracle)
LISTENER =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = oracle.world))
(ADDRESS = (PROTOCOL = IPC)(KEY = ORCL))
(ADDRESS = (PROTOCOL = IPC)(KEY = ENTW))
(ADDRESS = (PROTOCOL = IPC)(KEY = exkey))
(ADDRESS = (PROTOCOL = TCP)(HOST = ERLM568A)(PORT = 1521))
)
EXTERNAL_PROCEDURE_LISTENER =
(ADDRESS = (PROTOCOL = IPC)(KEY = exkey))
SID_LIST_EXTERNAL_PROCEDURE_LISTENER =
(SID_LIST =
(SID_DESC =
(PROGRAM = extproc) (SID_NAME = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = entw) (ORACLE_HOME = c:\orant) (SID_NAME = entw)
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = tftp) (PROGRAM = tftpd)
)
(SID_DESC =
(SID_NAME = sfinger) (PROGRAM = sfingerd)
)
(SID_DESC =
(SID_NAME = extproc) (PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = erlm568a) (SID_NAME = entw)
)
(SID_DESC =
(GLOBAL_DBNAME = erlm568a) (SID_NAME = prod)
)
)
################ # Filename......: listener.ora # Node..........: local.world
# Date..........: 24-MAY-94 13:23:20
################
TRACE_LEVEL_EXTERNAL_PROCEDURE_LISTENER = SUPPORT
Skript for creating the Library and the Package......
REM
REM Name GetTZ.sql
REM
REM Description This SQL script creates the package GetTZpkg containing
REM function OGetTimeZone which defines the external
procedure
REM for the OGetTimeZone call exported in GETTZ.DLL.
REM
REM Functions
REM OGetTimeZone() ==> Name of the Current TimeZone and
the
REM difference in minutes between itand UTC.
REM
REM Notes Please provide the the full path to GetTZ.DLL REM
REM Modifications
REM Sunil Mushran - 9/30/97 - Creation REM
REM This script is for demonstration puposes. REM
- Enter full path to GetTZ.DLL CREATE OR REPLACE LIBRARY GETTZ AS 'D:\PCD98\ExterneProzeduren\GetTZ.DLL'; /
CREATE OR REPLACE PACKAGE GetTZpkg AS
FUNCTION OGetTimeZone ( lBias OUT PLS_INTEGER, lpTZName OUT VARCHAR2,
bDaylight OUT PLS_INTEGER, lpErrMsg OUTVARCHAR2 )
RETURN PLS_INTEGER; END;
/
CREATE OR REPLACE PACKAGE BODY GetTZpkg AS FUNCTION OGetTimeZone ( lBias OUT PLS_INTEGER, lpTZName OUT VARCHAR2,
bDaylight OUT PLS_INTEGER, lpErrMsg OUTVARCHAR2 )
RETURN PLS_INTEGER AS
EXTERNAL LIBRARY GETTZ NAME "OGetTimeZone" LANGUAGE C CALLING STANDARD C PARAMETERS ( lBias LONG, lpTZName STRING, lpTZName MAXLEN UNSIGNED SHORT, bDaylight INT, lpErrMsg STRING, lpErrMsg MAXLEN UNSIGNED SHORT );
END;
/
PL/SQL Script start:
Oracle8 Release 8.0.4.0.0 - Production
PL/SQL Release 8.0.4.0.0 - Production
SQLWKS> _at_D:\Pcd98\ExterneProzeduren\GetTZ\aufruf.sql SQLWKS> Rem SQLWKS> Rem Aufruf externe Prozedur SQLWKS> Rem SQLWKS> SQLWKS> DECLARE 2> 3> result PLS_INTEGER; 4> 5> lBias PLS_INTEGER; 6> 7> lpTZName VARCHAR2(100); 8> 9> bDaylight PLS_INTEGER; 10> 11> lpErrMsg VARCHAR2(100); 12> BEGIN 13> result := GetTZpkg.OGetTimeZone(lBias, lpTZName, bDaylight,lpErrMsg);
14> 15> dbms_output.put_line('Result = ' || to_char(result) ); 16> dbms_output.put_line('Bias = ' || to_char(lBias) ); 17> dbms_output.put_line('TZName = ' || lpTZName ); 18> dbms_output.put_line('Daylight = ' || to_char(bDaylight) ); 19> dbms_output.put_line('ErrMsg = ' || lpErrMsg ); 20> END; 21> ORA-28575: unable to open RPC connection to external procedure agentORA-06512: at "PCD98.GETTZPKG", line 0
ORA-06512: at line 13
SQLWKS> _at_D:\Pcd98\ExterneProzeduren\GetTZ\aufruf.sql SQLWKS> Rem SQLWKS> Rem Aufruf externe Prozedur SQLWKS> Rem SQLWKS> SQLWKS> DECLARE 2> 3> result PLS_INTEGER; 4> 5> lBias PLS_INTEGER; 6> 7> lpTZName VARCHAR2(100); 8> 9> bDaylight PLS_INTEGER; 10> 11> lpErrMsg VARCHAR2(100); 12> BEGIN 13> result := GetTZpkg.OGetTimeZone(lBias, lpTZName, bDaylight,lpErrMsg);
14> 15> dbms_output.put_line('Result = ' || to_char(result) ); 16> dbms_output.put_line('Bias = ' || to_char(lBias) ); 17> dbms_output.put_line('TZName = ' || lpTZName ); 18> dbms_output.put_line('Daylight = ' || to_char(bDaylight) ); 19> dbms_output.put_line('ErrMsg = ' || lpErrMsg ); 20> END; 21> ORA-28575: unable to open RPC connection to external procedure agentORA-06512: at "PCD98.GETTZPKG", line 0
ORA-06512: at line 13
SQLWKS> _at_D:\Pcd98\ExterneProzeduren\GetTZ\aufruf.sql SQLWKS> Rem SQLWKS> Rem Aufruf externe Prozedur SQLWKS> Rem SQLWKS> SQLWKS> DECLARE 2> 3> result PLS_INTEGER; 4> 5> lBias PLS_INTEGER; 6> 7> lpTZName VARCHAR2(100); 8> 9> bDaylight PLS_INTEGER; 10> 11> lpErrMsg VARCHAR2(100); 12> BEGIN 13> result := GetTZpkg.OGetTimeZone(lBias, lpTZName, bDaylight,lpErrMsg);
14> 15> dbms_output.put_line('Result = ' || to_char(result) ); 16> dbms_output.put_line('Bias = ' || to_char(lBias) ); 17> dbms_output.put_line('TZName = ' || lpTZName ); 18> dbms_output.put_line('Daylight = ' || to_char(bDaylight) ); 19> dbms_output.put_line('ErrMsg = ' || lpErrMsg ); 20> END; 21> ORA-28575: unable to open RPC connection to external procedure agentORA-06512: at "PCD98.GETTZPKG", line 0
ORA-06512: at line 13 Received on Thu Mar 05 1998 - 00:00:00 CET