External procedure - configuration problem

Hi, I am trying to learn to use external procedures with PL/SQL but I have some problems with proper configuration.
I have created a *.dll library with class WriteStr containing one static method writeStr, which is supposed to write some text to file. Then, I've modified the (formerly default) listener.ora and tnsnames.ora files in the following way:
#listener.ora
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = orcl)
(ORACLE_HOME = C:\Program-Files\Oracle11g\product\11.2.0\dbhome_1)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
SID_LIST_CALLOUT_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = C:\Program-Files\Oracle11g\product\11.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:C:\Program-Files\Oracle11g\product\11.2.0\dbhome_1\customlib\writestr.dll,C:\Program-Files\Oracle11g\product\11.2.0\dbhome_1\bin\oraclr11.dll,LD_LIBRARY_PATH=C:\Program-Files\Oracle11g\product\11.2.0\dbhome_1\lib")
CALLOUT_LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = extproc))
#tnsnames.ora
LISTENER_ORCL =
(DESCRIPTION =
(ADDRESS =
(PROTOCOL = TCP)
(HOST = localhost)
(PORT = 1521)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCL)
ORACLR_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =
          (PROTOCOL = IPC)
          (KEY = extproc)
(CONNECT_DATA =
(SID = CLRExtProc)
(PRESENTATION = RO)
I've double-checked that the path specified in EXTPROC_DLLS does contain the *.dll file (don't be misled by "Program-Files", it's just a junction), and that both listeners are running. Creating the library and procedure wrapper:
CREATE OR REPLACE LIBRARY library_write_string AS
'C:\Program-Files\Oracle11g\product\11.2.0\dbhome_1\customlib\writestr.dll'
CREATE OR REPLACE PROCEDURE write_string
(path VARCHAR2, message VARCHAR2) AS
EXTERNAL LIBRARY library_write_string
NAME "WriteStr::writeStr"
PARAMETERS (path STRING, message STRING);
is succesful, however, upon trying to invoke write_string('C:\TEMP\file.txt','Hello, world!'), I get ORA-06520 (error loading external library).
What could possibly be the problem here? (that it's something with configuration is just my wild guess, if you see no problems above then I might as well have messed up something inside my *.dll file).

1. Didn't help.
2. Permissions set for all users on the *.dll file. Still nothing.
[Edit]
I tried setting EXTPROC_DLLS to ANY but nothing changed. In Oracle documentation, I found something about ENVS not being supported on Windows. Is it really the case? As far as I remember, the default listener.ora file contained an ENVS entry. If so, does any one know how to configure the listener properly?
Also, could somebody please comment on the following:
"Oracle Database 11g: PL/SQL Programing" says that external procedures require a separate listener. However, the default listener.ora file looks as follows:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = C:\Program-Files\Oracle11g\product\11.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:C:\Program-Files\Oracle11g\product\11.2.0\dbhome_1\bin\oraclr11.dll")
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
ADR_BASE_LISTENER = C:\Program-Files\Oracle11g
My question is: will my computer explode when I append the path to my DLL to the EXPROC_DLLS variable? I know I could see for myself, but maybe there's a pretty good reason why I shouldn't use it like that. I'm a beginner so please don't laugh at me if what I'm saying sounds stupid.

Similar Messages

  • Testing external procedure configuration

    How do I test external procedures callouts to see if I've got the listerner.ora and tnsnames.ora configured properly for them?
    The Oracle domain indexes used to use external procedures in Oracle8i. Do they still use them in 9i? If I create a little domain index will this test the external procedure configuration?
    Kevin Tyson

    1. Didn't help.
    2. Permissions set for all users on the *.dll file. Still nothing.
    [Edit]
    I tried setting EXTPROC_DLLS to ANY but nothing changed. In Oracle documentation, I found something about ENVS not being supported on Windows. Is it really the case? As far as I remember, the default listener.ora file contained an ENVS entry. If so, does any one know how to configure the listener properly?
    Also, could somebody please comment on the following:
    "Oracle Database 11g: PL/SQL Programing" says that external procedures require a separate listener. However, the default listener.ora file looks as follows:
    SID_LIST_LISTENER =
    (SID_LIST =
    (SID_DESC =
    (SID_NAME = CLRExtProc)
    (ORACLE_HOME = C:\Program-Files\Oracle11g\product\11.2.0\dbhome_1)
    (PROGRAM = extproc)
    (ENVS = "EXTPROC_DLLS=ONLY:C:\Program-Files\Oracle11g\product\11.2.0\dbhome_1\bin\oraclr11.dll")
    LISTENER =
    (DESCRIPTION_LIST =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    ADR_BASE_LISTENER = C:\Program-Files\Oracle11g
    My question is: will my computer explode when I append the path to my DLL to the EXPROC_DLLS variable? I know I could see for myself, but maybe there's a pretty good reason why I shouldn't use it like that. I'm a beginner so please don't laugh at me if what I'm saying sounds stupid.

  • Configuration problem with external Western Digital My Book 2 TB drive

    How do I fix a configuration problem with my external Western Digital My Book 2 TB drive which used to both read and write. Something has happened so that the drive is now read only? There is 600 GB of data on the drive that I cannot lose, thus am very concerned about messing around with formatting the drive which is raid 1 and filled with data.

    may not like to hear, but I'd skip on MyBook cases, nice looking as they are.
    Get a 2nd drive case to recover to.
    http://www.macsales.com/firewire
    may need to play with the demo Data Rescue 3 from Prosoft
    Backup/recover before repair is usually in order
    never have one backup set. THREE sets of your data, minimum.
    3rd party disk maintenance and repair should be a must and given rather than rely solely on Apple Disk Utility.
    Data and system maintenance and recovery plan - should be like practice for sports, arts, military with practice and making sure you will know how and the tools you need - ahead of time
    Resetting USB/FW ports, try another if one won't work. When 10.6 came out there was a lot of grinding teeth with external drives not working or mounting.

  • Problem in Calling External Procedure

    Hello,
    I am trying to call external procedure written in C from PL/SQL.
    Here are the codes :
    For external procedure:
    #include<stdio.h>
    void extproc_fn ( void )
    FILE * file_handle;
    if (( file_handle = fopen ( "/root/cprogs/extproc.out", "a" )) != NULL )
    fwrite ( "External Procedure Testing", 26, 1, file_handle );
    fclose ( file_handle );
    I have created library as :
    create or replace library extproc_lib as '/root/cprogs/extproc.so';
    And the procedure :
    create or replace procedure extproc_proc as
    external
    name "extproc_fn"
    library extproc_lib
    language c;
    My listener and tnsname is configured correctly.
    But when I try to connect to Oracle by that tnsname, extproc program core dumps under $ORACLE_HOME/network/log directory. Under WinNT, it creates a Dr. Watson error.
    Any idea what might have gone wrong.
    Thanks in advance.
    Soumen Ghosh

    hi there,
    everything u did is correct as far as i recollect about external procedures ,the only thing that i suppose is missing is that u forgot to grant permissions on the library to the user...pls check this once i hope this works...
    bye
    Atul

  • 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 problem

    Hi all
    I tried to start shell script from database using external procedure (I would like to learn about external proc ).
    1. I used c program and than :
    xlc -G -c oracle_host.c
    ld -r -o oracle_host.so oracle_host.o
    chmod 755 oracle_host.so ### prava
    export OBJECT_MODE=64
    make -f demo_rdbms.mk extproc_no_context SHARED_LIBNAME=/oracle/lib/oracle_host.so OBJS=/oracle/lib/oracle_host.o
    and error :
    make: 1254-002 Cannot find a rule to create target extproc_no_context from
    dependencies.
    db version 10.2.0.3
    os AIX 5.3 ml9
    when I tried it in another env wirh 10.2.0.3 on AIX 5.3 ml6 al work ok
    Can You help me where I do mistake
    Thank You Brano
    Edited by: branislav.dobrotka on Mar 5, 2009 10:41 PM

    1. Didn't help.
    2. Permissions set for all users on the *.dll file. Still nothing.
    [Edit]
    I tried setting EXTPROC_DLLS to ANY but nothing changed. In Oracle documentation, I found something about ENVS not being supported on Windows. Is it really the case? As far as I remember, the default listener.ora file contained an ENVS entry. If so, does any one know how to configure the listener properly?
    Also, could somebody please comment on the following:
    "Oracle Database 11g: PL/SQL Programing" says that external procedures require a separate listener. However, the default listener.ora file looks as follows:
    SID_LIST_LISTENER =
    (SID_LIST =
    (SID_DESC =
    (SID_NAME = CLRExtProc)
    (ORACLE_HOME = C:\Program-Files\Oracle11g\product\11.2.0\dbhome_1)
    (PROGRAM = extproc)
    (ENVS = "EXTPROC_DLLS=ONLY:C:\Program-Files\Oracle11g\product\11.2.0\dbhome_1\bin\oraclr11.dll")
    LISTENER =
    (DESCRIPTION_LIST =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    ADR_BASE_LISTENER = C:\Program-Files\Oracle11g
    My question is: will my computer explode when I append the path to my DLL to the EXPROC_DLLS variable? I know I could see for myself, but maybe there's a pretty good reason why I shouldn't use it like that. I'm a beginner so please don't laugh at me if what I'm saying sounds stupid.

  • Configure oracle for external procedures

    Hi
    I'm preparing to install 9iAS. I'm trying to configure oracle for external
    procedures. When I tested to see if I have an external procedure listener I
    got a no listener message (below). My tnsnames and listener files are below.
    Can someone comment on what I'm doing wrong ?
    Oracle 8.1.7.0.0 on Windows 2000 SP2
    Thanks
    RC
    D:\oracle\ora81\Apache\Apache\conf>tnsping EXTPROC_CONNECTION_DATA
    TNS Ping Utility for 32-bit Windows: Version 8.1.7.0.0 - Production on
    23-AUG-2001 15:21:56
    (c) Copyright 1997 Oracle Corporation. All rights reserved.
    Attempting to contact (ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC0))
    TNS-12541: TNS:no listener
    D:\oracle\ora81\Apache\Apache\conf>
    +
    listener.ora file
    +
    # LISTENER.ORA Network Configuration File:
    D:\oracle\ora81\network\admin\listener.ora
    LISTENER =
    (DESCRIPTION_LIST =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = icimus-xv4iojjv)(PORT = 1526))
    SID_LIST_LISTENER =
    (SID_LIST =
    (SID_DESC =
    (SID_NAME = PLSExtProc)
    (ORACLE_HOME = D:\oracle\ora81)
    (PROGRAM = extproc)
    (SID_DESC =
    (GLOBAL_DBNAME = ORCL)
    (ORACLE_HOME = D:\oracle\ora81)
    (SID_NAME = ORCL)
    LISTENER_01=
    (DESCRIPTION_LIST=
    (DESCRIPTION=
    (ADDRESS_LIST=
    (ADDRESS= (PROTOCOL= TCP) (HOST = icimus-xv4iojjv) (PORT =
    1526))
    (ADDRESS_LIST=
    (ADDRESS= (PROTOCOL= IPC) (KEY=EXTPROC0))
    +
    tnsnames.ora file
    +
    # TNSNAMES.ORA Network Configuration File:
    D:\oracle\ora81\network\admin\tnsnames.ora
    ORCL =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = icimus-xv4iojjv)(PORT = 1526))
    (CONNECT_DATA =
    (SERVICE_NAME = ORCL)
    INST1_HTTP =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = icimus-xv4iojjv)(PORT = 1526))
    (CONNECT_DATA =
    (SERVER = SHARED)
    (SERVICE_NAME = ORCL)
    (PRESENTATION = http://admin)
    EXTPROC_CONNECTION_DATA =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
    (CONNECT_DATA =
    (SID = PLSExtProc)
    (PRESENTATION = RO)
    null

    Is your listener started. This error normally comes when the listener is not started.
    From cmd prompt try this
    cmd> lsnrctl stat
    if you get this error
    LSNRCTL for 32-bit Windows: Version 8.1.7.0.0 - Production on 24-AUG-2001 16:49:46
    (c) Copyright 1998 Oracle Corporation. All rights reserved.
    Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
    TNS-12541: TNS:no listener
    TNS-12560: TNS:protocol adapter error
    TNS-00511: No listener
    32-bit Windows Error: 2: No such file or directory
    Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=incq127e)(PORT=1521)))
    TNS-12541: TNS:no listener
    TNS-12560: TNS:protocol adapter error
    TNS-00511: No listener
    32-bit Windows Error: 61: Unknown error
    that means listerner is not started.
    from cmd prompt or from control panel services run this command
    cmd> lsnrctl start
    and then try the tnsping utilit

  • Problem with Oracle external procedures and Microsoft Active Directory

    Hi,
    Our server was recently updated to use Microsoft Active Directory. However, we noticed that all external procedure calls keeps on failing with ORA-28575: unable to open RPC connection external procedure agent. Everything was working fine before we migrated to Active Directory which is why we can say that the listener is configured correctly.
    Any idea on how we can make extproc calls with Active Directory?
    thanks.

    Michael,
    Oracle Forms does support Single Sign-On (SSO). Take a look at Oracle Containers for J2EE Security Guide: OC4J Java Single Sing-On. Also take a look at the Oracle Forms 10g Sample Code and scroll to the SSO demo under the Forms Services Demo section. There are also, numerous other documents available via Google. ;-)
    Craig B-)
    If someone's response is helpful or correct, please mark it accordingly.

  • Problem with external procedure

    Please,
    i'm doing some experiments in Microsoft Win2003 environment calling a c function as external procedures.
    I've build a sample using Dev-C++ that make a DLL (i don't know c language) named sysDLL.dll
    DllClass::DllClass(char *cmd)
    int num;
    num = system(cmd);
    I need only to execute some OS command from PL/SQL (rdbms 10.2).
    I've putted DLL in $ORACLE_HOME\bin.
    Then I've created library with this statement :
    Create Library scott.c_sysdll as 'C:\oracle\product\10.2.0\db_3\bin\sysdll.dll'
    and at the end I've created the procedure :
    create or replace procedure scott.shell(cmd IN varchar2)
    as language C
    library c_SysDll
    name "DllClass"
    parameters (cmd string);
    But when I execute this procedure from sql*plus I've always get :
    ORA-06521: PL/SQL: Error mapping function
    ORA-06522: Unable to load symbol from DLL
    ORA-06512: at "SCOTT.SHELL", line 1
    ORA-06512: at line 1
    Please help me, thanks !

    Suggest that you first make it much simpler. Do not object orientation. Use plain vanilla flavour C. And even before using C, use a kernel call instead. For example, the gethostname() is a standard Socket call that you will find on many operating system (including Windows & Unix).
    The following code sample illustrates (can be run as is via SQL*Plus):<font color="blue">
    -- specify the external library (shared lib on Unix, DLL on Windows)
    create or replace library libc as 'libc.sl';
    -- The kernel call that we're going to wrap with a PL/SQL function:
    --      int gethostname(char *hostname, size_t size);
    -- wrapping this API call with a PL/SQL function
    create or replace function gethostname( hostname OUT string, size_t binary_integer ) return binary_integer is
            external
            library libc
            name "gethostname"
            language C
            calling standard C
            parameters
                    hostname        STRING,
                    size_t          INT
    -- calling the kernel API routine from within PL/SQL
    set serveroutput on
    declare
            host$   varchar2(60);
            rc$     integer;
    begin
            rc$ := gethostname( host$, 60 );
            dbms_output.put_line( 'hostname is ['|| host$ ||'] return code=['|| TO_CHAR(rc$) || ']' );
    end;
    /</font>
    <p>
    Of course, the DLL name for Window is different than the Shared Library ('libc.sl') used in the above snippet. Do not have a Win32 Oracle platform to test on, but you should find this API call in the winsock.dll library.
    <p>
    As for writing your custom extproc in C. Plain vanilla C is something as follows:
    int dosomestuff()
      return( 123456 );
    <p>
    Remember that this function has to be exported in the DLL interface.
    <p>
    Also keep in mind that using extproc is usually the last option to pursue when dealing with Oracle development. The basic rules are as follows:
    1. Do it in SQL.
    2. If it cannot be done in SQL, do it as a PL/SQL proc
    3. If if cannot be done in PL/SQL. do it as a Java stored proc
    4. If if cannot be done in Java, do is as an external proc<p>
    The times that I need to resort to using Java is less than a handful (most obvious one is using Java to gain o/s command line access). I have never put external proc code into production as we have yet to have a need for something so exceptional, that it cannot be done using SQL, PL/SQL or Java as the last resort.

  • ORA-28575: unable to open RPC connection to external procedure agent when trying to connect ORE.connect

    Hello,
    I had installed ore 1.3.1 windows server 2008 on top of Oracle DB 11.2.0.3 ,but when I connect the database,it didn't work.
    That is my code and error code.
    ore.connect(user = "rquser", sid = "db11g", host = "....", password = "....", all = TRUE)
    Got error as below:
    error.oci.GetQuery(conn, statement, data = data, prefetch = prefetch, :
    ORA-28575: unable to open RPC connection to external procedure agent
    ORA-06512: at "RQSYS.RQEVALIMPL", line 17
    ORA-06512: at "RQSYS.RQEVALIMPL", line 14
    ORA-06512: at line 4
    Also i have follwed the below link:
    ///ORE1.3-ore-server-win-x86_64-1.3,error ORA-28575: unable to open RPC connec
    But failed to resolve the problem.
    Below are the TNS and Listener file entry:
    # listener.ora Network Configuration File: F:\OracleDB\product\11.2.0\dbhome_1\network\admin\listener.ora
    # Generated by Oracle configuration tools.
    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (SID_NAME = EXTPROC)
          (ORACLE_HOME = H:\ORA11G\product\11.2.0\dbhome_1)
          (PROGRAM = extproc)
          (ENVS = "EXTPROC_DLLS=ONLY:H:\ORA11G\product\11.2.0\dbhome_1\bin\oraclr11.dll")
    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
          (ADDRESS = (PROTOCOL = TCP)(HOST = 10.168.11.69)(PORT = 1521))
    ADR_BASE_LISTENER = H:\ORA11G
    -============================
    # tnsnames.ora Network Configuration File: F:\OracleDB\product\11.2.0\dbhome_1\network\admin\tnsnames.ora
    # Generated by Oracle configuration tools.
    ORACLR_CONNECTION_DATA =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
        (CONNECT_DATA =
          (SID = EXTPROC)
          (PRESENTATION = RO)
    DB11G = 
    (DESCRIPTION =   
      (ADDRESS_LIST=
       (ADDRESS = (PROTOCOL = TCP)(HOST = 10.168.11.69)(PORT = 1521)) 
      (CONNECT_DATA =   
        (SERVER = DEDICATED) 
        (SID = DB11G)
    ====================================================
    Thanks
    Sandy

    Hi Sandy,
    If you set EXTPROCS_DLLS=ANY in the listener and then restart the listener, does it fix the problem?
    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (SID_NAME = EXTPROC)
          (ORACLE_HOME = H:\ORA11G\product\11.2.0\dbhome_1)
          (PROGRAM = extproc)
          (ENVS = "EXTPROC_DLLS=ANY")
    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
          (ADDRESS = (PROTOCOL = TCP)(HOST = 10.168.11.69)(PORT = 1521))
    Sherry

  • Could not start the app due to a configuration problem

    Hi Gurus,
    I have an issue to be resolved asap, need your assistance.
    I have implemented SAP Fiori apps (Approve Purchase Order, Approve Purchase Contract, My Leave Request and Approve Leave Request)
    We have only one Gateway system and 3 back end ECC systems.
    Gateway Client 220 is integrated with ECC Dev and performed all the configurations and tested successfully.
    We have created a new client 320 with a copy of client 220, Integrated 320 client to ECC quality system and performed necessary configurations and while testing Approve Purchase order and Approve Purchase Contract tiles are loading the count from ECC Quality system but when I click on the tile it throws an error "could not start the app due to a configuration problem" and when I click the error ot is being redirected to Client 220.
    From the inspect element I found below error
    2015-04-13 12:22:13 INTEROP service's ResolveLink operation returned 2 targets for hash '#PurchaseOrder-approve', first one is used. - used target: {"id":"PurchaseOrder-approve~652","shellType":"FLP","postParameters":"","text":"Approve Purchase Orders","applicationData":"SAPUI5.Component=ui.s2p.mm.purchorder.approve","applicationAlias":"ApprovePurchaseOrders","applicationType":"URL","url":"/sap/bc/ui5_ui5/sap/mm_po_apv"}
    ignored target: {"id":"PurchaseOrder-approve~65k","shellType":"FLP","postParameters":"","text":"Approve Purchase Orders","applicationData":"SAPUI5.Component=ui.s2p.mm.purchorder.approve","applicationAlias":"ApprovePurchaseOrders","applicationType":"URL","url":"/sap/bc/ui5_ui5/sap/mm_po_apv"} sap.ushell_abap.adapters.abap.NavTargetResolutionAdapter
    I did not found any duplicate # key entries in table USOBHASH.
    Any response is highly appreciated, thanks in advance
    Regards,
    Srujan

    Hi Michael,
    Thanks for that, I have raised an OSS message to SAP, to seek their assistance on the solution I followed to fix the issue. I have reverted back the changes and reproduced the issue for SAP guys to investigate further, at last they concluded me there is an external alias defined for /sap/bc/ui5_ui5/sap in transaction SICF in GP1/320, which contains a hard-coded client 220.
    This is responsible for the fact that the services are redirected/opened in client 220
    After removing the client hard-coded in system alaises under /sap/bc/ui5_ui5/ in transaction SICF, I have reverted back the change from "Alternative Logon Procedure" to "standard" in logon procedure of each service and tested, now the issue got resolved.
    This could help someone to resolve the similar issue.
    Thanks everyone
    Regards,
    Srujan

  • 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

  • ORA-28575: unable to open RPC connection to external procedure agent

    Hi everybody,
    Could you please help me with this problem? I'm trying to configure Oracle XE 11g for external procedures, this because I have to access some procedures in a DLL made in Delphi 6.0, but even with the simplest of the dll I make, like a sum made in C, I can't get pass this error ORA-28575: unable to open RPC connection to external procedure agent.
    This is my listener.ora:
    SID_LIST_LISTENER =
    (SID_LIST =
    (SID_DESC =
    (SID_NAME = PLSExtProc)
    (ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server)
    (PROGRAM = extproc)
    (SID_DESC =
    (SID_NAME = CLRExtProc)
    (ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server)
    (PROGRAM = extproc)
    LISTENER =
    (DESCRIPTION_LIST =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
    (ADDRESS = (PROTOCOL = TCP)(HOST = myPC)(PORT = 1521))
    DEFAULT_SERVICE_LISTENER = (XE)
    and this is my tnsnames.ora:
    XE =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = myPC)(PORT = 1521))
    (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME = XE)
    EXTPROC_CONNECTION_DATA =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
    (CONNECT_DATA =
    (SID = PLSExtProc)
    (PRESENTATION = RO)
    ORACLR_CONNECTION_DATA =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
    (CONNECT_DATA =
    (SID = CLRExtProc)
    (PRESENTATION = RO)
    Do you know what could be wrong? I'm out of ideas and google search...
    Also, is there any difference in a calling for a DLL made on VB and one made in Delphi??
    Thanks and Regards,

    Hello,
    This error could appear due to issues with configuration of your listener, database or with extproc. First check that the permissions on extproc in your Oracle_home specified in your listener.ora file are valid:
    Run the following ./extproc and it should display the banner.
    If above is ok, then check for the domain name. One probable reason could be that if default_domain is set and that domain is not appended to the service name in tnsnames.ora, the connection fails.
    regards
    fahdmirza.blogspot.com

  • Lost RPC Connection to external procedure agent....

    Hi,
    I have a sample.dll fil & i have created a library by the following command...
    create or replace library trend_lib as 'C:\oracle\product\10.2.0\db_1\BIN\sample.dll';
    'C:\oracle\product\10.2.0\db_1\BIN\sample.dll';------------this is the location where i keep the sample.dll file .
    Then i have created a package
    create or replace PACKAGE p1
    as
    FUNCTION trend( inp IN BINARY_INTEGER) return BINARY_INTEGER as
    LANGUAGE C
    LIBRARY trend_lib
    name "polynomial"
    PARAMETERS (inp INT);
    end;
    But when i am trying to execute the following query it shows the errror:::
    SQL> select p1.trend(6) from dual;
    select p1.trend(6) from dual
    ERROR at line 1:
    ORA-28576: lost RPC connection to external procedure agent......
    mine tnsnames.ora file configuration is :
    FIN11G_172.30.0.12 =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 172.30.0.12)(PORT = 1522))
    (CONNECT_DATA =
    (SID = fin11g)
    (SERVER = DEDICATED)
    EXTPROC_CONNECTION_DATA =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
    (CONNECT_DATA =
    (SID = PLSExtProc)
    (PRESENTATION = RO)
    ALMDB =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 172.30.3.11)(PORT = 1521))
    (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME = almdb)
    RSBI =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 172.30.0.12)(PORT = 1521))
    (CONNECT_DATA =
    (SID = rsbi)
    (SERVER = DEDICATED)
    And listener.ora file is....
    SID_LIST_LISTENER =
    (SID_LIST =
    (SID_DESC =
    (SID_NAME = PLSExtProc)
    (ORACLE_HOME = C:\oracle\product\10.2.0\db_1)
    (PROGRAM = extproc)
    (ENVS = "EXTPROC_DLLS=ANY")
    (SID_DESC =
    (GLOBAL_DBNAME = ALMDB)
    (ORACLE_HOME = C:\oracle\product\10.2.0\db_1)
    (SID_NAME = ALMDB)
    (ENVS = "EXTPROC_DLLS=ANY")
    LISTENER =
    (DESCRIPTION_LIST =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 01hw177387.fns.com.au)(PORT = 1521))
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
    )

    Hi;
    please see below:
    ORA-28576 When Executing External Procedure [ID 295721.1]
    ORA-28576 Using External Procedures [ID 113179.1]
    External Procedure Fails With ORA-28576 [ID 468404.1]
    Also see:
    Problem calling dll using extproc
    Regard
    Helios

  • ORA-28576 lost RPC connection to external procedure agent

    Hello!
    NT 4.0, O9i 9.0 and 9.2
    Calling external DLL procedure produces the following error:
    "ORA-28576 lost RPC connection to external procedure agent"
    The external DLL is in the ORACLE_HOME/bin directory.
    The same application works fine on 8.1.7 !
    I didn't find any useful info in 9i docs (App. dev. fundamentals; Net guide...).
    Is there any significant difference in EXTPROC feature between 8.1.7 and 9.x ?
    Thanks for any useful info
    Laszlo
    # LISTENER.ORA Network Configuration File: D:\ORANT\network\admin\listener.ora
    # Generated by Oracle configuration tools.
    LISTENER =
    (DESCRIPTION_LIST =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = dljk1)(PORT = 1521))
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
    SID_LIST_LISTENER =
    (SID_LIST =
    (SID_DESC =
    (SID_NAME = PLSExtProc)
    (ORACLE_HOME = D:\ORANT)
    (PROGRAM = extproc)
    # TNSNAMES.ORA Network Configuration File: D:\ORANT\NETWORK\ADMIN\tnsnames.ora
    # Generated by Oracle configuration tools.
    ORCL =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = dljk1)(PORT = 1521))
    (CONNECT_DATA =
    (SERVICE_NAME = orcl.dljk)
    EXTPROC_CONNECTION_DATA =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (address = (protocol = ipc)(KEY = EXTPROC0))
    (CONNECT_DATA =
    (SID = PLSExtProc)

    I have the same problem using Windows kernel32.dll. It works fine with Oracle8 and Oracle8i on both Windows NT and Windows2000, but it does not work with Oracle9i on Windows2000. After long discussions, Oracle has admitted that it is a bug. If you have access to metalink then see TAR 2189019.995.
    Bo Pedersen

Maybe you are looking for