Apex_collection.update_member - call to results in DEADLOCK

We have a wrapper procedure that calls 'apex_collection.update_member'.
This wrapper procedure is an AUTONOMOUS TRANSACTION (to preserve any collection updates if an error/rollback occurs).
We now have the situation where the call to the wrapper procedure is generating a DEADLOCK on 'UPDATE WWV_FLOW_COLLECTION_MEMBERS$'.
I suppose the advice will be to not have the wrapper as an AUTONOMOUS TRANSACTION. Fair enough, but I would like to know why this is occurring ?
Any advice appreciated.
Cheers
Nigel
eg
PROCEDURE update_member
( p_collection_name VARCHAR2
, p_seq VARCHAR2
, p_c001 VARCHAR2 DEFAULT NULL
etc
etc
IS
PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
debug_values('h_core_utils.update_member','collection',p_collection_name,'seq',p_seq);
apex_collection.update_member
( p_collection_name
, p_seq
, p_c001 , p_c002 , p_c003 , p_c004 , p_c005 , p_c006 , p_c007 , p_c008 , p_c009 , p_c010
, p_c011 , p_c012 , p_c013 , p_c014 , p_c015 , p_c016 , p_c017 , p_c018 , p_c019 , p_c020
, p_c021 , p_c022 , p_c023 , p_c024 , p_c025 , p_c026 , p_c027 , p_c028 , p_c029 , p_c030
, p_c031 , p_c032 , p_c033 , p_c034 , p_c035 , p_c036 , p_c037 , p_c038 , p_c039 , p_c040
, p_c041 , p_c042 , p_c043 , p_c044 , p_c045 , p_c046 , p_c047 , p_c048 , p_c049 , p_c050
COMMIT;
END;
DEADLOCK ===>
Deadlock graph:
---------Blocker(s)-------- ---------Waiter(s)---------
Resource Name process session holds waits process session holds waits
TX-0002001e-00011402 84 211 X 84 211 X
session 211: DID 0001-0054-000004E3 session 211: DID 0001-0054-000004E3
Rows waited on:
Session 211: obj - rowid = 0001195E - AAARleAAKAAAEzHAAD
(dictionary objn - 72030, file - 10, block - 19655, slot - 3)
Information on the OTHER waiting sessions:
End of information on OTHER waiting sessions.
Current SQL statement for this session:
UPDATE WWV_FLOW_COLLECTION_MEMBERS$ SET C001 = :B53 , C002 = :B52 , C003 = :B51 , C004 = :B50 , C005 = :B49 , C006 = :B48 , C007 = :
B47 , C008 = :B46 , C009 = :B45 , C010 = :B44 , C011 = :B43 , C012 = :B42 , C013 = :B41 , C014 = :B40 , C015 = :B39 , C016 = :B38 ,
C017 = :B37 , C018 = :B36 , C019 = :B35 , C020 = :B34 , C021 = :B33 , C022 = :B32 , C023 = :B31 , C024 = :B30 , C025 = :B29 , C026 =
:B28 , C027 = :B27 , C028 = :B26 , C029 = :B25 , C030 = :B24 , C031 = :B23 , C032 = :B22 , C033 = :B21 , C034 = :B20 , C035 = :B19
, C036 = :B18 , C037 = :B17 , C038 = :B16 , C039 = :B15 , C040 = :B14 , C041 = :B13 , C042 = :B12 , C043 = :B11 , C044 = :B10 , C045
= :B9 , C046 = :B8 , C047 = :B7 , C048 = :B6 , C049 = :B5 , C050 = :B4 , CLOB001 = :B3 WHERE COLLECTION_ID = :B2 AND SEQ_ID = :B1
----- PL/SQL Call Stack -----
object line object
handle number name
3908c1530 1722 package body FLOWS_030100.WWV_FLOW_COLLECTION
394ecda18 667 package body FSC.H_CORE_UTILS
3a1b85d48 1361 package body RB.H_UTILS
3a7daf678 541 package body RB.H_BENCLM_RO_MAINT
39ca90ee0 1 anonymous block
3aed1a360 1204 package body SYS.DBMS_SYS_SQL
39a95cee8 296 package body SYS.WWV_DBMS_SQL
3ae6e6828 4278 package body FLOWS_030100.WWV_FLOW

Nigel:
The Deadlock graph shows that the waiter and the blocker to be the same session with each wanting an exclusive lock (X) on the same record. In your case the first transaction was what APEX initiated and the second one is caused by the call to the 'auto trans' procedure and these transactions presumably want to act on the same collection member. Hence, removing the 'auto trans' from the procedure is the way to avoid this issue.
varad

Similar Messages

  • APEX_COLLECTION.UPDATE_MEMBER not Working

    Hi.
    I hope someone can help on this matter.
    I have been working with Apex for some time on and off and I and have accomplished more complicated stuff then this.
    Bit this has stopped me in my tracks for 2 days now.
    To the point.
    Onload I create a collection from where I populate a small classical report with a edit link redirecting to a URL(little javascript).
    All this does is show a hidden html region with a few text fields and populates it with the values from the selected row from the report.
    This is then edited and saved, but NOT submitted.
    The save button once again, redirects to a URL(Another small javascript) that passes the values to an On Demand Application process.
    Up to this point everything works fine.
    The process is executed and by different tests I know the values are being received.
    What is suppose to happen is the HTML region gets hidden again and the report refreshed from the collection again.
    That work perfectly BUT.
    For some reason, the APEX_COLLECTION.UPDATE_MEMBER just won't work and I have used this many times before.
    It also DOES NOT PRODUCE ANY ERROR.
    I subsequently broke the application in to a small test but it still won't work.
    The code follows.
    ---------------------------- THE CREATION OF THE COLLECTION ON PAGE LOAD ----------------------------
    DECLARE
      l_collection_name APEX_COLLECTIONS.COLLECTION_NAME%TYPE;
    BEGIN
      l_collection_name := 'TEST1';
      IF apex_collection.collection_exists(l_collection_name) THEN
        apex_collection.delete_collection(p_collection_name => l_collection_name);
      END IF;
      APEX_COLLECTION.CREATE_COLLECTION(p_collection_name => l_collection_name);
      FOR i IN (SELECT t_uid,  --c001 => f01
                       t_name,  --c002 => f02
                       t_name2,  --c003 => f03
                       'O' sts,  --c047 (for record status)
                       wwv_flow_item.md5(t_uid,
                                         t_name,
                                         t_name2) md  --c048 (for optimistic locking)
                        --c049 for (not used in collection/reserevered for seq_id array)
                        --c050 (not used in collection/reservered for delete checkbox array)
                FROM   t_test)
      LOOP
        APEX_COLLECTION.ADD_MEMBER(p_collection_name => l_collection_name,
                                                               p_c001            => i.t_uid,
                                                               p_c002            => i.t_name,
                                                               p_c003            => i.t_name2,
                                                               p_c047            => i.sts,
                                                               p_c048            => i.md);
      END LOOP;
    END;
    ---------------------------- JAVASCRIPT THAT SHOWS AND POPULATES THE HTML REGION  ----------------------------
    function popTest(tUid,tname,tName2,tSeq){
    $x_Show('T_DETAILS');
    $s("P5_T_UID",tUid);
    $s("P5_T_NAME",tname);
    $s("P5_T_NAME2",tName2);
    $s("P5_SEQ",tSeq);
    </script>
    ---------------------------- JAVASCRIPT THAT EXECUTES THE ON DEMAND PROCESS - HIDES THE HTML REGION - REFRESHES THE REPORT  ----------------------------
    function testJtoSQL(){
      var oDBGet = new htmldb_Get(null, $v('pFlowId'), "APPLICATION_PROCESS=MY_TEST", $v('pFlowStepId'));
      oDBGet.addParam('x01', $v('P5_SEQ'));
      oDBGet.addParam('x02', $v('P5_T_UID'));
      oDBGet.addParam('x03', $v('P5_T_NAME'));
      oDBGet.addParam('x04', $v('P5_T_NAME2'));
      var ajaxResult = oDBGet.get();
      $x_Hide('T_DETAILS');
      $("T_LIST").trigger("apexrefresh");
    ---------------------------- THE ON DEMAND PROCESS ----------------------------
    DECLARE
       l_collection_name APEX_COLLECTIONS.COLLECTION_NAME%TYPE;
    BEGIN
      l_collection_name := 'TEST1'
       -- This does not work --
       APEX_COLLECTION.UPDATE_MEMBER (
            p_collection_name => l_collection_name,
            p_seq => apex_application.g_x01,
            p_c001 => apex_application.g_x02,
            p_c002 => apex_application.g_x03,
            p_c003 => apex_application.g_x04);
      commit;
    END;
    I know there will be questions as to why I am doing it this way without submitting the page, so all I will say is that this is just part of a much bigger page with a lot more values to be set before submitting, validation, and processing.
    I really hope someone can help
    JJ

    Hi Peter.
    Firstly, thank you for your response.
    I have used APEX_DEBUG, with no results.
    To check if my values, I have changed the on demand process to actually update the table and not the UPDATE_MEMBER part,
    DECLARE
       l_collection_name APEX_COLLECTIONS.COLLECTION_NAME%TYPE;
    BEGIN
    /*  l_collection_name := 'TEST1'
        APEX_COLLECTION.UPDATE_MEMBER (
            p_collection_name => l_collection_name,
            p_seq => apex_application.g_x01,
            p_c001 => apex_application.g_x02,
            p_c002 => apex_application.g_x03,
            p_c003 => apex_application.g_x04);*/
      update t_test set t_name2 = apex_application.g_x01 || ' - ' || apex_application.g_x02 || ' - ' || apex_application.g_x03 || ' - ' || apex_application.g_x04;
      commit;
    END;
    It updates the table fine and I get my concatenated string in my second string column when checking the database.
    I went through it again and again.
    The APEX_COLLECTION.UPDATE_MEMBER call looks ok to me.
    Maybe I have been staring at it to long, but unless I am missing something, I really don't see anything wrong.
    Any ideas?

  • Application code should not call ensureCache as this may result in deadlock

    I'm seeing this on the coherence console. I don't think I'm calling ensureCache anywhere in my code.
    Oracle Coherence GE 3.4.2/411 <Warning> (thread=DistributedCache, member=4): Application code running on "DistributedCache" service thread(s) should not call ensureCache as this may result in deadlock. The most common case is a CacheFactory call from a custom CacheStore implementation.
    -Andrew

    Take a look at any CacheStore or EntryProcessor implementations you have. In general, it is a bad idea to try to operate on the same cache service while running on that service (e.g. from an EP).
    See here for more details:
    http://coherence.oracle.com/display/COH34UG/Constraints+on+Re-entrant+Calls

  • Apex_collection.update_member results in no data found found

    I'm trying to build a simple scheduling grid using a collection to show who is available on what day of the week. This is the table:
    CREATE TABLE WORK (
    USER_ID NUMBER(9) NOT NULL,
    MON VARCHAR2(1),
    TUE VARCHAR2(1),
    WED VARCHAR2(1),
    THU VARCHAR2(1),
    FRI VARCHAR2(1),
    CONSTRAINT WORK_FROM_HOME_PK PRIMARY KEY (USER_ID));
    My create collection script is:
    if apex_collection.collection_exists(p_collection_name=>'WFH') = TRUE then
    apex_collection.delete_collection(p_collection_name=>'WFH');
    end if;
    apex_collection.create_collection_from_query(
    p_collection_name=>'WFH',
    p_query=>'SELECT user_id,
    mon,
    tue,
    wed,
    thu,
    fri
    FROM work');
    As I try to sort this out, I have two reports on the page. One is for the schedule/collection processing, & the other simply shows the collection so I can verify changes:
    SELECT seq_id, c001 emp_id, c002 mon, c003 tue, c004 wed, c005 thu, c006 fri -- my working query
    FROM apex_collections
    WHERE collection_name = 'WFH'
    select * from apex_collections -- this shows the entire collection
    where collection_name = 'WFH'
    I have 2 buttons & processes to add new rows & undo changes, & a button for updates. (I'm not trying to update the underlying table yet, just update the collection.) The add & undo seem to work fine. When I try to update the collection, I get a "no data found" error. The update collection process is:
    BEGIN
    FOR i IN 1..apex_application.g_f01.count LOOP
    apex_collection.update_member(
    p_collection_name => 'WFH',
    p_seq => apex_application.g_f01(i),
    p_c001 => apex_application.g_f02(i),
    p_c002 => apex_application.g_f03(i),
    p_c003 => apex_application.g_f04(i),
    p_c004 => apex_application.g_f05(i),
    p_c005 => apex_application.g_f06(i),
    p_c006 => apex_application.g_f07(i));
    END LOOP;
    END;
    I suspect there is a problem with the way I'm trying to reference the sequence, but have yet to figure it out.
    Suggestions?

    As you can see below, the sequence & emp_id are not getting assigned the f01 or f02. That starts with the updatabl fileds on the report.
    &lt;td class="t1Body" colspan="2"&gt;&lt;div id="report_3645482605396131456_catch"&gt;&lt;table cellpadding="0" border="0" cellspacing="0" summary="" id="report_R3645482605396131456"&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;
    &lt;td&gt;&lt;table cellpadding="0" border="0" cellspacing="0" summary="" class="t1standard"&gt;
    &lt;tr &gt;&lt;th id="SEQ_ID" class="t1header"&gt;Seq Id&lt;/th&gt;&lt;th id="EMP_ID" class="t1header"&gt;Emp Id&lt;/th&gt;&lt;th id="MON" class="t1header"&gt;Mon&lt;/th&gt;&lt;th id="TUE" class="t1header"&gt;Tue&lt;/th&gt;&lt;th id="WED" class="t1header"&gt;Wed&lt;/th&gt;&lt;th id="THU" class="t1header"&gt;Thu&lt;/th&gt;&lt;th id="FRI" class="t1header"&gt;Fri&lt;/th&gt;&lt;/tr&gt;
    &lt;tr onmouseover="row_mouse_over3645482605396131456(this, 1)" onmouseout="row_mouse_out3645482605396131456(this, 1)"&gt;
    &lt;td headers="SEQ_ID" class="t1data"&gt;1&lt;/td&gt;
    &lt;td headers="EMP_ID" class="t1data"&gt;157&lt;/td&gt;
    &lt;td headers="MON" class="t1data"&gt;&lt;label for="f01_0001" class="hideMe508"&gt;MON&lt;/label&gt;&lt;input type="text" name="f01" size="3" maxlength="2000" value="" id="f01_0001" /&gt;&lt;/td&gt;
    &lt;td headers="TUE" class="t1data"&gt;&lt;label for="f02_0001" class="hideMe508"&gt;TUE&lt;/label&gt;&lt;input type="text" name="f02" size="3" maxlength="2000" value="Y" id="f02_0001" /&gt;&lt;/td&gt;
    &lt;td headers="WED" class="t1data"&gt;&lt;label for="f03_0001" class="hideMe508"&gt;WED&lt;/label&gt;&lt;input type="text" name="f03" size="3" maxlength="2000" value="" id="f03_0001" /&gt;&lt;/td&gt;
    &lt;td headers="THU" class="t1data"&gt;&lt;label for="f04_0001" class="hideMe508"&gt;THU&lt;/label&gt;&lt;input type="text" name="f04" size="3" maxlength="2000" value="" id="f04_0001" /&gt;&lt;/td&gt;
    &lt;td headers="FRI" class="t1data"&gt;&lt;label for="f05_0001" class="hideMe508"&gt;FRI&lt;/label&gt;&lt;input type="text" name="f05" size="3" maxlength="2000" value="Y" id="f05_0001" /&gt;&lt;input type="hidden" name="fcs" value="58AA1A6F02752BF76429EF06E2F1934D" /&gt;&lt;/td&gt;
    &lt;/tr&gt;&lt;tr onmouseover="row_mouse_over3645482605396131456(this, 2)" onmouseout="row_mouse_out3645482605396131456(this, 2)"&gt;
    &lt;td headers="SEQ_ID" class="t1data"&gt;2&lt;/td&gt;
    &lt;td headers="EMP_ID" class="t1data"&gt;152&lt;/td&gt;
    &lt;td headers="MON" class="t1data"&gt;&lt;label for="f01_0002" class="hideMe508"&gt;MON&lt;/label&gt;&lt;input type="text" name="f01" size="3" maxlength="2000" value="Y" id="f01_0002" /&gt;&lt;/td&gt;
    &lt;td headers="TUE" class="t1data"&gt;&lt;label for="f02_0002" class="hideMe508"&gt;TUE&lt;/label&gt;&lt;input type="text" name="f02" size="3" maxlength="2000" value="" id="f02_0002" /&gt;&lt;/td&gt;
    &lt;td headers="WED" class="t1data"&gt;&lt;label for="f03_0002" class="hideMe508"&gt;WED&lt;/label&gt;&lt;input type="text" name="f03" size="3" maxlength="2000" value="" id="f03_0002" /&gt;&lt;/td&gt;
    &lt;td headers="THU" class="t1data"&gt;&lt;label for="f04_0002" class="hideMe508"&gt;THU&lt;/label&gt;&lt;input type="text" name="f04" size="3" maxlength="2000" value="Y" id="f04_0002" /&gt;&lt;/td&gt;
    &lt;td headers="FRI" class="t1data"&gt;&lt;label for="f05_0002" class="hideMe508"&gt;FRI&lt;/label&gt;&lt;input type="text" name="f05" size="3" maxlength="2000" value="" id="f05_0002" /&gt;&lt;input type="hidden" name="fcs" value="E267918580DC33BACF54431F3E928ED6" /&gt;&lt;/td&gt;
    &lt;/tr&gt;&lt;tr onmouseover="row_mouse_over3645482605396131456(this, 3)" onmouseout="row_mouse_out3645482605396131456(this, 3)"&gt;
    &lt;td headers="SEQ_ID" class="t1data"&gt;3&lt;/td&gt;
    &lt;td headers="EMP_ID" class="t1data"&gt;153&lt;/td&gt;
    &lt;td headers="MON" class="t1data"&gt;&lt;label for="f01_0003" class="hideMe508"&gt;MON&lt;/label&gt;&lt;input type="text" name="f01" size="3" maxlength="2000" value="" id="f01_0003" /&gt;&lt;/td&gt;
    &lt;td headers="TUE" class="t1data"&gt;&lt;label for="f02_0003" class="hideMe508"&gt;TUE&lt;/label&gt;&lt;input type="text" name="f02" size="3" maxlength="2000" value="" id="f02_0003" /&gt;&lt;/td&gt;
    &lt;td headers="WED" class="t1data"&gt;&lt;label for="f03_0003" class="hideMe508"&gt;WED&lt;/label&gt;&lt;input type="text" name="f03" size="3" maxlength="2000" value="Y" id="f03_0003" /&gt;&lt;/td&gt;
    &lt;td headers="THU" class="t1data"&gt;&lt;label for="f04_0003" class="hideMe508"&gt;THU&lt;/label&gt;&lt;input type="text" name="f04" size="3" maxlength="2000" value="" id="f04_0003" /&gt;&lt;/td&gt;
    &lt;td headers="FRI" class="t1data"&gt;&lt;label for="f05_0003" class="hideMe508"&gt;FRI&lt;/label&gt;&lt;input type="text" name="f05" size="3" maxlength="2000" value="" id="f05_0003" /&gt;&lt;input type="hidden" name="fcs" value="F3012D3BBA78B492A5FC7D47D4D88395" /&gt;&lt;/td&gt;
    &lt;/tr&gt;&lt;tr onmouseover="row_mouse_over3645482605396131456(this, 4)" onmouseout="row_mouse_out3645482605396131456(this, 4)"&gt;
    &lt;td headers="SEQ_ID" class="t1data"&gt;4&lt;/td&gt;
    &lt;td headers="EMP_ID" class="t1data"&gt; - &lt;/td&gt;
    &lt;td headers="MON" class="t1data"&gt;&lt;label for="f01_0004" class="hideMe508"&gt;MON&lt;/label&gt;&lt;input type="text" name="f01" size="3" maxlength="2000" value="" id="f01_0004" /&gt;&lt;/td&gt;
    &lt;td headers="TUE" class="t1data"&gt;&lt;label for="f02_0004" class="hideMe508"&gt;TUE&lt;/label&gt;&lt;input type="text" name="f02" size="3" maxlength="2000" value="" id="f02_0004" /&gt;&lt;/td&gt;
    &lt;td headers="WED" class="t1data"&gt;&lt;label for="f03_0004" class="hideMe508"&gt;WED&lt;/label&gt;&lt;input type="text" name="f03" size="3" maxlength="2000" value="" id="f03_0004" /&gt;&lt;/td&gt;
    &lt;td headers="THU" class="t1data"&gt;&lt;label for="f04_0004" class="hideMe508"&gt;THU&lt;/label&gt;&lt;input type="text" name="f04" size="3" maxlength="2000" value="" id="f04_0004" /&gt;&lt;/td&gt;
    &lt;td headers="FRI" class="t1data"&gt;&lt;label for="f05_0004" class="hideMe508"&gt;FRI&lt;/label&gt;&lt;input type="text" name="f05" size="3" maxlength="2000" value="" id="f05_0004" /&gt;&lt;input type="hidden" name="fcs" value="A884FA378C851786DDFE3A33709CB23C" /&gt;&lt;/td&gt;
    &lt;/tr&gt;&lt;/table&gt;&lt;div class="t1CVS"&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;/tr&gt;

  • Java- Stored Procedure with Call by Result

    Hi Oracle-Community,
    I am looking for some example Code how to use a Java-Stored Procedure with Out-Parameters. Don't get me wrong. I dont want to call a Procedure with Out Parameters from Java (there are a lot of examples for this out there) . I just want to implement the Call by Result concept in a Java-Stored Procedure. A Client will call this Procedure with some parameters and the Java Procedure will fill them. So my first question: is this possible? And my second Question: How to implement it?
    Greetings.

    I found out a solution. It is very simple.
    Just defining the parameters as java array (e.g. String[] P1). The first value (P1[0]) is the returned value.
    At last just set in JDeveloper in the "Edit Method Signature" Dialog the parametermode to OUT.
    The dialog can be found by rightclicking on the stored procedure in the dbexport file. You can read this
    in Section 6 Publishing Java Classes With Call Specifications -> Setting Parameter Modes in
    Oracle Database Java Developer's Guide.

  • Apex_collection.update_member.  What am I doing wrong.

    I am able to create my collection, then select from it. Unfortunately, I am not able to get it to update. I have been able to do this for other collections, so I am stumped...and believe it is something simple I am doing wrong....any thoughts? thank you.
    PROCESS: before header: create trip collection
    declare
    cursor fav is select trip_fav_seq
    from trip_favorites
    where cf_permit_id = :F200_PERMIT_ID and
    activate_flag = 'Y';
    xfav number;
    begin
    apex_collection.create_or_truncate_collection (p_collection_name => 'TRIP_C');
    open fav;
    fetch fav into xfav;
    if fav%found then
    apex_collection.add_member(p_collection_name => 'TRIP_C',
    p_c032 => :F200_fav_state , -- state
    p_c033 => :F200_fav_port, -- port
    p_c034 => :F200_FAV_VESSEL_ID, -- vessel id
    p_c035 => null, -- trip_start_date
    p_c036 => null, -- trip_start_time
    p_c037 => null, -- trip_end_date
    p_c038 => null, -- trip_end_time
    p_c039 => 'C', -- trip_type
    p_c040 => 'N', -- multiple_fishermen
    p_c041 => :F200_PERMIT_ID, -- cf_permit_id
    p_c042 => 0, -- days_at_sea
    p_c043 => 0, -- nbr_of_crew
    p_c044 => null, -- supplier_trip_id
    p_c045 => 1, -- trip_nbr
    p_c046 => null, -- partner_vtr
    p_c047 => :F200_PARTICIPANT_ID, -- submitted_by
    p_c048 => null, -- etrip_nbr
    p_c049 => :F200_PARTICIPANT_ID, -- ue,
    p_c050 => sysdate); -- de
    else
    apex_collection.add_member(p_collection_name => 'TRIP_C',
    p_c032 => null, -- state
    p_c033 => null, -- port
    p_c034 => null, -- vessel id
    p_c035 => null, -- trip_start_date
    p_c036 => null, -- trip_start_time
    p_c037 => null, -- trip_end_date
    p_c038 => null, -- trip_end_time
    p_c039 => 'C', -- trip_type
    p_c040 => 'N', -- multiple_fishermen
    p_c041 => :F200_PERMIT_ID, -- cf_permit_id
    p_c042 => 0, -- days_at_sea
    p_c043 => 0, -- nbr_of_crew
    p_c044 => null, -- supplier_trip_id
    p_c045 => 1, -- trip_nbr
    p_c046 => null, -- partner_vtr
    p_c047 => :F200_PARTICIPANT_ID, -- submitted_by
    p_c048 => null, -- etrip_nbr
    p_c049 => :F200_PARTICIPANT_ID, -- ue,
    p_c050 => sysdate); -- de
    end if;
    close fav;
    exception
    when no_data_found then
    null;
    end;
    QUERY:
    select apex_item.checkbox (30,seq_id,
    'onclick="highlight_row(this,' || seq_id ||')"',
    NULL,
    'f30_' || LPAD (seq_id, 4, '0')
    ) delete_checkbox,
    apex_item.hidden (31,seq_id)||
    apex_item.select_list_from_query(32,c032,'select partner_name d, state_code r
    from partners
    where state_code is not null
    order by partner_name',
    'style="width:100px;background-color:#FBEC5D; "'
    ||'onchange="f_set_casc_sel_list_item_port(this,f33_'||LPAD (seq_id, 4,'0')||')"',
    'YES',
    '0',
    '- Select State -',
    'f32_' || LPAD (seq_id,4, '0'),
    NULL,
    'NO'
    ) STATE,
    apex_item.select_list_from_query(33,c033,'select fips_place_name, port
    from valid_ports
    where fips_state = 0 order by fips_place_name',
    'style="width:150px"',
    'YES',
    '0',
    '- Select PORT -',
    'f33_' || LPAD (seq_id, 4, '0'),
    NULL,
    'NO' ) PORT,
    apex_item.POPUP_FROM_LOV(34,c034,'VESSELS',NULL,NULL,NULL,NULL,NULL,
    'style="width:100px;background-color:#FBEC5D; "') vessel_id,
    apex_item.text(35,c035) trip_start_date,
    apex_item.text(36,c036,5) trip_start_time,
    apex_item.text(37,c037) trip_end_date,
    apex_item.text(38,c038,5) trip_end_time,
    apex_item.SELECT_LIST_FROM_LOV(39,c039,'TRIP_TYPE','style="width:100px;background-color:#FBEC5D; "') trip_type,
    apex_item.SELECT_LIST_FROM_LOV(40,c040,'YES_NO',4) multiple_fishermen,
    apex_item.hidden(41,c041) cf_permit_id,
    apex_item.text(42,c042,3) days_at_sea,
    apex_item.text(43,c043,4) nbr_of_crew,
    apex_item.hidden(44,c044) supplier_trip_id,
    apex_item.hidden(45,c045) trip_nbr,
    apex_item.text(46,c046) partner_vtr,
    apex_item.hidden(47,c047) submitted_by,
    apex_item.text(48,c048,10) etrip_nbr,
    apex_item.hidden(49,c049) ue,
    apex_item.hidden(50,c050) de
    from apex_collections where collection_name = 'TRIP_C'
    PROCESS: AFTER SUBMIT : update_trip_collection
    declare
    xtrip number;
    begin
    select trips_seq.nextval into xtrip from dual;
    for x in 1..apex_application.g_f30.COUNT
    loop
    :P300_test:= 'in loop '||x;
    -- if it's an existing record
    IF apex_application.g_f30 (x) IS NOT NULL -- contains SEQ_ID
    THEN
    apex_collection.update_member (p_collection_name=> 'TRIP_C',
    p_seq => apex_application.g_f30(x),
    p_c031 => apex_application.g_f31(x),
    p_c032 => apex_application.g_f32(x),
    p_c033 => apex_application.g_f33(x),
    p_c034 => apex_application.g_f34(x),
    p_c035 => apex_application.g_f35(x),
    p_c036 => apex_application.g_f36(x),
    p_c037 => apex_application.g_f37(x),
    p_c038 => apex_application.g_f38(x),
    p_c039 => apex_application.g_f39(x),
    p_c040 => apex_application.g_f40(x),
    p_c041 => apex_application.g_f41(x),
    p_c042 => apex_application.g_f42(x),
    p_c043 => apex_application.g_f43(x),
    p_c044 => apex_application.g_f44(x),
    p_c045 => apex_application.g_f45(x),
    p_c046 => apex_application.g_f46(x),
    p_c047 => apex_application.g_f47(x),
    p_c048 => xtrip,
    p_c049 => apex_application.g_f49(x),
    p_c050 => apex_application.g_f50(x));
    else
    apex_collection.add_member (p_collection_name=> 'TRIP_C',
    p_c031 => apex_application.g_f31(x),
    p_c032 => apex_application.g_f32(x),
    p_c033 => apex_application.g_f33(x),
    p_c034 => apex_application.g_f34(x),
    p_c035 => apex_application.g_f35(x),
    p_c036 => apex_application.g_f36(x),
    p_c037 => apex_application.g_f37(x),
    p_c038 => apex_application.g_f38(x),
    p_c039 => apex_application.g_f39(x),
    p_c040 => apex_application.g_f40(x),
    p_c041 => apex_application.g_f41(x),
    p_c042 => apex_application.g_f42(x),
    p_c043 => apex_application.g_f43(x),
    p_c044 => apex_application.g_f44(x),
    p_c045 => apex_application.g_f45(x),
    p_c046 => apex_application.g_f46(x),
    p_c047 => apex_application.g_f47(x),
    p_c048 => xtrip,
    p_c049 => apex_application.g_f49(x),
    p_c050 => apex_application.g_f50(x));
    end if;
    end loop;
    end;

    and for the record, I have also tried: (error is 1403 no data found)
    declare
    xtrip number;
    c pls_integer := 0;
    begin
    --select trips_seq.nextval into xtrip from dual;
    for c1 in (select seq_id from apex_collections where collection_name = 'TRIP_C' order by seq_id)
    loop
    c := c+1;
    apex_collection.update_member_attribute (p_collection_name=> 'TRIP_C',
    p_seq=> c1.seq_id,p_attr_number =>1,p_attr_value=>wwv_flow.g_f32(c));
    apex_collection.update_member_attribute (p_collection_name=> 'TRIP_C',
    p_seq=> c1.seq_id,p_attr_number =>2,p_attr_value=>wwv_flow.g_f33(c));
    apex_collection.update_member_attribute (p_collection_name=> 'TRIP_C',
    p_seq=> c1.seq_id,p_attr_number =>3,p_attr_value=>wwv_flow.g_f34(c));
    apex_collection.update_member_attribute (p_collection_name=> 'TRIP_C',
    p_seq=> c1.seq_id,p_attr_number =>4,p_attr_value=>wwv_flow.g_f35(c));
    apex_collection.update_member_attribute (p_collection_name=> 'TRIP_C',
    p_seq=> c1.seq_id,p_attr_number =>5,p_attr_value=>wwv_flow.g_f36(c));
    apex_collection.update_member_attribute (p_collection_name=> 'TRIP_C',
    p_seq=> c1.seq_id,p_attr_number =>6,p_attr_value=>wwv_flow.g_f37(c));
    apex_collection.update_member_attribute (p_collection_name=> 'TRIP_C',
    p_seq=> c1.seq_id,p_attr_number =>7,p_attr_value=>wwv_flow.g_f38(c));
    apex_collection.update_member_attribute (p_collection_name=> 'TRIP_C',
    p_seq=> c1.seq_id,p_attr_number =>8,p_attr_value=>wwv_flow.g_f39(c));
    apex_collection.update_member_attribute (p_collection_name=> 'TRIP_C',
    p_seq=> c1.seq_id,p_attr_number =>9,p_attr_value=>wwv_flow.g_f40(c));
    apex_collection.update_member_attribute (p_collection_name=> 'TRIP_C',
    p_seq=> c1.seq_id,p_attr_number =>10,p_attr_value=>wwv_flow.g_f41(c));
    apex_collection.update_member_attribute (p_collection_name=> 'TRIP_C',
    p_seq=> c1.seq_id,p_attr_number =>11,p_attr_value=>wwv_flow.g_f42(c));
    apex_collection.update_member_attribute (p_collection_name=> 'TRIP_C',
    p_seq=> c1.seq_id,p_attr_number =>12,p_attr_value=>wwv_flow.g_f43(c));
    apex_collection.update_member_attribute (p_collection_name=> 'TRIP_C',
    p_seq=> c1.seq_id,p_attr_number =>13,p_attr_value=>wwv_flow.g_f44(c));
    apex_collection.update_member_attribute (p_collection_name=> 'TRIP_C',
    p_seq=> c1.seq_id,p_attr_number =>14,p_attr_value=>wwv_flow.g_f45(c));
    apex_collection.update_member_attribute (p_collection_name=> 'TRIP_C',
    p_seq=> c1.seq_id,p_attr_number =>15,p_attr_value=>wwv_flow.g_f46(c));
    apex_collection.update_member_attribute (p_collection_name=> 'TRIP_C',
    p_seq=> c1.seq_id,p_attr_number =>16,p_attr_value=>wwv_flow.g_f47(c));
    apex_collection.update_member_attribute (p_collection_name=> 'TRIP_C',
    p_seq=> c1.seq_id,p_attr_number =>17,p_attr_value=>wwv_flow.g_f48(c));
    apex_collection.update_member_attribute (p_collection_name=> 'TRIP_C',
    p_seq=> c1.seq_id,p_attr_number =>18,p_attr_value=>wwv_flow.g_f49(c));
    apex_collection.update_member_attribute (p_collection_name=> 'TRIP_C',
    p_seq=> c1.seq_id,p_attr_number =>19,p_attr_value=>wwv_flow.g_f50(c));
    end loop;
    end;

  • Result handler of a remote call not executed till the other remote calls get result

    I have 3 remote calls in sequence.
    Say RemoteCall1, RemoteCall2 and RemoteCall3. RemoteCall1 takes the least time say  5 seconds to get results. RemoteCall2 also 5 seconds and RemoteCall3 takes 30 seconds. But the resulthandler for RemoteCall1 does not execute till the RemoteCall3 gets results from server. Any fixes to call resulthander for RemoteCall1 as soon as it gets result without waiting for RemoteCall3 results.
    by the way I am usindg Robotlegs framework and AsyncToken.

    Don’t make remoteCall3 until you get the results from remoteCall2, etc.  That’s the only way I know to guarantee order.
    Fllash queues up all remote calls until the end of the frame and sends them all at once, although a network monitor should show that the go out in the order you made the calls.
    Similarly, Flash processes all available results at the end of a frame.  Results are asynchronous, but if all three results arrive in the same frame, they will all get deserialized.  And, the server may not be guaranteed to return results in the order requested, especially if different servers are handling the individual calls.
    I’m not sure if your time to get results is gated by server response or Flash processing the results.  I suspect it is the latter.  You also have the option of changing the resultFormat to get something that doesn’t need processing like XML and process it later.

  • HTTP Rest api call maximum results

    Hi all,
    I´m trying to get data from the portal using the follwoing rest api call:
    http://<ServerURL>/RequestCenter/nsapi/serviceitems/serviceitemsubscription
    but it only gives me 20 results, which I believe it is the default, is there any way to get all the elements or a way to page all the results?
    Thanks
    Alex.

    Hi all,
    found some info on the Integration guide (Cisco Prime Service Catalog 10.0 Integration Guide) page 222, there is a section regarding Paging, but the max results are 50.
    I was looking a simple way to export / import info from the portal, but it seems Java is going to be neded instead http nsapi.
    Regards,
    Alex.

  • I notice I have an add on called search results optimizator 8.17, I do not remember deliberately installing this add on and I cannot uninstall it, I have disabled it as it redirected me to a search site when I logged on to Photobucket, I would like to kno

    I have enabled the add on again to find the web page it directs me to...
    http://www.landing.savetubevideo.com/
    This is the page it takes me to when I try to log into Photobucket.
    I did install a Youtube downloader from SaveTubeVideo but un-installed it. The Search Results Optimizator must have been installed at the same time. But it does not give you an option to remove it, only to disable it.

    Hi TwoSheds,
    System-installed extensions can't be uninstalled from Firefox. Instead you can find and remove this application from Start -> Control Panel -> Add/Remove Programs.
    However, disabling an add-on renders it fully inert; it isn't loaded at all and can't do anything.

  • Calling SP results in ORA-00911: invalid character

    I am testing a supposedly very simple stored procedure in XE. It compiles with no errors but when I enter the following command in the SQL Command window I get an ORA-00911: invalid character.
    call get_all_customer_orgs;
    The get_all_customer_orgs procedure is defined as...
    create or replace procedure get_all_customer_orgs (p_recordset out sys_refcursor)
    is
    begin
    open p_recordset for
    select * from customerorgs;
    end get_all_customer_orgs;
    I don't understand what the invalid character could be. Guidance? Thanks.

    I don't have XE handy, but your procedure works from SQL Plus (changing the table to emp).
    SQL> create or replace procedure get_all_customer_orgs (p_recordset out sys_refcursor)
      2  is
      3  begin
      4  open p_recordset for
      5  select empno,ename from emp;
      6  end get_all_customer_orgs;
      7  /
    Procedure created.
    SQL> var allemps refcursor
    SQL> exec get_all_customer_orgs(:allemps);
    PL/SQL procedure successfully completed.
    SQL> print allemps
                   EMPNO ENAME
                    7369 SMITH
                    7499 ALLEN
                    7521 WARD
                    7566 JONES
                    7654 MARTIN
                    7698 BLAKE
                    7782 CLARK
                    7788 SCOTT
                    7839 KING
                    7844 TURNER
                    7876 ADAMS
                    7900 JAMES
                    7902 FORD
                    7934 MILLER
    14 rows selected.

  • Portal Eventing calls BAPI  -  result FAILURE!

    Hi All,
    I have an interesting delima.
    BAPI_SALESORDER_GETSTATUS - using portal eventing to set "Salesdocument" model/mapped context value. When executing Bapi, no results display in my table (mapped to the output values).
    In further testing, I added an InputField that was mapped to "Salesdocument" to see that it was being set properly before the Bapi execution. That worked so I could see that portal eventing was working correctly. Still no results though.
    When I changed the "onEnter" event of the InputField to use my method that executes the Bapi, then the results showed up just fine. It appears that somehow the results only display if a InputField submits the value it is looking for.
    Any ideas on how to get the results to display? I thought maybe it had to do with the data type, but the context only asks for a string value.
    Max reward points for the person(s) who help me the most.
    Much Thanks,
    Cameron

    Hi Cameron,
    If I understand you correctly, the parameter <i>dataObject</i> in the action handler <b>onActionGetSalesDocument</b>
    refers the value the you want to pass to the Import parameter <i>SALESDOCUMENT</i>.
    If yes, then try doing the following two modifications.
    Define a new parameter <i>dataObject</i> of type <i>String</i> for the method <i>execute_Bapi_Status_Details_GetList</i>
    Change the action handler onActionGetSalesDocument as follows.
    public void onActionGetSalesDocument(IWDCustomEvent wdEvent, String dataObject)
      wdContext.currentContextElement().setSalesDoc(dataObject);
      wdThis.wdGetStatusDetailComponentController()
    .execute_Bapi_Status_Details_GetList(dataObject);
      wdThis.wdFirePlugToDetailView();
    Add a line of code to the execute_Bapi_Details_Getlist as follows:
    public void execute_Bapi_Status_Details_GetList(String dataObject){
    try{
          <b>wdContext.currentStatusDetailsModelElement()
    .setSalesDocument(dataObject);</b> 
        wdContext.currentStatusDetailsModelElement()
    .modelObject().execute();
          <b>wdContext.nodeOutput().invalidate();</b> 
    }catch(Exception e){
          <b>wdComponentAPI.getMessageManager.raiseException(e.getMessage(), true);</b>
    Bala

  • After iOS 7 update, trying to call just results in echo feedback loop.

    It's happening to both my wife and I. She has a 4S, I have a 5.

    I have the same issue. Phone echo's like a toy mic after call ends. I am on the iPhone 5 with version 7.0.4. I even swapped for a new handset and it did not fix the issue. This never happened iOS 6.
    Can someone please help as it is very annoying and deters you from making the next immediate call.

  • Calling results of a method from another class

    Very very new to Java, so apologies for the lack of basic knowledge. I am making a programme with 3 classes. One class gathers details about a module. Another about the results of this module (which requires some of the information inputted for the first class). For some reason I cannot find how to use results created in the first class in this second class. How do you call the results of a method from one class in another class?
    Thanks.

    Thank you.
    I am given the following information:
    '_ModuleRecord_
    This class is used to record information about a module taken by a single student. It has a constructor that takes three parameters:
    a Module,
    an int representing the examination mark achieved by a student, and
    an int representing the coursework mark achieved by a student.
    The class has another constructor that takes a single Module parameter.'
    and the code looks like this:
    public class ModuleRecord
      public ModuleRecord(Module m, int eMark, int cMark)
      public ModuleRecord(Module m)
      } I am a bit confused by the whole thing to be honest. I assume that the Module is referring to the other class, but how do I forge the link between them here?

  • Howto get result of the calling-step in SequenceFilePostStepFailure

    Hello,
    i have a sequence with a SequenceFileCallback "SequenceFilePostStepFailure".
    How can i create a popup that displays the following values:
    - Name of calling-step
    - sequence-name of calling step
    - result of calling step
    - limit (low, high, string) of calling step
    I found:
    RunState.Caller.Step.Name,
    RunState.Caller.Sequence.Name
    but nothing for result and limits.
    Thanks for any help

    This should handle what you're looking for and then some. I use this with the retry expression that allows for the whole sequence to be repeated. Probably shouldn't allow for the "Force Pass". I think it origianally came from TestStand examples and I modified it, but I couldn't tell you which example.
    Why do geeks think Halloween and Christmas occur on the same day?
    Because 31oct = 25dec!
    Attachments:
    PostStepFailure2.seq ‏13 KB

  • APEX_COLLECTION - how to update MD5_ORIGINAL

    Hello everybody,
    is there a possibility to recount MD5 hash of APEX_COLLECTION member and store it back to MD5_ORIGINAL?
    My situation is as follows:
    When users is going to edit the table, he sets some filter (lets say year). All data concerning that year are then copied into collection (actually, collection is created from query, p_generate_md5=>YES). Then user performs some changes and submits.
    My underlying code is like this:
    1. for all data in user form call apex_collection.update_member
    2. perform some checks on data (not important here)
    3. for each collection member where (md5_original != get_member_md5) update corresponding row in table and this is what I need: save the result of get_member_md5 into md5 original, so that next time user submits I won't update same rows again.
    There seems not to be any function with that functionality in APEX_COLLECTION API. Any ideas?
    Thanks!

    Hi,
    Sorry - you are right, I've checked the available methods for the apex_collection package and there is no method call that allows the update for this value. And we do not have the right access rights to update this value directly on the table itself.
    The only thing I can think of is to delete the original record and add it back in with the new values. Because you have set the p_generate_md5 parameter to YES, this will generate the new checksum. Of course, that would leave a gap in the collection (deleted members are not removed) and the new record would be at the end but you can re-order them if required.
    If, however, you are using pl/sql to control the update of records, you could use the APEX_ITEM.MD5_CHECKSUM() function to get the MD5 value and store it on, say, c050?
    Andy

Maybe you are looking for

  • Macbook pro batterie vs apple care plan

    Is the batterie of a macbook pro covered by the apple care plan???

  • Libs missing on install

    I am attempting to install ColdFusion on OpenSuSE 10.1, and I am greeted with quite a few errors when I attempt the install. Is there any specific package I need to install before running the installation, or is my problem related to something else?

  • Snow leapord 10.6.3 on PC with instalation disk?

    ok so i was just wondering if i had a snow leapord 10.6.3 instalation disk could i just pop it into my windows xp computer could i install it and run it on my pc? and still have windows xp and snowleapord on one computer? stupid questions but im just

  • Configurar Foros en Outlook Express

    Buenas tardes colegas, una preguntilla, se pueden configurar estos foros para leer y responder en mi outllok express?, antes de que macromedia pertenezca a adobe si lo podia hacer, ahora no se como. Mil gracias Miguel Guerrero

  • Header Excise

    Hi, In MIGO when capturing and Post the excise invoice it display the Excise amount multiplied by 10 for example Basic price is 100 RS and Excise 16 RS,in line items it will give 16 RS but in header 160 RS and also after posting the document in Part