ORA-22337 when select geometry within external procedure

Hi all
I want to make a C external procedure. This external procedure need to select a set of geometries (MDSYS.SDO_GEOMETRY) from a table in database.
How can I do that?
Well, I've tried to use callback functions, but I realized that some important OCI object functions don't work on callbacks (like object pinning).
So, I've tried to make a new connection from the external procedure. I can do that, but, when I make the object pinning (yes, I did map the SDO_GEOMETRY object to a C struct), I get the error ORA-22337 (the type of accessed object has been evolved)
How can I handle this?

Hi Ben,
The use of the union operator tells Oracle only to return a unique set of rows, hence a sort is done (in this case attempted, since there is no geometry sorting routine).
If you choose union all, then no sort will be attempted.
Hope this helps,
dan

Similar Messages

  • ORA-22950 when selecting geometry and using union

    Any query where results are UNIONed where an sdo_geometry is in the selection list (such as the one below) gives me "ORA-22950 cannot ORDER objects without MAP or ORDER method".
    select p.point_id id, p.geom from point p
    union
    select l.line_id id, l.geom from line l
    Perhaps it's possible to define a map or order method for sdo_geometry (or perhaps not), but I don't want to order by geometry.
    I'm running this within SQL Plus (either 8.1.5.0.0 or 8.1.6.0.0 will do it)
    and am connecting to
    "Oracle8i Enterprise Edition Release 8.1.6.0.0 - Production
    With the Partitioning option
    JServer Release 8.1.6.0.0 - Production"
    I tried adding an order by clause to order by id, to no effect.
    Any ideas?

    Hi Ben,
    The use of the union operator tells Oracle only to return a unique set of rows, hence a sort is done (in this case attempted, since there is no geometry sorting routine).
    If you choose union all, then no sort will be attempted.
    Hope this helps,
    dan

  • Getting "ORA-28576: lost RPC connection to external procedure agent" for R scripts.

    Hello,
    I am trying R integration with OBIEE. As part of this, I have created a simple R script for a scatter plot. Below is the R script
    begin
      sys.rqScriptCreate('randomRedDots',
                         'function()
                            res <- 1:10
                            plot(1:100, rnorm(100), pch=21, bg="red", cex=2)
                            res
    end;
    I am testing this script in SQL Developer by executing the below sql:
    select image
    from table(rqEval(NULL,
                      'PNG',
                      'randomRedDots')
    During these tests, very often, I get ORA-28576 error when I run the SQL. The complete error is:
    ORA-28576: lost RPC connection to external procedure agent
    ORA-06512: at "RQSYS.RQEVALIMPL", line 77
    ORA-06512: at "RQSYS.RQEVALIMPL", line 74
    28576. 00000 -  "lost RPC connection to external procedure agent"
    *Cause:    A fatal error occurred in either an RPC network connection,
               the extproc agent, or the invoked 3GL after communication had
               been established successfully.
    *Action:   First check the 3GL code you are invoking; the most likely
               cause of this error is abnormal termination of the
               invoked "C" routine. If this is not the case, check for
               network problems. Correct the problem if you find it. If all
               components appear to be normal but the problem persists, the
               problem could be an internal logic error in the RPC transfer
               code.  Contact your customer support representative.
    However, if I re-run the SQL, I do not get this message. This happens at random.
    Any pointers to why this error occurs?
    Thanks,
    Abhishek

    Abhishek,
    Please look for a core file in $ORACLE_HOME/hs/log and look for errors in the call stack associated with the core file.
    Examining the errors will help identify the cause of the intermittent ORA-29576 error.
    Thank you,
    Sherry

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

  • 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

  • ORA-01410 when selecting data via ROWID

    hi there,
    after update on 11.2.0.2 we are getting the following error in our application when selecting a record using the comparison via the ROWID:
    select s.rowid , S.VRZNG_ENHT_TITEL from vws_vrzng_enht_haupt_sys s where s.rowid='AAASN0AAFAAACBUAAB';
    -- => ORA-01410 (it doesn't matter which other column additionally to the rowid will be chosen)
    performing the same select but using the * for all data
    select s.rowid , s.* from vws_vrzng_enht_haupt_sys s where s.rowid='AAASN0AAFAAACBUAAB';
    -- => one row will be received.
    that is very strange to me.
    Using the former release 10.2.0.4 everything was fine without receiving such an error.
    Also the dirty workaround with setting the optimizer_features_enable to 10.2.0.4 will work....
    Has anyone faced this error, too? Any help will be higly appreciated.
    thanks Stefan

    Plan causing the ORA-01410:
    | Id  | Operation                    | Name            | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT             |                 |     1 |    72 |     1   (0)| 00:00:01 |
    |   1 |  NESTED LOOPS                |                 |     1 |    72 |     1   (0)| 00:00:01 |
    |   2 |   NESTED LOOPS               |                 |     1 |    57 |     1   (0)| 00:00:01 |
    |   3 |    TABLE ACCESS BY USER ROWID| TBS_VRZNG_ENHT  |     1 |    54 |     1   (0)| 00:00:01 |
    |*  4 |    INDEX UNIQUE SCAN         | CPK_GSFT_OBJ    |    22 |    66 |     0   (0)| 00:00:01 |
    |*  5 |   INDEX UNIQUE SCAN          | CUK_GOBH_GO2_ID |    17 |   255 |     0   (0)| 00:00:01 |
    Predicate Information (identified by operation id):
       4 - access("G"."GSFT_OBJ_ID"="VRZNG_ENHT_ID")
       5 - access("GOBH"."GSFT_OBJ_2_ID"="G"."GSFT_OBJ_ID")Plan using the DUAL subquery:
    | Id  | Operation                    | Name                    | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT             |                         |     1 |    39 |     4   (0)| 00:00:01 |
    |   1 |  NESTED LOOPS                |                         |     1 |    39 |     2   (0)| 00:00:01 |
    |   2 |   NESTED LOOPS               |                         |     1 |    18 |     1   (0)| 00:00:01 |
    |*  3 |    TABLE ACCESS BY USER ROWID| TBS_GSFT_OBJ_BZHNG_HRCH |     1 |    15 |     1   (0)| 00:00:01 |
    |   4 |     FAST DUAL                |                         |     1 |       |     2   (0)| 00:00:01 |
    |*  5 |    INDEX UNIQUE SCAN         | CPK_GSFT_OBJ            |     1 |     3 |     0   (0)| 00:00:01 |
    |   6 |   TABLE ACCESS BY INDEX ROWID| TBS_VRZNG_ENHT          |     1 |    21 |     1   (0)| 00:00:01 |
    |*  7 |    INDEX UNIQUE SCAN         | CPK_VRZNG_ENHT          |     1 |       |     0   (0)| 00:00:01 |
    Predicate Information (identified by operation id):
       3 - access(CHARTOROWID( (SELECT 'AAASN0AAFAAACBUAAB' FROM "SYS"."DUAL" "DUAL")))
       5 - access("GOBH"."GSFT_OBJ_2_ID"="G"."GSFT_OBJ_ID")
       7 - access("G"."GSFT_OBJ_ID"="VRZNG_ENHT_ID")Have you spotted the difference yourself? One execution plan applies the ROWID to a different table than the other one. You might have hit a bug here, potentially caused by a transformation applied by the optimizer.
    Can you show us the execution plan that worked in 10.2.0.4?
    Would it be possible to share the definition of the view "vws_vrzng_enht_haupt_sys"?
    Hope this helps,
    Randolf

  • Ora-01843 when Form is based on procedure

    I create a page using form based on procedure option. I have a date picker item in the form that corresponds to a date parameter in the procedure.
    I select every date format APEX provided from APEX date picker and always got ora-01843(not a valid month) error when I tried to sumbit the form.
    I have changed PICK_DATE_FORMAT_MASK to DD/MM/YYYY at application level but cannot solve the problem.
    Does anyone using a "Form on Procedure" and happen to have a date column? Do you have similar problem?
    ps. this problem only occurs to "Form on Procedure". I have no problem with master details or many other form options. I am using APEX 3.1.

    Hello user3003555,
    I have created forms based on procedure and used date pickers on them but don't recall encountering the date format error ORA-1843. I used "Date Picker (DD-MON-YYYY)" which corresponds to my application date format. I'm not sure what else I can tell you. Have you tried picking a date where the month and day are interchangeable to confirm that it is a formatting issue?
    - Alwyn

  • How to avoid ORA-3113 when selecting from XMLTYPE table

    Hi,
    If I register an XML-schema, Oracle automatically creates a table xxxxxx_tab of XMLTYPE. (I use Oracle 9.2.0.1)
    When I do a DESCRIBE or a SELECT from this table I get the error: 'ORA-03113:
    end-of-file on communication channel' and my connection is dropped.
    I opened a TAR for this and Oracle says: 'It is an internal bug so cannot be viewed in metalink. This is fixed in release 10i.' (do they mean oracle DB rel 10i, or a new version of XDK?)
    I saw an example in Oracle Magazine (Jan
    2003) "Make XML Native and Relative" about Oracle 9i Rel 2 and XML. As you can see in codeListing 7, the author also does a select from such a
    table (CD331_tab): Why doesn't he have any problems?
    Is there a workaround for this bug? What's the purpose of being able to automatically upload XML-data to a registered schema if you can't do a select of the data?
    Thank you!

    It appears that the XML Schema is not entirely valid. Specifically, the definition of element "DeviceCategory" has two definitions of element "Audio" appearing within a <choice> model i.e. something like :
    <element name="DeviceCategory">
    <choice>
    <sequence>
    <element name="Audio">
    </sequence>
    <sequence>
    <element name="Audio">
    </sequence>
    </choice>
    This is disallowed by XML Schema spec per. the Unique Particle Attribution Constraint. The general idea is that a XML Schema describes a determinstic content model i.e. schema processor can always unambiguosly determine the matching declaration when it encounters an element. However that's not the case with the declaration above. On encoutering "Audio", it could match either the first or the second declaration of the element. Hence the error.
    You will have to rework the schema to avoid this constraint. One mechanism could be to define complexType and their restrictions.
    - Ravi

  • ORA-31020 when using XML with external DTD or entities

    I'd like to parse XML documents against a modular DTD that references other DTDs. This works fine with Oracle 9i. But after upgrading to 11g, the parsing of XML-instances fails and DBMS_XMLPARSER.parseClob produces ORA-31020.
    The same error occurs even if I simply try to store XML with a reference to an external DTD as xmltype:
    SQL> select xmltype('<?xml version="1.0" encoding="iso-8859-1"?><!DOCTYPE ewl-artikel SYSTEM "http://www.foo.com/example.dtd"><test>123</test>') from dual;
    ERROR:
    ORA-31020: Der Vorgang ist nicht zulässig, Ursache: For security reasons, ftp
    and http access over XDB repository is not allowed on server side
    ORA-06512: in "SYS.XMLTYPE", Zeile 310
    ORA-06512: in Zeile 1
    How can I use external DTDs on remote servers in order to parse XML in an 11g database??? Any ideas for a workaround? Thanks in advance!

    This is my PL/SQL validation procedure:
    procedure validatexml (v_id in number default 0) is
    PARSER DBMS_XMLPARSER.parser;
    DTD_SOURCE clob;
    DTD_DOCUMENT xmldom.DOMDocumentType;
    XML_INSTANCE xmltype;
    BEGIN
    -- load DTD from XDB repository
    SELECT httpuritype('http://example.foo.de/app1/DTD1.dtd').getclob() into DTD_SOURCE from dual;
    -- load XML instance
    select co_xml into XML_INSTANCE from tb_xmltab where co_id=v_id;
    -- parse XML instance
    PARSER := DBMS_XMLPARSER.newParser;
    xmlparser.setValidationMode( PARSER , false);
    xmlparser.parseDTDClob( PARSER , DTD_SOURCE , 'myfirstnode' );
    DTD_DOCUMENT := xmlparser.getDoctype( PARSER );
    xmlparser.setValidationMode( PARSER , true );
    xmlparser.setDoctype( PARSER , DTD_DOCUMENT );
    DBMS_XMLPARSER.parseClob( PARSER , v_xml );
    DBMS_XMLPARSER.freeParser(PARSER);
    htp.print('<P>XML instance succesfully validated!<P>');
    end validatexml;

  • ORA-01446 when selecting ROWID from View with Union

    I have a View that uses a Union to select from 3 tables. I would like the View to return the ROWID for the record that is returned so that I can update it in my form. The View compiles fine but when I select from the View I get ORA-01446 error.
    Example of my view:
    SELECT ROWID, col_a, col_b, col_c
    FROM tab_a
    UNION ALL
    SELECT ROWID, col_a, col_b, col_c
    FROM tab_b
    UNION ALL
    SELECT ROWID, col_a, col_b, col_c
    FROM tab_c
    I need the ROWID because my tables do not contain UNIQUE/PRIMARY key constraints. In my form I want to update the view with an underlying INSTEAD OF database trigger.
    Any suggestions?

    I think it will work if you give the column an alias (ie a name after the first rowid) and select that instead.
    You will probably also need another column in your view indicating which table the row came from if you want to update it.

  • ORA-00903 when selecting from a view

    Hi,
    I'm migrating our existing database on 8.1.7 to 9.2 and I keep getting an ORA-00903 error (on Oracle 9.2.0.1.0) when I try to select from a view with nested selects. Here's a very simple example - no rows are returned when I issue the query (its a dummy query, but it illustrates the problem). However, as soon as I turn it into a view, and do a select from the view, I get an Invalid Table Name error. Can anyone suggest why this is happening?
    So... This works on its own
    SELECT ID
    FROM (
    SELECT /*+ ORDERED */
    t.id
    FROM tblmsg t,
    tblevent e,
    e_workflowstate s,
    (SELECT e_taskstatus_id
    FROM e_taskstatus s,
    e_workflowplntasks ws
    WHERE s.e_taskstatus_id = ws.taskid
    UNION ALL
    SELECT e_taskstatus_id
    FROM e_taskstatus s,
    e_workflowmantasks ws
    WHERE s.e_taskstatus_id = ws.taskid
    UNION ALL
    SELECT e_taskstatus_id
    FROM e_taskstatus s,
    e_workflowtrgtasks ws
    WHERE s.e_taskstatus_id = ws.taskid) V
    WHERE t.id = e.id
    AND t.id = v.e_taskstatus_id
    AND V.e_taskstatus_id = e.id)
    But this doesn't
    CREATE OR REPLACE VIEW TESTVIEW AS
    SELECT ID
    FROM (
    SELECT /*+ ORDERED */
    t.id
    FROM tblmsg t,
    tblevent e,
    e_workflowstate s,
    (SELECT e_taskstatus_id
    FROM e_taskstatus s,
    e_workflowplntasks ws
    WHERE s.e_taskstatus_id = ws.taskid
    UNION ALL
    SELECT e_taskstatus_id
    FROM e_taskstatus s,
    e_workflowmantasks ws
    WHERE s.e_taskstatus_id = ws.taskid
    UNION ALL
    SELECT e_taskstatus_id
    FROM e_taskstatus s,
    e_workflowtrgtasks ws
    WHERE s.e_taskstatus_id = ws.taskid) V
    WHERE t.id = e.id
    AND t.id = v.e_taskstatus_id
    AND V.e_taskstatus_id = e.id);
    View created
    SELECT * FROM TESTVIEW;
    ERROR at line 1:
    ORA-00903: invalid table name
    This works fine on 8.1.7. I haven't tested it on 9.1 though.
    Any ideas?
    Thanks

    One thing to try would be to use SCHEMA.TABLENAME rather than just TABLENAME to refer to the tables.
    Its just a shot in the dark, but hopefully it may help.
    Martin.

  • Got ORA error when trying to execute external file using scheduler

    Hi All,
    I have executed the below program. In the log i have seen the error like below
    BEGIN
    dbms_scheduler.create_job('"TEST_JOB_EXE2"',
    job_type=>'EXECUTABLE', job_action=>
    '/home/upncommon/pub/test123'
    , number_of_arguments=>0,
    start_date=>TO_TIMESTAMP_TZ('23-AUG-2013 05.35.27.557242000 AM -04:00','DD-MON-RRRR HH.MI.SSXFF AM TZR','NLS_DATE_LANGUAGE=english'), repeat_interval=>
    'freq = minutely;'
    , end_date=>TO_TIMESTAMP_TZ('24-AUG-2013 05.35.27.000000000 AM ASIA/CALCUTTA','DD-MON-RRRR HH.MI.SSXFF AM TZR','NLS_DATE_LANGUAGE=english'),
    job_class=>'"DEFAULT_JOB_CLASS"', enabled=>FALSE, auto_drop=>FALSE,comments=>
    'Job to test use of dbms_scheduler'
    dbms_scheduler.set_attribute('"TEST_JOB_EXE2"','credential_name',
    '"EXECUTABLE"');
    dbms_scheduler.enable('"TEST_JOB_EXE2"');
    COMMIT;
    END;
    "EXTERNAL_LOG_ID="job_196709_23673",
    ORA-27369: job of type EXECUTABLE failed with exit code: Input/output error
    STANDARD_ERROR="Launching external job failed: Login executable not setuid-root""

    my version details are:
    Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
    PL/SQL Release 11.2.0.3.0 - Production
    "CORE 11.2.0.3.0 Production"
    TNS for Linux: Version 11.2.0.3.0 - Production
    NLSRTL Version 11.2.0.3.0 - Production

  • ORA-02063 when selecting over DBLINK

    Hey, I'm having an issue where a complex select is returning a 02063 (it has an 'invalid identifier' on a column that clearly exists)
    I would post the query but it's pretty large and joins 2 views. One of the views selects through a dblink, so it's imbedded pretty far in. I cannot isolate parts of the query that are causing the issue because of this.
    What I wanted to know is the best way to write the link or the view to avoid these parser issues. Here's the complete error message I get as well as the script for the link:
    ORA-00904: "A"."BUYING_MEMBER_ID": invalid identifier
    ORA-02063: preceding line from WEBAPP6
    create public database link "WEBAPP6.REGRESS.RDBMS.DEV.US.ORACLE.COM"
    connect to ABC_WEBAPP
    identified by "<pwd>"
    using 'abcdb';
    And the script for the view which uses the link:
    SELECT a.ID member_id, a.NAME member_nm, a.url member_url, a.address_1,
    a.address_2, a.city, a.fda_license, a.is_abc_board_member,
    a.is_gsabc_board_member, a.is_abc_foundation_board_member,
    c.short_name state_id, d.code zip_cd, e.code county_cd, a.phone_main,
    a.phone_alt, a.fax, b.financial_ctr_id, b.benchmarking_ctr_id,
    b.piag_ctr_id
    FROM MEMBER@webapp6 a LEFT OUTER JOIN lu_member_dw b ON a.ID = b.member_id
    JOIN state@webapp6 c ON a.state_id = c.ID
    JOIN zip@webapp6 d ON a.zip_id = d.ID
    JOIN county@webapp6 e ON a.county_id = e.ID
    UNION
    SELECT member_id, member_nm, member_url, ' ', ' ', ' ', ' ', ' ', ' ', ' ',
    ' ', ' ', ' ', ' ', ' ', ' ', financial_ctr_id, benchmarking_ctr_id,
    piag_ctr_id
    FROM lu_member_dw
    WHERE member_id NOT IN (SELECT ID
    FROM MEMBER@webapp6)

    Always use alias names! If you have no alias name, create one. Without alias the database can just guess where this column is coming from.
    Consider UNION ALL instead of union (not sure if it is the same result).
    Consider to create a view on the other database that joins all tables and that you access over the DB-Link.
    There are also some hints that influences where the selects are executed (on your DB or on the other one), however I forgot the name of them (PUSH_SUB?).

  • 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-24777 when trying to call multiple Oracle SPs...

    I had a SP in Oracle that called another SP in a SQL Server DB via DBLink. I was calling the Oracle SP from VB.NET (3.5) and because of transaction commiting I was not able to do this, so I removed the SQL SERVER SP call from inside the Oracle SP. However, I still get a ORA-24777 error: use of non-migratable database link not allowed.
    If I removed the reference to the other DB, why would I still get an error referencing the DBLINK?
    I'm using Oracle 10.2 and VB.NET (3.5).
    old SP CODE:
    I have a package called USP_VALIDATION
    In the package body, I was calling BATCH(Queue, RefNo) [a procedure in USP_VALIDATION]
    In this BATCH procedure, I would call SP_GET_BILLING_OPTION_TCIS(accNo, lclBillingOption) [note TCIS is the SQL DB and lclBillingOption would be the TCIS billing option]
    ... do something with lclBillingOption
    I changed this to the following:
    In the package body, I now call BATCH(Queue, RefNo, BillingOption)
    In this new BATCH procedured, I now DON'T call SP_GET_BILLING_OPTION_TCIS as I already retrieved it first before I call USP_VALIDATION in the .NET code
    ... do something with the BillingOption passed in as a parameter when calling BATCH.
    What I'm really trying to do is make sure that the transaction commitment/rollback is handled correctly in the following senario.
    What happened before was because the one SP was calling another SQL database via DBLINK, it was not working correctly. So we removed the DBLINK and now call the SQL database before we do any action with the Oracle SPs.
    Here is my code in .NET:
    Public Function EnrollElectricCustomer(ByVal EnrollParameters As IEnrollmentParameters) As IEnrolleSearch Implements Interfaces.IEnrollmentManager.EnrollElectricCustomer
            Dim dacRCES As New Dac.RC.EnrolleeDataService()
            Dim dacRCAS As New Dac.RC.AccountDataService()
            Dim oServiceType As IServiceType = New ServiceType(ServiceTypeEnum.Gas)
            Dim dacCSS As New Dac.Css.CssCustomerAccount
            Dim oBillingOption As IBillingOption = Nothing
            Dim business As New AccountManager
            Dim WorkQID As Long = 0
            Dim enrolleeSearch As EnrolleeSearch = Nothing
            Dim MainTranScope As TransactionScope = New TransactionScope(TransactionScopeOption.RequiresNew)
            Try
                EventLog.WriteEntry("RCIS", "Access --> EnrollElectricCustomer")
                ' comment - here I go to SQL Server to get the Billing Option instead of doing it thru DBLINK
                oBillingOption = dacRCAS.GetCurrentBillingOption(EnrollParameters.CssAccountNumber, oServiceType)
                Using MainTranScope
                    'first save the Enrollment record to the Enroll Queue
                    WorkQID = dacRCES.SaveElectricEnrollee(EnrollParameters)
                    'need to put account number needed into a collection
                    Dim oColAccounts As New Generic.List(Of IAccountRefreshRequests)
                    Dim oColCSSAccounts As New Generic.List(Of ICustomerAccount)
                    Dim oAccount As New AccountRefreshRequests
                    Dim oCustomerAccount As ICustomerAccount
                    Dim refreshstring As String = String.Empty
                    oAccount.CSSAccountNumber = EnrollParameters.CssAccountNumber
                    oAccount.CSSAccountNumberNoCheckDigit = EnrollParameters.CssAccountNumber.Substring(0, 14)
                    oAccount.CSSCheckDigit = EnrollParameters.CssAccountNumber.Substring(14, 1)
                    oAccount.ServiceType.CodeString = "E"
                    Dim rStatus As New RefreshStatus
                    rStatus.Code = StatusEnum.NewAccount
                    oAccount.Status.CodeString = rStatus.CodeString()
                    oColAccounts.Add(oAccount)
                    'call CSS passing in collection of account(s) and returning back collection of account(s)
                    oColCSSAccounts = dacCSS.GetCssAccountInfo(oColAccounts)
                    oCustomerAccount = New CustomerAccount
                    oCustomerAccount = oColCSSAccounts.Item(0)
                    refreshstring = business.BuildRefreshString(oCustomerAccount)
                    dacRCES.RefreshElectricAccount(refreshstring)
                    'once refreshed, we need to also run VALIDATION on this enrollent record...
    *' NOTE THAT THIS SP used to CALL SQL via DBLINK but no longer does....*               
                    dacRCES.ValidateElectricEnrollment(WorkQID,oBillingOption)
                    'once validated, we also have to submit the record....
                    dacRCES.SubmitElectricEnrollment(WorkQID)
                    MainTranScope.Complete()
                End Using
                If WorkQID > 0 Then
                    'now we need to retrieve the account enrollment record...
                    enrolleeSearch = dacRCES.FindEnrolleeByEnrollID(WorkQID, ServiceTypeEnum.Electric)
                End If
            Catch ex As Exception
                SendEmail.SendErrorEmail("EnrollElectricCustomer --> " & EnrollParameters.CssAccountNumber, ex.Message)
                RcCommon.WriteExceptionToLog(ex)
                Throw
            End Try
            Return enrolleeSearch
        End FunctionI'm concerned that if any one of the various calls fails, I want to rollback the ENTIRE transaction. Right now I
    a) insert the row into a table in Oracle,
    b) get detailed information on this account from another database (DB2),
    c) refresh the data in the Oracle DB on this account,
    d) validate the record added (business rules) and then when all done,
    e) to submit the account (which changes statuses for later use).
    If I insert the record but it fails at step d say, I want to rollback everything and remove the record from the Oracle table...
    Edited by: userLynx on Oct 17, 2012 6:37 AM

    EDIT1:
    You posted an edit including code while I was typing original response.
    You may find the following My Oracle Support note helpful. It applies to ODP.NET as well.
    ORA-24777 When Selecting Across a Database Link With Microsoft OLE DB Provider for Oracle [ID 397555.1]
    Just to confirm - is the database link used at all now?
    I know you said that the stored procedure is no longer called, but is the link still used for anything else?
    Also, do you have a call stack from when the exception is raised?
    Edited by: Mark Williams on Oct 17, 2012 9:53 AM

Maybe you are looking for

  • Data Consistency when Copying/ Refreshing ECC 6.0 and SRM-SUS 5.0 Systems

    Hello, We are planning a refresh / system copy of an ECC 6.0 and SRM-SUS 5.0 system The refreshes will be completed from backups taken of production systems refreshed onto the QA Landscape. I have referenced the following SDN thread that provides som

  • Unable to print text in continuity in smartform

    Hi I i am not able to print the whole text in the smartform , it prints half of the text in one line and half in the second . I want to print it in continuity , how do i go about it ? The code i wrote is as follows: CLEAR: ls_object, itab_note, wa_no

  • Cut and Paste Cross References

    As some of you know, I'm updating a book composed of chapter files, with cross references between chapters. This used to be incredibly buggy, with crashes and broken references common. Some of that is improved in CS5.5, but a couple of big issues rem

  • Change port from 8443 to 443 on jakarta-tomcat 6

    Hi all, How can I possibly change the SSL port from 8443 to 443? The default was 8443 and it works fine with that.I've tried to set it to port 443 at the connector tag and all redirectPort in server.xml. However, when I tried to access https://localh

  • Converting Crystal reports to Oracle D2K reports or BI Publisher

    Hi I have one requirement I need to convert crystal reports to oracle D2k reports is there any tool which will make my work easier any body who has work on it please suggest. Thanks in advance Edited by: Qwerty on Jul 9, 2010 12:44 PM