Oracle 8.04 External Prozedure Call
Date: 1998/03/04
Message-ID: <34FD622F.48E0_at_ERL9.SIEMENS.NET>
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....
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
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 Wed Mar 04 1998 - 00:00:00 CET