Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Oracle 8.04 external prozedure call

Oracle 8.04 external prozedure call

From: BBB <FRANZ.BACHTRAEGL_at_ERL9.SIEMENS.NET>
Date: 1998/03/05
Message-ID: <34FE6908.3DF1@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 it
and 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

CREATE OR REPLACE PACKAGE GetTZpkg AS

  FUNCTION OGetTimeZone ( lBias OUT PLS_INTEGER, lpTZName OUT VARCHAR2,

                          bDaylight OUT PLS_INTEGER, lpErrMsg OUT
VARCHAR2 )
    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 OUT
VARCHAR2 )
    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> @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 agent
ORA-06512: at "PCD98.GETTZPKG", line 0
ORA-06512: at line 13
SQLWKS> @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 agent
ORA-06512: at "PCD98.GETTZPKG", line 0
ORA-06512: at line 13
SQLWKS> @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 agent
ORA-06512: at "PCD98.GETTZPKG", line 0
ORA-06512: at line 13 Received on Thu Mar 05 1998 - 00:00:00 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US