Remote external procedure call ORA-28576

Hi,
I have to call an external procedure (c program) which is in another(remote) host system.
I have created a simple c program and when i call it from the same database host (Oracle 11.2.0.3 in linux 2.6.39) every thing work fine, but when i call it from another database found in a remote host (Oracle 11.2.0.3 HP-UX 11iv3) i receive these error "ORA-28576". The "extproc" program was started by the listener (i can see that in the listener logfile) but then the connection was aborted.
So my question is can i call remote external proc program from a remote host ? if yes how can i do that ? thanks for help
Configuration :
listener.ora
LISTENER =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = MYHOST)(PORT = 1521))
SID_LIST_LISTENER =
    (SID_LIST=
        (SID_DESC= (SID_NAME=callout)
        (ORACLE_HOME=/app/oracle/11.2.0.3)
        (ENVS = 'EXTPROC_DLLS=/tmp/test.so')
        (PROGRAM=extproc)
tnsnames.ora
extproc_connection_data =
   (DESCRIPTION =
       (ADDRESS = (PROTOCOL=tcp)(host=MYHOST)(port=1521))
       (CONNECT_DATA=(SID=callout))
test.c
#include <stdio.h>
int square(int x)
return((x*x) + 1); //adds 1 to the return value
PL/SQL code
CREATE DATABASE LINK agent_link USING 'extproc_connection_data';
CREATE OR REPLACE LIBRARY test_lib IS '/tmp/test.so' AGENT 'agent_link';
CREATE OR REPLACE FUNCTION test_proc (X BINARY_INTEGER) RETURN BINARY_INTEGER
AS
EXTERNAL LIBRARY test_lib
NAME "square"
LANGUAGE C;
CREATE OR REPLACE PROCEDURE EXTPROCTEST (X BINARY_INTEGER)
AS
   RetValue   BINARY_INTEGER;
BEGIN
   RetValue := test_proc (X);
   DBMS_OUTPUT.PUT_LINE (RetValue);
END;
SET SERVEROUTPUT ON
EXECUTE EXTPROCTEST(10);

Hi,
I found the answare, it seem that for security reason the listener,extproc agent and the instance must be on the same host.
Reference : (http://docs.oracle.com/cd/E11882_01/appdev.112/e10825/pc_07pls.htm#sthref1051)
>
The database server, the agent process, and the listener process that spawns the agent process must all reside on the same host.
>
>
For security reasons, extproc, by default, loads only DLLs that are in directory $ORACLE_HOME/bin or $ORACLE_HOME/lib. Also, only local sessions—that is, Oracle Database client processes that run on the same system—are allowed to connect to extproc.

Similar Messages

  • Cannot get external procedural call in Oracle RAC Environment

    Cannot get external procedure call to work in our test RAC env.
    We are able to get it to work in our DEV env which is a single instance
    LISTENER.ORA:
    NODE1:
    # listener.ora Network Configuration File: /opt/oracle/app/oracle/product/10.2.0/db_1/network/admin/listener.ora
    # Generated by Oracle configuration tools.
    LISTENER_SBLBGT01 =
    (DESCRIPTION_LIST =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = sblbgt01-vip1)(PORT = 1521)(IP = FIRST))
    (ADDRESS = (PROTOCOL = TCP)(HOST = 172.41.1.21)(PORT = 1521)(IP = FIRST))
    (SID_LIST =
    (SID_DESC =
    (SID_NAME = PLSExtProc)
    (ORACLE_HOME = /opt/oracle/app/oracle/product/10.2.0/db_1)
    (PROGRAM = extproc)
    (ENVS="EXTPROC_DLLS=ANY")
    NODE2:
    # listener.ora.sblbgt02 Network Configuration File: /opt/oracle/app/oracle/product/10.2.0/db_1/network/admin/listener.ora.sblbgt02
    # Generated by Oracle configuration tools.
    LISTENER_SBLBGT02 =
    (DESCRIPTION_LIST =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = sblbgt02-vip2)(PORT = 1521)(IP = FIRST))
    (ADDRESS = (PROTOCOL = TCP)(HOST = 172.41.1.22)(PORT = 1521)(IP = FIRST))
    (SID_LIST =
    (SID_DESC =
    (SID_NAME = PLSExtProc)
    (ORACLE_HOME = /opt/oracle/app/oracle/product/10.2.0/db_1)
    (PROGRAM = extproc)
    (ENVS="EXTPROC_DLLS=ANY")
    2) ### If you are receiving errors, please list exact error messages and text: ###
    (cont 1.)
    tnsnames.ora (on both nodes):
    EXTPROC_CONNECTION_DATA =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = IPC)(KEY = extproc))
    (CONNECT_DATA = (SID = PLSExtProc) (PRESENTATION = RO)))
    [opt/oracle/app/oracle/product/10.2.0/db_1/network/admin]> tnsping EXTPROC_CONNECTION_DATA
    TNS Ping Utility for Solaris: Version 10.2.0.3.0 - Production on 11-APR-2011 10:52:49
    Copyright (c) 1997, 2006, Oracle. All rights reserved.
    Used parameter files:
    /opt/oracle/app/oracle/product/10.2.0/db_1/network/admin/sqlnet.ora
    Used TNSNAMES adapter to resolve the alias
    Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = extproc)) (CONNECT_DATA = (SID = PLSExtProc) (PRESENTATION = RO)))
    OK (0 msec)
    Calling External Procedure:
    SQL> execute ttran.shell('ls');
    BEGIN ttran.shell('ls'); END;
    ERROR at line 1:
    ORA-28575: unable to open RPC connection to external procedure agent
    ORA-06512: at "TTRAN.SHELL", line 1
    ORA-06512: at line 1

    Any Reply Please...
    would appreciate your help...

  • OS Authentication problems during external procedure calls

    Hi,
    Here's our setup: Oracle 9i on Windows OS
    1. Created an OS ID = TESTID on domain = MYDOMAIN
    MYDOMAIN\TESTID
    2. Granted the necessary OS rights on MYDOMAIN\TESTID and assigned it to start/stop the external procedure listener service. The ID has "deny logon locally" policy applied to it on Windows OS.
    3. Restarted the external procedure listener service so that the changes would take effect.
    4. Created an ID on the Oracle DB as OPS$MYDOMAIN\TESTID (identified externally)
    5. Assigned the necessary DB privs to the ID (including create session)
    6. Set the registry entry:
    HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0\OSAUTH_PREFIX_DOMAIN = TRUE
    7. On one of our application modules (oracle forms) we triggered an external procedure call and it failed with:
    ORA-01017: invalid username\password
    We used to call the same external procedure before and we never had problems with it. The setup before was that the IDs are on the local server. We had to move the server to MYDOMAIN which is why we did the steps listed above.
    I don't have a clue why the external procedure calls keeps on failing with the new setup. Need your advise on this.
    Below are some of our DB init parms:
    remote_login_password_file = EXCLUSIVE
    remote_os_authent = FALSE
    remote_os_roles = FALSE
    os_authent_prefix = OPS$
    thanks.

    I don't remember noticing an option to set how many passes it will go through. There were two options - you can either write zeros to the drive or do the 8-way random write, where it writes random data across the drive in a random pattern 8 times.
    If there is an amount of passes you can set with the zeros, I did whatever the default one is.
    It's 4:13 now. If it hasn't moved by 5, should I shut down and try again when I return to work tomorrow?
    Jason

  • External Procedure Call: Temporary Blob Array out.

    Hello,
    I am having difficulty getting out an array of blob from the external procedure call interface. I am trying to create an array of blob initialized with temporary blobs. I was successfully able to create single blob parameter out but no success with the array type.
    I am including the code for PLSQL wrapper, test code, and the main C code.
    I appreciate your help.
    The error message of the test run:
    0
    10
    DECLARE
    ERROR at line 1:
    ORA-22275: invalid LOB locator specified
    ORA-06512: at "SYS.DBMS_LOB", line 554
    ORA-06512: at line 7
    CREATE OR REPLACE PROCEDURE blob_coll (
    cintarray IN OUT VDC_BLOB_ARRAY ) IS
    LANGUAGE C
    NAME "blob_coll"
    LIBRARY sjc_lib WITH CONTEXT
    PARAMETERS (
    context,
    cintarray OCIColl);
    DECLARE
    BLOBARRAY VDC_BLOB_ARRAY:= VDC_BLOB_ARRAY();
    BEGIN
    dbms_output.put_line( BLOBARRAY.count);
    SCOTT.BLOB_COLL ( BLOBARRAY );
    dbms_output.put_line( BLOBARRAY.count);
    dbms_output.put_line( dbms_lob.getlength( BLOBARRAY(1)));
    END;
    void blob_coll( OCIExtProcContext *ctx,
    OCIColl **cintarray )
    sword status;
    int i;
    OCILobLocator *lobp[10];
    status = OCIExtProcGetEnv( (OCIExtProcContext *)ctx, (OCIEnv **)&envhp,
    (OCISvcCtx **)&svchp, (OCIError **)&errhp );
    for (i=0; i < 10; i++)
    status=OCIDescriptorAlloc( (dvoid *)envhp, (dvoid **) &lobp,
    (ub4)OCI_DTYPE_LOB, (size_t)0, (dvoid**)0);
    status=OCILobCreateTemporary((dvoid *)svchp,
    (dvoid *)envhp,
    lobp[i], (ub2)0, SQLCS_IMPLICIT,
    OCI_TEMP_BLOB, OCI_ATTR_CACHE,
    OCI_DURATION_SESSION);
    status = OCICollAppend( (OCIEnv *)envhp,(OCIError *)errhp,
    (CONST dvoid*) lobp[i],
    (CONST dvoid*)0,
    (OCIColl *)*cintarray);

    The "X" in the second registerOutParameter is the type name which
    you have created in oracle DB.
    eg. if you have created a nested table
    create Type integer_table is table of number(10);
    then "X" = "INTEGER_TABLE" and it has to be in caps
    and other thing to keep in mind is that it only works with nested
    table or varray and not with pl/sql table.
    Al Pivonka (guest) wrote:
    : How can I pass pl/sql record in and out
    : and pl/sql tables in out thru a pl/sql procedure using jdbc
    with
    : the zip file of 816classes12.zip...
    : I have tried everything I know...
    : I know the procedure is working, others are using it with in
    : Oracle...
    : I need to use the information it generates.
    : here is what I have so far...
    : try
    : Class.forName ("oracle.jdbc.driver.OracleDriver");
    : DriverManager.registerDriver (new
    : oracle.jdbc.driver.OracleDriver());
    : oracle.jdbc.driver.OracleConnection conn =
    : (oracle.jdbc.driver.OracleConnection
    : DriverManager.getConnection
    ("jdbc:oracle:thin:@--","NA","NA");
    : // SQL92 SyntaxCallableStatement
    : oracle.jdbc.driver.OracleCallableStatement cstmt =
    : (oracle.jdbc.driver.OracleCallableStatement)conn.prepareCall
    : ("{call cbmd_proposal_PKG.DefaultTerms (?,?,?,?)}" ) ;
    : cstmt.setString(1,"5118");
    : cstmt.setString(2,"3");
    : cstmt.registerOutParameter
    : (2,oracle.jdbc.driver.OracleTypes.NUMBER);
    : cstmt.registerOutParameter
    (1,oracle.jdbc.driver.OracleTypes.ARRAY,"X");
    : cstmt.execute();
    : catch(Exception e)
    : System.err.println(e.toString());
    : e.printStackTrace();
    : The "X" in the second registerOutParameter is still unknown to
    : me.
    : The JavaDoc for the
    OracleCallableStatement.registerOutParameter
    : is not clear.
    : Can any One help simplify this...
    : Thanks
    null

  • External Procedure call - wait event - no response

    Executing SQL that use external library - I dont get any response
    I see wait event as 'External Procedure call' and no response, no errors are thrown.
    Am I missing something or how do I troubleshoot further...
    Your help very much appreciated.
    Please note I have no entry in TNSNAMES.ORA or LISTENER.ORA file for extproc connections.
    Oracle DB - Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
    Listener - TNSLSNR for Linux: Version 11.2.0.3.0
    OS - Red Hat Enterprise Linux Server release 6.5
    DLL entry done ONLY in "/apps/oracle/product/11.2.0/dbhome_1/hs/admin/extproc.ora"
    SET EXTPROC_DLLS=ANY
    OS Environment LD_LIBRARY_PATH=
    LD_LIBRARY_PATH=/apps/oracle/product/11.2.0/dbhome_1/lib
    DLL File permission
    -rwxrwxr-x  1 oracle oinstall   8022832 Mar  6 12:55 libst_shapelib.so
    OS EXTPROC process is running
    oracle   17489     1  0 09:08 ?        00:00:00 extprocGISDEV (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=BEQ)))
    Library Path set at schema level as below
    select * from dba_libraries where library_name = 'ST_SHAPELIB';
    OWNER                          LIBRARY_NAME                   FILE_SPEC                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        DYNAMIC STATUS
    SDE                            ST_SHAPELIB                    /apps/oracle/product/11.2.0/dbhome_1/lib/libst_shapelib.so                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       Y       VALID  

    Hello,
    This is posted in the incorrect community.  I think you need to be in SQL and PL/SQL
    Regards,
    Matt

  • Remote Stored Procedure Call Dispatcher WEB WERVICE

    Hello all,
    Environment: Windows OS, Oracle 10g, mod_plsql
    I am looking for solutions to the following problem:
    A way to dispatch calls to stored procedures from client to server with a minimal impact on performance.
    We are looking at two possible solutions:
    1) Making a call to a Remote Stored Procedure Call Dispatcher (RSPCDispatcher) stored procedure through mod_plsql.
    2) Making a call to a Remote Stored Procedure Call Dispatcher (RSPCDispatcher) stored procedure through a web service.
    Solution 1) is not the preferred one as you may already know that mod_plsql will not be supported starting 12g.
    Solution 2) is the one we prefer as we believe that web services will be ever more supported in the future. When we move to 11g we may turn this web service into a native one (avoiding overhead in the OC4J for hosting the web service etc.).
    We are looking for code examples and information pointers of how we could implement this dispatcher as a stored procedure in a DB package. We know that the implementation should be similar to the one done for mod_plsql in the OWA schema but the code there is obfuscated, so we could not borrow ideas from there.
    We are not sure how to deal with the generalization of the above stated problem. We need to be able to pass to this dispatcher the stored procedure package and name we are invoking, ordered list of parameters (or parameters map), and the transport strategy (XML, JSON, etc.).
    Basically, we are notsure how to deal with the USING clause of the EXECUTE IMMEDIATE statement. We can dynamically generate the SQL statement corresponding to the stored procedure we want to call, but we are not sure how to bind the parameters we are passing?
    Also, we know that EXECUTE IMMEDIATE may be slow sometimes. So if could avoid it, this could further improve performance.
    Perhaps the run-time generalized stored procedure execution may not be what we are looking for?! Perhaps we should include several design-time steps?! What about a script that given a package name (or just a single stored procedure) would generate a wrapper package which stored procudures' names would correspond to their respective counterparts in the given package which would take two parameters - the list of parameters in some sort of format, and the transport (content delivery strategy) and would return the result in the given content delivery strategy?! This script may also define the XSD of the XML message a stored procedure is called with (the parameter map) as well as the XSD of the XML result the stored procedure returns. Also the script could generate client code with the given language strategy (Java, .NET, etc.) for calling the RSPCDispatcher web service.
    We request the following from the Oracle community folks:
    a) Please, give us any relevant information that could be helpful to resolve this problem.
    b) Any resource of how to inspect stored procedures in a package, its parameters, parameter types and direction (IN, OUT, or INOUT), etc.
    Thank you very much in advance.
    Regards,
    Georgi

    Hello all,
    Environment: Windows OS, Oracle 10g, mod_plsql
    I am looking for solutions to the following problem:
    A way to dispatch calls to stored procedures from client to server with a minimal impact on performance.
    We are looking at two possible solutions:
    1) Making a call to a Remote Stored Procedure Call Dispatcher (RSPCDispatcher) stored procedure through mod_plsql.
    2) Making a call to a Remote Stored Procedure Call Dispatcher (RSPCDispatcher) stored procedure through a web service.
    Solution 1) is not the preferred one as you may already know that mod_plsql will not be supported starting 12g.
    Solution 2) is the one we prefer as we believe that web services will be ever more supported in the future. When we move to 11g we may turn this web service into a native one (avoiding overhead in the OC4J for hosting the web service etc.).
    We are looking for code examples and information pointers of how we could implement this dispatcher as a stored procedure in a DB package. We know that the implementation should be similar to the one done for mod_plsql in the OWA schema but the code there is obfuscated, so we could not borrow ideas from there.
    We are not sure how to deal with the generalization of the above stated problem. We need to be able to pass to this dispatcher the stored procedure package and name we are invoking, ordered list of parameters (or parameters map), and the transport strategy (XML, JSON, etc.).
    Basically, we are notsure how to deal with the USING clause of the EXECUTE IMMEDIATE statement. We can dynamically generate the SQL statement corresponding to the stored procedure we want to call, but we are not sure how to bind the parameters we are passing?
    Also, we know that EXECUTE IMMEDIATE may be slow sometimes. So if could avoid it, this could further improve performance.
    Perhaps the run-time generalized stored procedure execution may not be what we are looking for?! Perhaps we should include several design-time steps?! What about a script that given a package name (or just a single stored procedure) would generate a wrapper package which stored procudures' names would correspond to their respective counterparts in the given package which would take two parameters - the list of parameters in some sort of format, and the transport (content delivery strategy) and would return the result in the given content delivery strategy?! This script may also define the XSD of the XML message a stored procedure is called with (the parameter map) as well as the XSD of the XML result the stored procedure returns. Also the script could generate client code with the given language strategy (Java, .NET, etc.) for calling the RSPCDispatcher web service.
    We request the following from the Oracle community folks:
    a) Please, give us any relevant information that could be helpful to resolve this problem.
    b) Any resource of how to inspect stored procedures in a package, its parameters, parameter types and direction (IN, OUT, or INOUT), etc.
    Thank you very much in advance.
    Regards,
    Georgi

  • External procedure call for cobol programs

    I'm trying to call cobol programs using external procedure calls. I followed metalink doc#119543.1 but when the cobol shared library is called from PL/SQL, the session hangs. I'm running Oracle 9.2.0.4 EE, Microfocus Server Express 2.2, C for AIX v6, and AIX 5.2 (64-bit). If you know how to get this working or you have a working test case, please post a reply. Thanks.

    You know that there are several steps to it :
    1.- Make a library from cobol a the source code in a file
    2.- Check the listener parameters to call external procedures and the service in the client
    3.- Make a library inside the database
    4.- Create the procedure that is going to call the
    procedure.
    Did you do those steps?
    Joel P�rez

  • External procedure calls supported?

    Are external procedure calls supported? Should be, right?
    I didn't find anything in the documentation and the directory $ORACLE_HOME/rdbms/extproc doesn't exist either.
    But the binary $ORACLE_HOME/bin/extproc is there.
    Thanks,
    ~Dietmar.

    Hi Sven,
    you have beaten me again ;). I'm too slow.
    "Any errors that occur during the execution of the
    job will be returned as errors to the RUN_JOB
    procedure."True, when the job cannot be executed, a plsql exception is raised.
    I just don't get the exit code back. If something goes wrong inside the executable, I want to be able to detect that. Usually the called script sets an exit code for that purpose.
    >>How do I get a handle on the LOG_ID?
    Are they any public variable in dbms_scheduler. e.q.
    LastLogID ;-) ?No, I 've checked the package. But the exit code doesn't seem to be logged either. error# in USER_SCHEDULER_JOB_RUN_DETAILS is 0, even when the exit code is set to non-zero.
    See the following sample:
    File: error_throw.cmd
    exit /b 1I have checked that the exit code handling works using this script:
    @echo off
    call error_throw.cmd
    IF ERRORLEVEL 3 GOTO errhandler
    IF ERRORLEVEL 2 goto errhandler
    IF ERRORLEVEL 1 goto errhandler
    echo "successful run"
    goto end
    :ERRHANDLER
    echo errorlevel
    :ENDand I called it using:
    begin
      DBMS_SCHEDULER.create_job (
        job_name        => 'GO_SYNC',
        job_type        => 'EXECUTABLE',
        job_action      => 'C:\temp\dosBatch\error_throw.cmd',
        enabled         => FALSE,
        comments        => 'Synchronously run command.');
    end;
    BEGIN
      -- Run job synchronously.
      DBMS_SCHEDULER.run_job (job_name            => 'GO_SYNC',
                              use_current_session => TRUE);
      -- Remove job after run
      DBMS_SCHEDULER.DROP_JOB('GO_SYNC');
    END;
    /~Dietmar.
    daust: wrong command file called: error_throw.cmd instead of error_handle.cmd

  • External Procedure call from Trigger

    I'd like to call an external C Procedure from
    an Oracle Trigger.
    In trying to get an example to work, after setting up the listener and tnsnames.ora for external procedures, the following SQL*Plus command behaves strangely:
    CREATE LIBRARY TTest as "c:\winnt\system32\TTrigger.dll";
    After entering this, the command line prompts for more data as if the command was not terminated. Tried single quotes, double quotes, forward slash, backward slash...
    What is wrong with this command?
    Thanks

    hi,
    COuld you send me the configuration parameters for listner and TNSNAMES? I am working so hard to set it up but getting stuck and I am sure that I am missing some configuration set up.
    Please could you mail your tnsname a nd listner files to bellow shown address?
    [email protected] ?
    Thanks in advance
    Suresh

  • External procedure call error in RAC

    I met a strange problem today with Oracle RAC 10.2.0.4:
    Situation I:
    In the sequence of tnsnames.ora or TAF, put NodeA before NodeB, everything works well. Even if NodeA is down and only NodeB works.
    Situation II:
    If put NodeB before NodeA, strange things happened.
    1) I can connect to via type2(tnsnames) or type4(url) via sqlplus, and I can also call my extproc in sqlplus.
    2) If I call external procedure via API, whatever type2 or type4, it will report "ORA-06576: not a valid function or procedure name"
    RAC should share anything on both nodes, why Situation I and Situation II have different behaviour? Can anyone help me? Thanks!

    Thanks.
    In fact, using the supplied makefile in $ORACLE_HOME/plsql/demo and MAKING SURE THAT THE .SO IS EXECUTABLE(!) works.

  • Error mapping function in external procedure call

    I'm trying to create an external procedure in PL/SQL8.1 to run an operating system command from within a PL/SQL block.
    The C function couldn't be simpler:
    extern void host_command(char *command)
    (void)system(command);
    It's even ignoring the return value of SYSTEM!
    I've generated what I THINK is a shared object file and copied it to $ORACLE_HOME/lib/host_command.so
    I've then done CREATE LIBRARY HOST_COMMAND_LIB as '...'
    Then I created a PL/SQL procedure:
    CREATE PROCEDURE SHELL(IP_COMMAND IN VARCHAR2)
    AS
    LANGUAGE C
    NAME "host_command"
    LIBRARY HOST_COMMAND_LIB
    PARAMETERS (IP_COMMAND);
    And then EXEC SHELL ('touch /tmp/fred')
    That's when ORA-6521 is raised.
    I am running Oracle8.1.7.4.0 on AIX 4.3
    Am I missing something?
    Any suggestions will be thankfully received.
    Andrew Hunter

    Thanks.
    In fact, using the supplied makefile in $ORACLE_HOME/plsql/demo and MAKING SURE THAT THE .SO IS EXECUTABLE(!) works.

  • External Procedure Error: Ora-28575

    We are trying to set up external procedures in an HP/UX environment. However, we can not seem to get past the following error:
    ORA-28575: unable to open RPC connection to external procedure agent
    The following is our TNSNAMES.ORA set up:
    EXTPROC =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = IPC)(KEY = extproc_key))
    (CONNECT_DATA =
    (SID = extproc_agent)
    The following is the listener.ora setup:
    LISTENER =
    (DESCRIPTION_LIST =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = ssi2)(PORT = 1521))
    (PROTOCOL_STACK =
    (PRESENTATION = TTC)
    (SESSION = NS)
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = IPC)(KEY = extproc_key))
    SID_LIST_LISTENER =
    (SID_LIST =
    (SID_DESC =
    (GLOBAL_DBNAME = SDST.world)
    (ORACLE_HOME = /u001/app/oracle/product/SDST)
    (SID_NAME = SDST)
    (SID_DESC =
    (SID_NAME = extproc_agent)
    (ORACLE_HOME = /u001/app/oracle/product/SDST)
    (PROGRAM = extproc)
    The following is the SQLNET.ORA setup:
    SQLNET.EXPIRE_TIME = 0
    NAMES.DIRECTORY_PATH= (TNSNAMES)
    Does anyone have any ideas/help??? We're stuck. Thanks!

    Hi,
    I guess, it is happening in connection point only. Other wise It will give another error "RPC lost connection".
    I will give some tips.
    1.".so" path should match with oracle library path. For this one, u can query ur system tables and verify.
    2. When u create external procedure, be careful. Especially, when u give name of procedure and library. Pls. check this particular part.
    Pls. let me know the progress. U can directly contact me through the mails.
    With regards,
    Boby Jose Thekkanath,
    Dharma computers(P) Ltd.,
    Bangalore-India.
    www.dharma.com
    null

  • External procedure call. PARAMETER MAXLEN doubt

    Hi, I have the following external function definition:
    CREATE OR REPLACE FUNCTION myfunc (
    tohash IN STRING,
    hashres IN OUT STRING)
    RETURN BINARY_INTEGER AS LANGUAGE C
    LIBRARY myfunc_lib
    NAME "myfunc"
    PARAMETERS (
    strin,
    strinINDICATOR,
    strout,
    strout MAXLEN,
    strout INDICATOR,
    RETURN);
    C prototype: int myfunc(char strin, short strin_ind, char strout, int strout_maxlen, short strout_ind)
    When I call it, the strout_maxlen take the pl/sql variable size value ( v_out CHAR(64) --> strout_maxlen == 64 ). The internal mechanism of call a external function take care of pass a 65 bytes buffer (to store the '\0') or if I know that I'll write 64 characters I must declare the pl/sql variable as CHAR(65)
    Thanks!
    Best regards
    Edited by: user1488139 on 26/03/2012 12:29

    Artem,
    It may be possible to do, but with ASP (active server page) code.  Here is an example:
    A WebI report runs and there are three columns of information that is generated (Report ID, Stat, and Currentdate).  Within WebI you create a local variable that looks like this:
    [VAR]
    ="http://www.myserver.com/Ext_Proc.asp?ID="+[Report ID]+"&Stat="+[Stat]+"&TimeTr="+[currentdate()+"&userinfo="+[Usr_Inf]
    You would then place the variable VAR on your grid and tag it as read as HTML.  If a user hovers over this column and executes the link it will fire off the Ext_Proc.asp code, receiving the arguments ID, Stat, and TimeTr with its values passed in.  Within the Ext_Proc.asp code you can then in-turn fire that data to your database server (or whatever you want to do with it).  If you need more info on what the ASP code might look like please reply.
    Thanks,
    John

  • Help me, please ORA-28576: lost RPC connection to external procedure agent

    when i call external program
    SQL>exec shell_all ('/bin/ls /oracle/product/10.2.0/',:result, 3) ;
    BEGIN shell_all ('/bin/ls /oracle/product/10.2.0/',:result, 3) ; END;
    ERROR at line 1:
    ORA-28576: lost RPC connection to external procedure agent
    ORA-06512: at "SYS.SHELL_ALL", line 1
    ORA-06512: at line 1
    and my configure
    #listener.ora
    SID_LIST_LISTENER_AADB02 =
    (SID_LIST =
    (SID_DESC =
    (SID_NAME = PLSExtProc)
    (ORACLE_HOME = /oracle/product/10.2.0/db)
    (PROGRAM = extproc)
    (ENVS = "EXTPROC_DLLS=ANY")
    LISTENER_AADB02 =
    (DESCRIPTION_LIST =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = aadb02-vip)(PORT = 1521)(IP = FIRST))
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 203.144.222.82)(PORT = 1521)(IP = FIRST))
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = IPC)(KEY = extproc))
    #tnsname.ora
    EXTPROC_CONNECTION_DATA =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = IPC)(KEY = extproc))
    (CONNECT_DATA =
    (SID = PLSExtProc)
    (PRESENTATION = RO)
    Please tell me to resolve this problem

    Does not execl() and friends replace the current program with the one supplied as a parameter?
    The upshot of this would be as you suggest, viz:
    - Oracle call's your procedure (but doens't wait for a result due to the void return type?)
    - your program executes its code (cd /tmp)
    - it then replaces itself with *program
    - *program terminates
    Presumably, Oracle isn't expecting it to terminate but to continue waiting for subsequent requests.
    I'd check out fork() and see if that offers more appropriate semantics.
    d.

  • Error calling external procedure on remote server

    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)
    )

    Hi Long Le Hoang,
    I am running a shell script fromSM69 which call psexec.
    shell script runs fine but SM69 execution goes on hold.
    Can you please help me how to terminate SM69 execution.
    Alpa

Maybe you are looking for

  • Photoshop CS6-many problems.  Slow.

    I'm hoping someone at Adobe can address the numberous bugs and general slowness in Photoshop CS6. Before installing (MacBok Pro 2010 Intel i7, 8GB Ram) I whiped my drive and installed OS Lion. So CS6 went on clean. What I'm finding: 1. General slugis

  • I can't figure out which add-on is crashing

    something is crashing in firefox, i don't think it's firefox itself. websites with text only continue working, icanhascheezeburger sites keep working, just the display portion - the picture itself, not the surrounding text adds, whatever, goes blank

  • General: applet-specific SW and ISO7816

    Hi all! I'm newbie to Java Card, so apologies if question is stupid. 1) In ISO 7816-4 a number of smart card return codes/ instruction bytes, еtс. are defined. When I write an applet, should I use them or define my own? For example, the applet should

  • Simulate attack or intrusion to cause a signature trigger

    Is it possible to simulate an attck or an intrusion , which will trigger any particular signature id in an IDS model 4250. ( on a host which IDS is sensing ). This will enable us to actually check or see an intrusion on real time dashboard on IdS eve

  • Video without linksys menus

    What are the different solutions to remove linksys log and menus from video web page ? I thought about : - downloading anew page in the webcam and move the setup page at another location - create a html page with dreamweaver with three links to my th