Too many distributed transactions

I am programming an application with JDeveloper 10g and ADF Framework. It is a application that only queries data (no modifications). I created ViewObjects based on sql queries and an application module.
The problem is that is I execute that application for some time, I get the following error:
java.sql.SQLException: ORA-02042: too many distributed transactions
     at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:189)
     at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:242)
     at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:554)
     at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java)
     at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:888)
     at oracle.jdbc.driver.OracleStatement.doExecuteQuery(OracleStatement.java:2346)
     at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2660)
     at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:457)
     at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:387)
     at oracle.jbo.server.QueryCollection.buildResultSet(QueryCollection.java:665)
As it is a query only program, i do not need transactions. How can fix this?
Thanks in advance

Hi,
this is information from metalink:
The ORA-2042 indicates that you should increase the parameter
distributed_transactions.
The ORA-2063 indicates that this must be done at the remote
database.
Explanation
If the distributed transaction table is full on either side of
the database link you get the error ORA-2042:
ORA-02042: "too many distributed transactions"
Cause: the distributed transaction table is full,
because too many distributed transactions are active.
Action: increase the INIT.ORA "distributed_transactions" or
run fewer transactions.
If you are sure you don't have too many concurrent
distributed transactions, this indicates an internal
error and support should be notified.
Instance shutdown/restart would be a workaround.
When the error is generated at the remote database it is
accompanied with an ORA-2063. In this case the parameter
distributed_transactions must be increased at the remote
database.
If there is no ORA-2063 the parameter distributed_transactions
must be increased at the local database.

Similar Messages

  • ORA-02042: too many distributed transactions

    1. I have been working on a portal application for several weeks.
    2. Portal is installed in 1 instance and my data is in another instance.
    3. I've had no ora-02042 problems in the devt environment set up that way.
    4. I've recently migrated the application/pages to a test environment set up that way.
    5. I've been working in the test environment for several days with no problems.
    6. For some portlets on some pages I'm now getting:
    <BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>
    Failed to parse query
    Error:ORA-02042: too many distributed transactions
    Error:ORA-02042: too many distributed transactions
    ORA-02063: preceding line from
    LINK_TO_TEST (WWV-11230) Failed to parse as PACID_SCHEMA -
    select user_action.userid, action.name,
    user_action.created_date,
    user_action.created_by, action.action_id,
    'del' del_link from user_action , action
    where user_action.action_id =
    action.action_id and user_action.userid
    LIKE UPPER(:userid) order by USERID
    ASC, NAME ASC, CREATED_DATE
    ASC (WWV-08300)
    <HR></BLOCKQUOTE>
    7. I cannot find anything about this error in the db log files for either instance.
    8. I've increased distributed transactions to 200 in the portal db and bounced
    it. Still get the error.
    9. No records in dba_2pc_pending or dba_2pc_neighbors in the portal instance.
    10. I get the error in various reports and form LOVs at different times. Pages with a lot of portlets seem to be more prone to the error.
    Here is a typical LOV error:
    <BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>
    COMBOBOX LOV ERROR:
    LOV: "ASIMM_1022.TITLE_LOV"
    Parse Message: Parse as pre-set global: "PACID_SCHEMA".
    Find Message: LOV is of type DYNAMIC (LOV based on SQL query).
    Query: "select code display_column, code return_column from codes where table_id = 'OFFICER_TITLE' order by code"
    wwv_parse.parse_as_user: ORA-02042: too many distributed transactions ORA-02063: preceding line from LINK_TO_TEST wwv_parse.parse_as_user: Failed to parse as PACID_SCHEMA - select code display_column, code return_column from codes where table_id = 'OFFICER_TITLE' order by code wwv_security.check_comp_privilege: Insufficient privileges. wwpre_utl.get_path_id: The preference path does not exist: ORACLE.WEBVIEW.PARAMETERS.217_USER_INPUT_ASIMM_5423428
    <HR></BLOCKQUOTE>
    Why are these select statements being interpreted as distributed transactions? Note:1032658.6 suggests I "USE SET TRANSACTION READ ONLY". Is this necessary? If so how?
    What puzzles me is that this set up has been working fine for several days. I don't know of any changes to my environment apart from me increasing distributed transactions.
    null

    Hi,
    this is information from metalink:
    The ORA-2042 indicates that you should increase the parameter
    distributed_transactions.
    The ORA-2063 indicates that this must be done at the remote
    database.
    Explanation
    If the distributed transaction table is full on either side of
    the database link you get the error ORA-2042:
    ORA-02042: "too many distributed transactions"
    Cause: the distributed transaction table is full,
    because too many distributed transactions are active.
    Action: increase the INIT.ORA "distributed_transactions" or
    run fewer transactions.
    If you are sure you don't have too many concurrent
    distributed transactions, this indicates an internal
    error and support should be notified.
    Instance shutdown/restart would be a workaround.
    When the error is generated at the remote database it is
    accompanied with an ORA-2063. In this case the parameter
    distributed_transactions must be increased at the remote
    database.
    If there is no ORA-2063 the parameter distributed_transactions
    must be increased at the local database.

  • Too many loopback session id's in SMGW transaction (ABAP+JAVA System)

    Hi All,
    From SMGW transaction I am able to see too many loopback (127.0.01) session ids existing in the system.
    107 system(s) logged on *** showing from this more than 50 session are loopback. I am not able to find the reason.
    How to check and how to reduce this session.
    Thanks in advance

    Hi Maurício
    Thank you for your support.
    As per note I have checked in my system and I can not find relavent things
    from SM04 I am able to see only 12 users logged into the system ( *** 12 users logged on with 15 modes *** 
    ) and from 12 users 5 of users using GUI and remaing RFC. From SMGW it is showing only 8 active connection and
    SMGW --? Goto -->logged on clients  from here able to 98 systems logged on ( *** 97 system(s) logged on ***  ) in this around 70 logons related to loopback (127.0.0.1)
    Please suggest me how to anaylze this issue and how to take corrective steps for this kind of issue.

  • Too many Transactions?

    Created a BPEL process (10.1.2.0.0) to access a stored procedure in a 10gR1 database and using the emp table. The PartnerLink references the stored procedure which takes a number (empno) and is to return the ename and sal corresponding to the empno.
    Stored procedure works as run from a SQL prompt. When invoke the the PartnerLink using an empno after about a minute delay get the following error message.
    Any help is greatly appreciated - Ken Cooper
    Build Information:
    Oracle BPEL Server version 10.1.2.0.0
    Build: 1442
    Build time: Fri Apr 29 16:59:32 PDT 2005
    Build type: release
    Source tag: BPELPM_10_1_2_release_branch
    Exception Message:
    [com.evermind.server.rmi.OrionRemoteException]
    Transaction was rolled back: Error in transaction: MarshallingXAException : [POL-3261] there are too many transactions; nested exception is:
         MarshallingXAException : [POL-3261] there are too many transactions

    Just to clarify ..
    you are using OLite as dehydration store .. and connect your plnk to a fledged Oracle DB - right ..
    because the exception is coming from the olite stack ...
    /clemens

  • Too many loopback session id's in SMGW transaction

    Hi All,
    From SMGW transaction I am able to see too many loopback (127.0.01) session ids existing in the system.
    107 system(s) logged on ***   showing from this more than 50 session are loopback. I am not able to find the reason.
    How to check and how to reduce this session.
    Thanks in advance

    Dear Pravin,
    Are you referring to 'Active Connections' or 'Logged on clients'. Which is the kernel patch level that you are running?
    Best Regards,
    Tim

  • Getting ORA-06512: at "SYS.UTL_HTTP", line 1022 ORA-29270: too many open

    hi
    I am getting the following error while calling the procedure in the batch process
    ORA-06512: at "SYS.UTL_HTTP", line 1022
    ORA-29270: too many open HTTP requests
    Could you please help me on this? As this is getting affected in the live databases.
    ORA-06512: at "SYS.UTL_HTTP", line 1022
    ORA-29270: too many open HTTP requests
    CREATE OR REPLACE PROCEDURE Send_To_Spg(
    PTRANSACTION_ID               IN          VARCHAR2,
    PCHANNEL_TYPE               IN VARCHAR2 DEFAULT NULL,
    PCSS_ORDER_NUMBER          IN VARCHAR2 DEFAULT NULL,
    PTELEPHONE_NUMBER          IN VARCHAR2 DEFAULT NULL,
    PSCENARIO_TYPE               IN VARCHAR2 DEFAULT NULL,
    PCUSTOMER_REQUIRED_DATE IN          VARCHAR2 DEFAULT NULL,
    PCUSTOMER_REQUIRED_TIME IN          VARCHAR2 DEFAULT NULL,
    PCANCELLATION_REASON     IN          VARCHAR2 DEFAULT NULL,
    PCANCELLATION_NOTES          IN          VARCHAR2 DEFAULT NULL,
    PSMPF_RETENTION               IN          VARCHAR2 DEFAULT NULL,
    PEMERGENCY_WINBACK          IN          VARCHAR2 DEFAULT NULL,
    PCSS_PROJECT_ID               IN          VARCHAR2 DEFAULT NULL,
    PCSS_ORDER_NOTES          IN          VARCHAR2 DEFAULT NULL,
    PREASON_FOR_CESSATION     IN          VARCHAR2 DEFAULT NULL,
    P_RESPONSE                    OUT VARCHAR2,
    PSMART_USER_ID               IN VARCHAR2 DEFAULT NULL,
    PORACLE_ERROR               OUT VARCHAR2,
    PORACLE_ERROR_MESSAGE     OUT          VARCHAR2,
    PRESPONSE_TIME               OUT          NUMBER,
    PDATA_TRANSFER_STATUS     OUT          VARCHAR2)
    IS
    v_scenario_type               VARCHAR2(20); -- Varialble to Hold Time Out of every request to SPG
    v_transaction_time          NUMBER;          -- Total time in which Request to SPG was processed
    v_record_inserted_at     DATE;          -- Date/Time about the record insertion to the Error Handler
    v_start_time               NUMBER;          -- Variable to hold Start Time for calculationg Transaction Time
    v_url                         VARCHAR2(32767);-- URL to use when sending data to SPG
    vtransaction_id               VARCHAR2(18); -- Variable to hold Transaction ID for the request
    v_buffer                    VARCHAR2(32760);-- Variable to read response from the SPG interface
    v_timeout                    PLS_INTEGER; -- Time Out for each Transaction
    v_oracle_err_msg          VARCHAR2(600); -- Variable to hold Oracle Error Message
    v_resp                UTL_HTTP.RESP; -- Response Object
    v_req                UTL_HTTP.REQ; -- Request Object
    v_userid_pwd               SMT_ORACLE_PARAMETERS%ROWTYPE; --Variable declared to contain User ID & Password
    vl_RetCode          VARCHAR2(5000);
    vl_std_returnCode     VARCHAR2(3000);
    --PDATA_TRANSFER_STATUS Holds the Data Transfer Status which can have possible values as
    -- N => Data Has not been sent to SPG
    -- Y => Received Successful response from SPG
    -- F => On the First try to Send data to SPG Oracle Error Occured or response from SPG was a faulure
    -- S => On the Second try to Send data to SPG Oracle Error Occured or response from SPG was a faulure
    -- T => Data Has been transferred to the Error Log Table
    -- X => Data need not be transfered to Error Log Table.
    --Location of the timeout, URL & User Id & Password in Standing Data.
    c_url_stopwlr SMT_ORACLE_PARAMETERS.PARAMETER_CODE%TYPE:='SPG_WLR';-- Stop WLR URL
    c_url_cancelown SMT_ORACLE_PARAMETERS.PARAMETER_CODE%TYPE:='SPG_OWN';-- Cancel own URL
    c_url_cancelother SMT_ORACLE_PARAMETERS.PARAMETER_CODE%TYPE:='SPG_OTH';-- Cancel other URL
    c_url_amendcrd SMT_ORACLE_PARAMETERS.PARAMETER_CODE%TYPE:='SPG_CRD';--Amend CRD URL
    c_spg_useridpwd SMT_ORACLE_PARAMETERS.PARAMETER_CODE%TYPE:='SPGIDPWD'; --Contains user id and pwd
    ctimeout smt_parameters.parameter_code%TYPE:='SPGTO'; --This holds the timeout parameter
    BEGIN
         --In case the calling batch process can pass this value this SQL read will not be required & can be deleted
         --Read data transfer status for the transaction Id
         SELECT data_transfer_status INTO PDATA_TRANSFER_STATUS     FROM SPG_INTERFACE_TABLE
         WHERE transaction_id     =     PTRANSACTION_ID;
         --Record the start time
         v_start_time:=DBMS_UTILITY.GET_TIME;
         --If Data transfer status is S then send the record to error handler
         IF PDATA_TRANSFER_STATUS = 'S' THEN
              Error_Handler(PTRANSACTION_ID,PSMART_USER_ID,PORACLE_ERROR,PORACLE_ERROR_MESSAGE,v_record_inserted_at,PDATA_TRANSFER_STATUS);
         ELSE
         --In case Data Tranfer Status is something other than S then send the request to SPG
              --Initialise other variables which will be populated during the journey
              P_RESPONSE                    :=     '';
              PORACLE_ERROR               :=     NULL;
              PORACLE_ERROR_MESSAGE     :=     NULL;
              PRESPONSE_TIME               :=     0;
         --Read timeout parameter from standing data.
              BEGIN
                   SELECT VALUE INTO v_timeout FROM smt_parameters WHERE parameter_code=ctimeout;
              EXCEPTION
                   WHEN NO_DATA_FOUND THEN
                   v_timeout:=30;
              WHEN OTHERS THEN
                   v_timeout:=30;
              END;
         -- Construct the URL for Stop WLR Scenario
              IF PSCENARIO_TYPE = 'STOP_WLR' THEN
                   BEGIN
                   -- Read the Initial URL from Standing Data
                   SELECT VALUE
                        INTO v_url
                        FROM SMT_ORACLE_PARAMETERS
                        WHERE parameter_code = c_url_stopwlr
                        AND host_id = ( SELECT host_id
                                                      FROM SMART_HOSTS A
                                                      WHERE EXISTS ( SELECT 1
                                                                     FROM DB_PARAMETERS b
                                                                     WHERE A.hostname = b.hostname
                                                                     AND A.database_id = b.database_id));
                   --handle unforseen exception
                   EXCEPTION
                   WHEN NO_DATA_FOUND THEN
                        v_url:='Http://wls.brassi1c.devenv1.bt.co.uk:64738/pls/spgenv/spg_btrc.add_btrc_winback_details'; --After testing the same, URL will be fetched from the Query
                   WHEN OTHERS THEN
                        v_url:='Http://wls.brassi1c.devenv1.bt.co.uk:64738/pls/spgenv/spg_btrc.add_btrc_winback_details'; --After testing the same, URL will be fetched from the Query
                   END;
                   --construct the URL depending on the parameters to be passed to the url
                   v_url := v_url || '?';
                   v_url := v_url || 'p_data_entered=' || Smart_Urlencode('xmloverhttp') || '&';
                   v_url := v_url || 'p_channel_type=' || Smart_Urlencode(PCHANNEL_TYPE)|| '&';
                   v_url := v_url || 'p_css_start_order_no=' || Smart_Urlencode(PCSS_ORDER_NUMBER)|| '&';
                   v_url := v_url || 'p_tel_no=' || Smart_Urlencode(PTELEPHONE_NUMBER)|| '&';
                   v_url := v_url || 'p_crd=' || Smart_Urlencode(PCUSTOMER_REQUIRED_DATE)|| '&';
                   v_url := v_url || 'p_take_over_time=' || Smart_Urlencode(PCUSTOMER_REQUIRED_TIME)|| '&';
                   v_url := v_url || 'p_retainsmpf=' || Smart_Urlencode(PSMPF_RETENTION)|| '&';
                   --v_url := v_url || 'p_emergency_winback='                    || Smart_Urlencode(PEMERGENCY_WINBACK)|| '&';
                   v_url := v_url || 'p_projectno=' || Smart_Urlencode(PCSS_PROJECT_ID)|| '&';
                   v_url := v_url || 'p_ordernotes=' || Smart_Urlencode(PCSS_ORDER_NOTES)|| '&';
                   v_url := v_url || 'p_reason_cessation=' || Smart_Urlencode(PREASON_FOR_CESSATION);
              ELSIF PSCENARIO_TYPE='CANCEL_OWN' THEN
              --Fetch the URL for cancel own from standing data.
                   BEGIN
                        SELECT VALUE
                        INTO v_url
                        FROM SMT_ORACLE_PARAMETERS
                        WHERE parameter_code = c_url_cancelown
                        AND host_id = ( SELECT host_id
                                                      FROM SMART_HOSTS A
                                                      WHERE EXISTS ( SELECT 1
                                                                     FROM DB_PARAMETERS b
                                                                     WHERE A.hostname = b.hostname
                                                                     AND A.database_id = b.database_id));
              --handle unforseen exception
                   EXCEPTION
                             WHEN NO_DATA_FOUND THEN
                             v_url := 'Http://wls.brassi1c.devenv1.bt.co.uk:64738/pls/spgenv/spg_btrc.add_btrc_cancelown_details'; --After testing the same, URL will be fetched from the Query
                   WHEN OTHERS THEN
                             v_url := 'Http://wls.brassi1c.devenv1.bt.co.uk:64738/pls/spgenv/spg_btrc.add_btrc_cancelown_details'; --After testing the same, URL will be fetched from the Query
                   END;
              --construct the URL
              v_url := v_url || '?';
              v_url := v_url || 'p_data_entered=' ||Smart_Urlencode('xmloverhttp')|| '&';
              v_url := v_url || 'p_channel_type=' ||Smart_Urlencode(PCHANNEL_TYPE)|| '&';
              v_url := v_url || 'p_css_start_order_no=' ||Smart_Urlencode(PCSS_ORDER_NUMBER)|| '&';
              v_url := v_url || 'p_tel_no=' ||Smart_Urlencode(PTELEPHONE_NUMBER)|| '&';
              v_url := v_url || 'p_cancel_reason=' ||Smart_Urlencode(PCANCELLATION_REASON)|| '&';
              v_url:= v_url || 'p_cancel_notes=' ||Smart_Urlencode(PCANCELLATION_NOTES);
              ELSIF PSCENARIO_TYPE='CANCEL_OTHER' THEN
              --Fetch the URL for cancel own from standing data.
              BEGIN
              SELECT VALUE
                        INTO v_url
                        FROM SMT_ORACLE_PARAMETERS
                        WHERE parameter_code = c_url_cancelother
                        AND host_id = ( SELECT host_id
                                                      FROM SMART_HOSTS A
                                                      WHERE EXISTS ( SELECT 1
                                                                     FROM DB_PARAMETERS b
                                                                     WHERE A.hostname = b.hostname
                                                                     AND A.database_id = b.database_id));
              --handle unforseen exception
              EXCEPTION
                   WHEN NO_DATA_FOUND THEN
                        v_url := 'Http://wls.brassi1c.devenv1.bt.co.uk:64738/pls/spgenv/spg_btrc.add_btrc_cancelother_details'; --After testing the same, URL will be fetched from the Query
                   WHEN OTHERS THEN
                        v_url := 'Http://wls.brassi1c.devenv1.bt.co.uk:64738/pls/spgenv/spg_btrc.add_btrc_cancelother_details'; --After testing the same, URL will be fetched from the Query
              END;
              --construct the URL
              v_url := v_url || '?';
              v_url := v_url || 'p_data_entered=' ||Smart_Urlencode('xmloverhttp')|| '&';
              v_url := v_url || 'p_channel_type=' ||Smart_Urlencode(PCHANNEL_TYPE)|| '&';
              v_url := v_url || 'p_css_stop_order_no=' ||Smart_Urlencode(PCSS_ORDER_NUMBER)|| '&';
              v_url := v_url || 'p_tel_no=' ||Smart_Urlencode(PTELEPHONE_NUMBER)|| '&';
              v_url := v_url || 'p_cancel_reason=' ||Smart_Urlencode(PCANCELLATION_REASON);
              ELSIF Pscenario_type='AMEND_CRD' THEN
              --Fetch the URL for cancel own from standing data.
              BEGIN
              SELECT VALUE
                        INTO v_url
                        FROM SMT_ORACLE_PARAMETERS
                        WHERE parameter_code = c_url_amendcrd
                        AND host_id = ( SELECT host_id
                                                      FROM SMART_HOSTS A
                                                      WHERE EXISTS ( SELECT 1
                                                                     FROM DB_PARAMETERS b
                                                                     WHERE A.hostname = b.hostname
                                                                     AND A.database_id = b.database_id));
              --handle unforseen exception
              EXCEPTION
              WHEN NO_DATA_FOUND THEN
                   v_url := 'Http://wls.brassi1c.devenv1.bt.co.uk:64738/pls/spgenv/spg_btrc.add_btrc_amendcrd_details'; -- After testing the same , URL will be fetched from the Query
              WHEN OTHERS THEN
                   v_url := 'Http://wls.brassi1c.devenv1.bt.co.uk:64738/pls/spgenv/spg_btrc.add_btrc_amendcrd_details'; -- After testing the same , URL will be fetched from the Query
              END;
              --construct the URL
              v_url := v_url || '?';
              v_url := v_url || 'p_data_entered=' ||Smart_Urlencode('xmloverhttp')|| '&';
              v_url := v_url || 'p_channel_type=' ||Smart_Urlencode(PCHANNEL_TYPE)|| '&';
              v_url := v_url || 'p_css_start_order_no=' ||Smart_Urlencode(PCSS_ORDER_NUMBER)|| '&';
              v_url := v_url || 'p_tel_no=' ||Smart_Urlencode(PTELEPHONE_NUMBER)|| '&';
              v_url := v_url || 'p_crd='                         ||Smart_Urlencode(PCUSTOMER_REQUIRED_DATE)|| '&';
              v_url := v_url || 'p_css_change_order_numbers='||Smart_Urlencode(PCANCELLATION_REASON);
              END IF;
              --this is start of setting parameters for utl http object. the show begins...
              utl_http.set_transfer_timeout(v_timeout);
              --Set the wallet
              --XXXXX e.g.UTL_HTTP.SET_WALLET(?file:DirectoryPath?,'put password here?);
              --Set proxy
              --YYYYY e.g. utl_http.set_proxy(p_proxy_in, p_no_proxy_domains_in);
              v_url := REPLACE(v_url,'%27%27','%27'); -- Fix to ensure Double Quotes are converted to Single Quotes
              --set the required URL to utl http.
              v_req := utl_http.begin_request(v_url);
              --Authentication setting
              --Fetch the user id and password from stnding data.
              BEGIN
                   SELECT *
                        INTO v_userid_pwd
                        FROM SMT_ORACLE_PARAMETERS
                        WHERE PARAMETER_CODE=c_spg_useridpwd
                        AND HOST_ID = ( SELECT HOST_ID
                                            FROM SMART_HOSTS A
                                            WHERE EXISTS ( SELECT 1
                                                                FROM DB_PARAMETERS B
                                                                WHERE A.HOSTNAME = B.HOSTNAME
                                                                AND A.DATABASE_ID = B.DATABASE_ID));
              EXCEPTION
                   WHEN NO_DATA_FOUND THEN
                   P_RESPONSE := 'ORACLE_ERROR: USER id AND Password NOT configured IN SMT_ORACLE_PARAMETERS:SPGIDPWD';
                   WHEN OTHERS THEN
                   P_RESPONSE := 'ORACLE_ERROR: USER id AND Password NOT configured IN SMT_ORACLE_PARAMETERS:SPGIDPWD';
              END;
              --utl_http.set_authentication(v_req, p_username_in, p_password_in);
              utl_http.set_authentication(v_req, v_userid_pwd.description, v_userid_pwd.VALUE);
              v_resp := utl_http.get_response(v_req);
              --Fill in the the response time
              PRESPONSE_TIME := (DBMS_UTILITY.GET_TIME - v_start_time)/100;
              IF v_resp.reason_phrase = 'OK' THEN
                   -- Fetch the response
                   BEGIN
                        LOOP
                        utl_http.read_line(v_resp, v_buffer);
                             P_RESPONSE := P_RESPONSE || v_buffer;
                        END LOOP;
                             utl_http.end_response(v_resp);
                        EXCEPTION
                        WHEN utl_http.end_of_body THEN
                        utl_http.end_response(v_resp);
                        P_RESPONSE := P_RESPONSE || v_buffer;
                   END;
              ELSIF v_resp.reason_phrase <> 'OK' OR P_RESPONSE = '' THEN
                   --error handling starts
                   --If the HTTP Status is not OK then store the error information
                   PORACLE_ERROR_MESSAGE     :=     'Status Code: '|| v_resp.STATUS_CODE||'. Reason Phrase ' ||v_resp.reason_phrase;
                   P_RESPONSE                    :=     'ORACLE_ERROR: '||     ' Reason Phrase ' ||     v_resp.reason_phrase;
                   PORACLE_ERROR               :=     v_resp.STATUS_CODE;
              END IF;
              --In case we got successful response from SPG
              IF P_RESPONSE LIKE '%<RetCde>0</RetCde>%' THEN
                   PDATA_TRANSFER_STATUS     :=     'Y';
              ELSE
                   BEGIN
    SELECT message
                                  INTO vl_std_returnCode
                                  FROM SMT_MESSAGES
                                  WHERE MESSAGE_CODE='SPGANTIDTS';
    EXCEPTION
    WHEN NO_DATA_FOUND THEN
         vl_std_returnCode := '-12545,-29273,-1,401,';
    WHEN OTHERS THEN
                        vl_std_returnCode := '-12545,-29273,-1,401,';
    END;
                   --In case there was an error do not update Data Transfer Status
                   IF PORACLE_ERROR <> NULL AND INSTR(vl_std_returnCode, PORACLE_ERROR || ',', 1, 1) <> 0 THEN
                             PDATA_TRANSFER_STATUS:=PDATA_TRANSFER_STATUS;
                   ELSE
                        vl_RetCode := SUBSTR(P_RESPONSE, INSTR(P_RESPONSE,'<RetCde>', 1, 1),
                        INSTR(P_RESPONSE,'</RetCde>',1,1)+9 - INSTR(P_RESPONSE,'<RetCde>', 1, 1));
                        BEGIN
                             SELECT VALUE
                                  INTO vl_std_returnCode
                                  FROM SMT_ORACLE_PARAMETERS
                                  WHERE PARAMETER_CODE='SPGRCS'
                                  AND HOST_ID = ( SELECT HOST_ID
                                       FROM SMART_HOSTS A
                                       WHERE EXISTS ( SELECT 1
                                                           FROM DB_PARAMETERS B
                                                           WHERE A.HOSTNAME = B.HOSTNAME
                                                           AND A.DATABASE_ID = B.DATABASE_ID));
                   EXCEPTION
                        WHEN NO_DATA_FOUND THEN
                             vl_std_returnCode := '<RetCde>4244</RetCde><RetCde>4245</RetCde><RetCde>4246</RetCde>';
                        WHEN OTHERS THEN
                             vl_std_returnCode := '<RetCde>4244</RetCde><RetCde>4245</RetCde><RetCde>4246</RetCde>';
                        END;
                        IF INSTR(vl_std_returnCode, vl_RetCode, 1, 1) <> 0 THEN
                             --needs not to re attempted.
                             PDATA_TRANSFER_STATUS:='X';
                        ELSE
                             --In case we did'nt got SUCCESSFUL response FROM SPG THEN UPDATE the Data Transfer Status so that the failed requests can be picked up BY the NEXT batch job RUN
                             IF PDATA_TRANSFER_STATUS='N' THEN
                                  --initially if data transfer status was N then update it now to F
                                  PDATA_TRANSFER_STATUS     :=     'F';
                             ELSIF PDATA_TRANSFER_STATUS='F' THEN
                                  --initially if data transfer status was N then update it now to S
                                  PDATA_TRANSFER_STATUS     :=     'S';
                             END IF;
                        END IF;
                   END IF;
              END IF;
              --Now Update all the modified Values
         UPDATE SPG_INTERFACE_TABLE
                   SET     response          =     P_RESPONSE,
                   data_transfer_status     =     PDATA_TRANSFER_STATUS,
                   oracle_error               =     PORACLE_ERROR,
                   oracle_error_message     =     PORACLE_ERROR_MESSAGE,
                   response_time               =     PRESPONSE_TIME
                   WHERE transaction_id     =     PTRANSACTION_ID;
              COMMIT;
    END IF;
    EXCEPTION
         WHEN OTHERS THEN
         --Handling the unhandled exception
         PORACLE_ERROR               :=     SQLCODE;
         PORACLE_ERROR_MESSAGE     :=     SQLERRM;
         P_RESPONSE                    :=     'ORACLE_ERROR: '|| PORACLE_ERROR_MESSAGE;
         PRESPONSE_TIME               :=     (DBMS_UTILITY.GET_TIME - v_start_time)/100;
         SELECT data_transfer_status INTO PDATA_TRANSFER_STATUS
         FROM SPG_INTERFACE_TABLE
         WHERE transaction_id=PTRANSACTION_ID;
         --New functionality to update the oracle error and oracle error message and not the Data Transfer Status
    BEGIN
    SELECT message
    INTO vl_std_returnCode
    FROM SMT_MESSAGES
    WHERE MESSAGE_CODE='SPGANTIDTS';
    EXCEPTION
    WHEN NO_DATA_FOUND THEN
    vl_std_returnCode := '-12545,-29273,-1,';
    WHEN OTHERS THEN
    vl_std_returnCode := '-12545,-29273,-1,';
    END;
         vl_RetCode     :=     PORACLE_ERROR || ',';
    IF INSTR(vl_std_returnCode, vl_RetCode, 1, 1) <> 0 THEN
    --If the error is found in above maintained standing data do not change the Data Transfer Status
                   pdata_transfer_status:=pdata_transfer_status;
    ELSE
              IF pdata_transfer_status='N' THEN
                             PDATA_TRANSFER_STATUS     :=     'F';
                             DBMS_OUTPUT.PUT_LINE('DUE TO ERROR DATA COULDN''T GET TRANSFERED TO SPG FOR TRANSACTION'||' '||PTRANSACTION_ID);
                             DBMS_OUTPUT.PUT_LINE(SQLERRM);
              ELSIF pdata_transfer_status='F' THEN
                             PDATA_TRANSFER_STATUS     :=     'S';
                             DBMS_OUTPUT.PUT_LINE('DUE TO ERROR DATA COULDN''T GET TRANSFERED TO SPG FOR TRANSACTION'||' '||PTRANSACTION_ID);
                             DBMS_OUTPUT.PUT_LINE(SQLERRM);
    ELSE
                             DBMS_OUTPUT.PUT_LINE('Failure WHEN sending data TO Error LOG. Data Transfer Status IS ' || PDATA_TRANSFER_STATUS || '. TRANSACTION ID '|| PTRANSACTION_ID);
              END IF;
    END IF;
              --Now update all the information gathered above to the table
         UPDATE SPG_INTERFACE_TABLE
              SET     response          =     P_RESPONSE,
              data_transfer_status     =     PDATA_TRANSFER_STATUS,
              oracle_error               =     PORACLE_ERROR,
              oracle_error_message     =     PORACLE_ERROR_MESSAGE,
              response_time               =     PRESPONSE_TIME
              WHERE transaction_id     =     PTRANSACTION_ID;
              COMMIT;
    END;
    /

    I have fixed the problem by own.
    Seems there are some while space in the endpoint url.
    Fix
    http_req:= utl_http.begin_request
    trim(l_endpoint_url)
    ,'POST'
    ,'HTTP/1.1'
    It works...
    Regards
    BS

  • TOO many OPEN CURSORS during loop of INSERT's

    Running ODP.NET beta2 (can't move up yet but will do that soon)
    I don't think it is related with ODP itself but probably on how .Net works with cursors. We have a for/next loop that executes INSERT INTO xxx VALUES (:a,:b,:c)
    statements. Apparently, when monitoring v$sysstat (current open cursors) we see these raising with 1 INSERT = 1 cursor. If subsequently we try to perform another action, we get max cursors exceeded. We allready set open_cursor = 1000, but the number of inserts can be very high. Is there a way to release these cursors (already wrote oDataAdaptor.dispose, oCmd.dispose but this does not help.
    Is it normal that each INSERT has it's own cursor ? they all have the same hashvalue in v$open_cursor. They seem to be released after a while, especially when moving to another asp.net page, but it's not clear when that happens and if it is possible to force the release of the (implicit?) cursors faster.
    Below is a snippet of the code, I unrolled a couple of function-calls into the code so this is just an example, not sure it will run without errors like this, but the idea should be clear (the code looks rather complex for what it does but the unrolled functions make the code more generic and we have a database-independend datalayer):
    Try
    ' Set the Base Delete statement
    lBaseSql = _
    "INSERT INTO atable(col1,col2,col3) " & _
    "VALUES(:col1,:col2,:col3)"
    ' Initialize a transaction
    lTransaction = oConnection.BeginTransaction()
    ' Create the parameter collection, containing for each
    ' row in the list the arguments
    For Each lDataRow In aList.Rows
    lOracleParamters = New OracleParameterCollection()
    lOracleParameter = New OracleParameter("luserid", OracleDbType.Varchar2,
    _ CType(aCol1, Object))
    lOracleParamters.Add(lOracleParameter)
    lOracleParameter = New OracleParameter("part_no", OracleDbType.Varchar2, _
    CType(lDataRow.Item("col2"), Object))
    lOracleParamters.Add(lOracleParameter)
    lOracleParameter = New OracleParameter("revision", OracleDbType.Int32, _
    CType(lDataRow.Item("col3"), Object))
    lOracleParamters.Add(lOracleParameter)
    ' Execute the Statement;
    ' If the execution fails because the row already exists,
    ' then the insert should be considered as succesfull.
    Try
    Dim aCommand As New OracleCommand()
    Dim retval As Integer
    'associate the aConnection with the aCommand
    aCommand.Connection = oConnection
    'set the aCommand text (stored procedure name or SQL statement)
    aCommand.CommandText = lBaseSQL
    'set the aCommand type
    aCommand.CommandType = CommandType.Text
    'attach the aCommand parameters if they are provided
    If Not (lOracleParameters Is Nothing) Then
    Dim lParameter As OracleParameter
    For Each lParameter In lOracleParameters
    'check for derived output value with no value assigned
    If lParameter.Direction = ParameterDirection.InputOutput _
    And lParameter.Value Is Nothing Then
    lParameter.Value = Nothing
    End If
    aCommand.Parameters.Add(lParameter)
    Next lParameter
    End If
    Return
    ' finally, execute the aCommand.
    retval = cmd.ExecuteNonQuery()
    ' detach the OracleParameters from the aCommand object,
    ' so they can be used again
    cmd.Parameters.Clear()
    Catch ex As Exception
    Dim lErrorMsg As String
    lErrorMsg = ex.ToString
    If Not lTransaction Is Nothing Then
    lTransaction.Rollback()
    End If
    End Try
    Next
    lTransaction.Commit()
    Catch ex As Exception
    lTransaction.Rollback()
    Throw New DLDataException(aConnection, ex)
    End Try

    I have run into this problem as well. To my mind
    Phillip's solution will work but seems completey unnecessary. This is work the provider itself should be managing.
    I've done extensive testing with both ODP and OracleClient. Here is one of the scenarios: In a tight loop of 10,000 records, each of which is either going to be inserted or updated via a stored procedure call, the ODP provider throws the "too many cursor errors at around the 800th iteration. With over 300 cursors being open. The exact same code with OracleClient as the provider never throws an error and opens up 40+ cursors during execution.
    The applicaation I have updates a Oracle8i database from a DB2 database. There are over 30 tables being updated in near real time. Reusing the command object is not an option and adding all the code Phillip did for each call seems highly unnecessary. I say Oracle needs to fix this problem. As much as I hate to say it the microsoft provider seems superior at this point.

  • Error MDX result contains too many cells (more than 1 million). (WIS 10901)

    Hi,
    We have developed an universe on BI query and developed report on it. But while running this BO query in Web Intelligence we get the following error
    A database error occured. The database error text is: Error in MDDataSetBW.GetCellData.  MDX result contains too many cells (more than 1 million). (WIS 10901)
    This BO query is restricted for one document number.
    Now when i check in the BI cube there are not more than 300-400 records for that document number.
    If i restrict the BO query for document number, delivery number, material and acknowledged date then the query runs successfully.
    Can anyone please help with this issue.

    follow this article to get the mdx generated by the webi report.
    http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/90b02218-d909-2e10-1988-a2ca74547900
    then try to execute the same in mdxtest transaction in bw

  • Too many objects match the primary key oracle.jbo.Key

    Hi OAF Gurus,
    Currently we are implementing R12 Upgrade , for this we have deployed all the custom OAF Application related files on to the the respective JAVA_TOP folder.
    We have a custom municipal postal application which tracks the Postal Details.
    The page runs perfectly fine without any error in 11i instance, but the same is erroring out In R12.
    In R12 it shows an error as Too many objects match the primary key oracle.jbo.Key[112010 2014-10-01]
    here 112010 is nothing but the postal code id and 2014-10-01 is the Effective Start Date
    We have a custom table as xxad_postal_codes_f  (Date Track table)which contains the postal_code_id and effective_start_date (primary key is combination of postal_code_id and effective_start_date ).
    The Table already contains a row for postal_code_id = 112010  and Effective_Start_date = Sysdate.
    Now we want to update the entry for the same postal code with the Id being same as 112010  and  Effective_Start_date as 2014-10-01 through custom PostCodeChangePG
    at the time of save we are getting an error as Too many objects match the primary key oracle.jbo.Key[112010 2014-10-01]
    The table doesn't contain any of the data mentioned ([112010 2014-10-01]) at the time of insertion, hence there should not be any duplication of primary key but still we are getting the error.
    Please let us know how can we handle this..?
    Below is the code which is getting called on Click of Save button of PostCodeChangePG
    if (pageContext.getParameter("Apply") != null)
          PCodeCoWorkerBase coWorker = getCoWorker(pageContext, webBean);
              coWorker.processApply();
    Code in PCodeCoWorkerBase
        public void processApply()
          String postalCodeId = UIHelper.getRequiredParameter(pageContext, "postalCodeId");
          Date startDate = UIHelper.getRequiredDateParameter(pageContext , "EffectiveStartDate");
         Serializable[] postalCodeData = (Serializable[]) applicationModule.invokeMethod( "insertPostalCodeMajorChange", params, paramTypes );
          finalizeTransactionAndRedirect( postalCodeData );
    Code in Application Module
      public Serializable[] insertPostalCodeMajorChange ( String postalCodeId, Date date )
        PCodeAmWorker amWorker = new PCodeAmWorker(this);
        return amWorker.insertMajorChange( postalCodeId, DateHelper.convertClientToServerDate( getOADBTransaction(), date )
    Code in PCodeAmWorker
      public Serializable[] insertMajorChange ( String postalCodeId, Date date )
        // Get the view objects we need from the application module
        OAViewObject viewObject = (OAViewObject) applicationModule.getPCodesVO();
        PCodesVORowImpl currentRow = (PCodesVORowImpl) viewObject.getCurrentRow();
        currentRow.validate();
        currentRow.setEffectiveStartDate(date);
        currentRow.setComment1(currentRow.getNewComment());
    // Create a new row based on the current row
    PCodesVORowImpl newRow = (PCodesVORowImpl) viewObject.createAndInitRow(currentRow); //This is failing out and gives the error
    // Get the new effective start date as entered by the user
    Date effectiveStartDate = currentRow.getEffectiveStartDate();
        // Calculate the previous period's effective end date
        Date previousEffectiveEndDate = DateHelper.addDays(effectiveStartDate, -1);
        // Refresh the current row (the one changed by the UI) with the data it had at the beginning of the transaction
        currentRow.refresh(Row.REFRESH_UNDO_CHANGES);
        // The current row will now represent data for the the previous period set the effective end date for the previous period
        currentRow.setEffectiveEndDate(previousEffectiveEndDate);
        // Insert the newly created row that now represents the new period
        viewObject.insertRow(newRow);
        applicationModule.apply();
        return generateResult(newRow);
    PCodesVO() is based on PostalCodeEO
    below is the code from PostalCodeEOImpl
      public void create(AttributeList attributeList)
        // NOTE: This call will set attribute values if the entity object  is created with a call to vo.createAndInitRow(..)
        super.create(attributeList);
        if (getPostalCodeId() == null)
          setPostalCodeId(getOADBTransaction().getSequenceValue("XXAD_POSTAL_CODES_S"));
        if (getEffectiveStartDate() == null)
          setEffectiveStartDate(getOADBTransaction().getCurrentDBDate());
    After diagnosing the issue we found that the error is on the code of AMworker file while creating a new row PCodesVORowImpl newRow = (PCodesVORowImpl) viewObject.createAndInitRow(currentRow);
    we tried so many things such as clearing entity cache, VO cache, validating for duplicate primary key but still not able to resolved this.
    Please advice how to insert a new row on the PCodesVORowImpl without any exception.
    Thanks,
    Pallavi

    Hi ,
    One question here , if you are udating a existing record then why you are trying to create a new row
    PCodesVORowImpl newRow = (PCodesVORowImpl) viewObject.createAndInitRow(currentRow);
    Thanks
    Pratap

  • Is Distributed Transaction Coordinator services of the application role are required by SQL Server 2012 for clustering and support of SharePoint 2013.

    All I want to know is if Distributed Transaction Coordinator services of the application role are required by SQL Server 2012 for clustering and support of SharePoint 2013.
    I have been planning and deploying my companies first Windows Server 2012/SQL Server 2012 Always On cluster and Always On Availability Groups Multi-Subnet cluster and instances for SharePoint 2013, and I will be brutally honest, the documentation on either
    the MSDN and TechNet leave alot to be desired. Continually finding links in the documentation will take me from a Windows 2012 reference to a page talking about Windows Server 2008 or R2, The differences of which there are so many when it comes to configurations,
    settings, roles, services when working with SQL Server 2012. I have been confused, frustrated, screaming mad, with all the misdirection in this documentation.  The documentation takes me windows 2008 R2 which is different than 2012!
    Tired and trying to pick myself up off the floor!
    Greg
    Gman

    In general, DTC is not required for SQL 2012.  But, since you are asking specifically about SharePoint, it would be better to ask in a SharePoint forum.  They would be more likely to know those situations where FTC might be needed by SharePoint. 
    .:|:.:|:. tim

  • BEA-012036 Too Many Files | Weblogic Start Up for EJB deployment

    Trying to deploy EAR with EJB module inside. I am seeing the below error intermittently while deploying and now starting the weblogic server .
    There is already an EAR deployed with all the Shared Libraries under APP-INF/lib. I deployed a new EAR with all the similar common shared libraries ( APP-INF/lib jar files ) packaged inside this new file.
    <Apr 28, 2009 7:45:18 PM EDT> <Error> <EJB> <BEA-012036> <Compiling generated EJB classes produced the following Java compiler error message:
    /prod/xxxx/prd/server/dev_xxxx/servers/mt_crd_180_15001/cache/EJBCompilerCache/f6yuykfqdn7i/com/test/xxx/ejb/rtmschema/CreditserviceSessionEjb_f0jmmq_Impl.java:17: error while writing com.test.xxx.ejb.rtmschema.CreditserviceSessionEjb_f0jmmq_Impl: /prod/xxxx/prd/server/dev_xxxx/servers/mt_crd_180_15001/cache/EJBCompilerCache/f6yuykfqdn7i/com/test/xxx/ejb/rtmschema/CreditserviceSessionEjb_f0jmmq_Impl.class (Too many open files)
    (source unavailable)
    1 error
    >
    <Apr 28, 2009 7:45:19 PM EDT> <Error> <Deployer> <BEA-149205> <Failed to initialize the application 'xxx-ear-ejb4' due to error weblogic.application.ModuleException: Exception preparing module: EJBModule(xxx-ejbschema-service.jar)
    Unable to deploy EJB: xxx-ejbschema-service.jar from xxx-ejbschema-service.jar:
    There are 1 nested errors:
    java.io.IOException: Compiler failed executable.exec:
    /prod/xxxx/prd/server/dev_xxxx/servers/mt_crd_180_15001/cache/EJBCompilerCache/f6yuykfqdn7i/com/test/xxx/ejb/rtmschema/CreditserviceSessionEjb_f0jmmq_Impl.java:17: error while writing com.test.xxx.ejb.rtmschema.CreditserviceSessionEjb_f0jmmq_Impl: /prod/xxxx/prd/server/dev_xxxx/servers/mt_crd_180_15001/cache/EJBCompilerCache/f6yuykfqdn7i/com/test/xxx/ejb/rtmschema/CreditserviceSessionEjb_f0jmmq_Impl.class (Too many open files)
    (source unavailable)
    1 error
    at weblogic.utils.compiler.CompilerInvoker.compileMaybeExit(CompilerInvoker.java:493)
    at weblogic.utils.compiler.CompilerInvoker.compile(CompilerInvoker.java:332)
    at weblogic.utils.compiler.CompilerInvoker.compile(CompilerInvoker.java:340)
    at weblogic.ejb.container.ejbc.EJBCompiler.doCompile(EJBCompiler.java:343)
    at weblogic.ejb.container.ejbc.EJBCompiler.compileEJB(EJBCompiler.java:533)
    at weblogic.ejb.container.ejbc.EJBCompiler.compileEJB(EJBCompiler.java:500)
    at weblogic.ejb.container.deployer.EJBDeployer.runEJBC(EJBDeployer.java:476)
    at weblogic.ejb.container.deployer.EJBDeployer.compileJar(EJBDeployer.java:798)
    at weblogic.ejb.container.deployer.EJBDeployer.compileIfNecessary(EJBDeployer.java:701)
    at weblogic.ejb.container.deployer.EJBDeployer.prepare(EJBDeployer.java:1234)
    at weblogic.ejb.container.deployer.EJBModule.prepare(EJBModule.java:372)
    at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:93)
    at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(DeploymentCallbackFlow.java:360)
    at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)
    at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:56)
    at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:46)
    at weblogic.application.internal.BaseDeployment$1.next(BaseDeployment.java:615)
    at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)
    at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:191)
    at weblogic.application.internal.DeploymentStateChecker.prepare(DeploymentStateChecker.java:147)
    at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(AppContainerInvoker.java:61)
    at weblogic.deploy.internal.targetserver.AppDeployment.prepare(AppDeployment.java:137)
    at weblogic.management.deploy.internal.DeploymentAdapter$1.doPrepare(DeploymentAdapter.java:39)
    at weblogic.management.deploy.internal.DeploymentAdapter.prepare(DeploymentAdapter.java:187)
    at weblogic.management.deploy.internal.AppTransition$1.transitionApp(AppTransition.java:21)
    at weblogic.management.deploy.internal.ConfiguredDeployments.transitionApps(ConfiguredDeployments.java:233)
    at weblogic.management.deploy.internal.ConfiguredDeployments.prepare(ConfiguredDeployments.java:165)
    at weblogic.management.deploy.internal.ConfiguredDeployments.deploy(ConfiguredDeployments.java:122)
    at weblogic.management.deploy.internal.DeploymentServerService.resume(DeploymentServerService.java:173)
    at weblogic.management.deploy.internal.DeploymentServerService.start(DeploymentServerService.java:89)
    at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)
    at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:464)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:200)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:172)
    weblogic.application.ModuleException: Exception preparing module: EJBModule(xxx-ejbschema-service.jar)
    Unable to deploy EJB: xxx-ejbschema-service.jar from xxx-ejbschema-service.jar:
    There are 1 nested errors:
    java.io.IOException: Compiler failed executable.exec:
    /prod/xxxx/prd/server/dev_xxxx/servers/mt_crd_180_15001/cache/EJBCompilerCache/f6yuykfqdn7i/com/test/xxx/ejb/rtmschema/CreditserviceSessionEjb_f0jmmq_Impl.java:17: error while writing com.test.xxx.ejb.rtmschema.CreditserviceSessionEjb_f0jmmq_Impl: /prod/xxxx/prd/server/dev_xxxx/servers/mt_crd_180_15001/cache/EJBCompilerCache/f6yuykfqdn7i/com/test/xxx/ejb/rtmschema/CreditserviceSessionEjb_f0jmmq_Impl.class (Too many open files)
    (source unavailable)
    1 error
    at weblogic.utils.compiler.CompilerInvoker.compileMaybeExit(CompilerInvoker.java:493)
    at weblogic.utils.compiler.CompilerInvoker.compile(CompilerInvoker.java:332)
    at weblogic.utils.compiler.CompilerInvoker.compile(CompilerInvoker.java:340)
    at weblogic.ejb.container.ejbc.EJBCompiler.doCompile(EJBCompiler.java:343)
    at weblogic.ejb.container.ejbc.EJBCompiler.compileEJB(EJBCompiler.java:533)
    at weblogic.ejb.container.ejbc.EJBCompiler.compileEJB(EJBCompiler.java:500)
    at weblogic.ejb.container.deployer.EJBDeployer.runEJBC(EJBDeployer.java:476)
    at weblogic.ejb.container.deployer.EJBDeployer.compileJar(EJBDeployer.java:798)
    at weblogic.ejb.container.deployer.EJBDeployer.compileIfNecessary(EJBDeployer.java:701)
    at weblogic.ejb.container.deployer.EJBDeployer.prepare(EJBDeployer.java:1234)
    at weblogic.ejb.container.deployer.EJBModule.prepare(EJBModule.java:372)
    at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:93)
    at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(DeploymentCallbackFlow.java:360)
    at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)
    at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:56)
    at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:46)
    at weblogic.application.internal.BaseDeployment$1.next(BaseDeployment.java:615)
    at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)
    at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:191)
    at weblogic.application.internal.DeploymentStateChecker.prepare(DeploymentStateChecker.java:147)
    at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(AppContainerInvoker.java:61)
    at weblogic.deploy.internal.targetserver.AppDeployment.prepare(AppDeployment.java:137)
    at weblogic.management.deploy.internal.DeploymentAdapter$1.doPrepare(DeploymentAdapter.java:39)
    at weblogic.management.deploy.internal.DeploymentAdapter.prepare(DeploymentAdapter.java:187)
    at weblogic.management.deploy.internal.AppTransition$1.transitionApp(AppTransition.java:21)
    at weblogic.management.deploy.internal.ConfiguredDeployments.transitionApps(ConfiguredDeployments.java:233)
    at weblogic.management.deploy.internal.ConfiguredDeployments.prepare(ConfiguredDeployments.java:165)
    at weblogic.management.deploy.internal.ConfiguredDeployments.deploy(ConfiguredDeployments.java:122)
    at weblogic.management.deploy.internal.DeploymentServerService.resume(DeploymentServerService.java:173)
    at weblogic.management.deploy.internal.DeploymentServerService.start(DeploymentServerService.java:89)
    at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)
    at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:464)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:200)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:172)
    at weblogic.ejb.container.deployer.EJBModule.prepare(EJBModule.java:399)
    at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:93)
    at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(DeploymentCallbackFlow.java:360)
    at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)
    at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:56)
    Truncated. see log file for complete stacktrace
    java.io.IOException: Compiler failed executable.exec:
    /prod/xxxx/prd/server/dev_xxxx/servers/mt_crd_180_15001/cache/EJBCompilerCache/f6yuykfqdn7i/com/test/xxx/ejb/rtmschema/CreditserviceSessionEjb_f0jmmq_Impl.java:17: error while writing com.test.xxx.ejb.rtmschema.CreditserviceSessionEjb_f0jmmq_Impl: /prod/xxxx/prd/server/dev_xxxx/servers/mt_crd_180_15001/cache/EJBCompilerCache/f6yuykfqdn7i/com/test/xxx/ejb/rtmschema/CreditserviceSessionEjb_f0jmmq_Impl.class (Too many open files)
    (source unavailable)
    1 error
    at weblogic.utils.compiler.CompilerInvoker.compileMaybeExit(CompilerInvoker.java:493)
    at weblogic.utils.compiler.CompilerInvoker.compile(CompilerInvoker.java:332)
    at weblogic.utils.compiler.CompilerInvoker.compile(CompilerInvoker.java:340)
    at weblogic.ejb.container.ejbc.EJBCompiler.doCompile(EJBCompiler.java:343)
    at weblogic.ejb.container.ejbc.EJBCompiler.compileEJB(EJBCompiler.java:533)
    Truncated. see log file for complete stacktrace
    Thanks
    Abhi

    Put only files which needs to be 'shared' ( e.g persistent store files for jms, jta transaction store etc) on the network drive .. put all other files including logs on the local disk.. see if that makes a difference..
    NAS is slower than other storage setups like SAN and DAS...

  • DB need too many locks in single threaded application

    Hello,
    I`m new to BDB, and search for help of gurus.
    I try to create database importing data from csv files. Import procedure is already written and works fine, but sometimes it starts to need too many locks.
    Import process read csv file line by line. Check if key is already in the database, if yes it updates data, otherwise create new record. Import procedure is using DBEnv and transaction.
    Please, look at 2 cases of data to import.
    Case 1: Data in csv files are like:
    key1, some_data_1
    key1, some_data_2
    key2, some_data_3
    key2, some_data_4
    keyN, some_data_2N-1
    keyN, some_data_2N
    (key became a key and data became the value in the database)
    Case 2: Remove each second line in the csv file, so it became:
    key1, some_data_1
    key2, some_data_3
    keyN, some_data_2N-1
    In this case for successful import of the file more locks are needed then in case 1.
    This seems very odd to me. Could somebody explain why lock system behave so? Looking forward to hearing any response.
    Thanks.
    p.s.: maybe my explanation is not very clear, but i don't know which other details are really important. I could provide more details if it could help.
    Message was edited by:
    user647892

    There is nothing wrong.
    Oracle by default locks records. In case 1, you insert a record (1 row level lock) and update that same record. Why is a mystery, but the update doesn't require a lock (by you) as you already did lock the record.
    In case 2, you have distinct keys for each line, so each line results in a row level lock as expected.
    There are as much record locks as you request it to make.
    You could consider locking the table explicitly once, prior to the transaction, by a lock table statement.
    However, your approach is fundamentally flawed an non-scalable, as it processes each line individually instead of loading the data in a staging table and transferring it to the production table using
    insert into production table
    select * from staging table
    where key not in (select key from product table)
    Sybrand Bakker
    Senior Oracle DBA

  • "in-doubt distributed transaction" (WLS 8.1 SP2/Oracle 9.2.0.4)

              I've developed an MDB that reads a message from a queue, performs database updates
              against up to 2 databases, and sends an outgoing JMS message when all is complete.
              The MDB uses container-managed transactions to ensure that all DB updates and
              JMS messages are committed or rolled back together. I have had a lot of problems
              related to transactions failing, becoming "in-doubt" in the database and locking
              database resources indefinitely.
              My environment is configured as follows:
              WebLogic 8.1.2 Server
              Oracle 9.2.0.4 database with RAC
              XA Connection Pool with WebLogic Type 2 Oracle Driver OR Oracle 9.2.0.4
              OCI Driver
              I have read the BEA/HP white paper regarding Weblogic 8.1 with Oracle 9i RAC (http://dev2dev.bea.com/products/wlserver81/whitepapers/wls_bea_hp.jsp)
              and have tried all of the solutions suggested in that paper. The only solution
              that worked consistently without causing the in-doubt transactions was to change
              my connection pools to point directly to a single node of the RAC cluster, not
              to the shared instance. However, even with this configuration, I have seen these
              errors occur when certain database failures occur.
              A side-effect of this problem is that the associated WebLogic connection pools
              begin to "forget" connections. The pool thinks that all of the connections are
              in use (even though I am always calling Statement.close() and Connection.close()),
              and the connection pool cannot be reset manually. The only way to clear the connection
              pool is to bounce WebLogic.
              The only posts I have found related to this error were regarding Oracle 8.1.7
              and WebLogic 6.1. Any help would be greatly appreciated.
              Exceptions:
              <Mar 23, 2004 2:59:36 PM EST> <Error> <EJB> <BEA-010026> <Exception occurred during
              commit of transaction Xid=BEA1-0526A28664707F28EDB9(6412513),Status=Rolled back.
              [Reason=javax.transaction.xa.XAException
              : prepare failed for XAResource 'ProfilingPool' with error XAER_NOTA : The XID
              is not valid],numRepliesOwedMe=0,numRepliesOwedOthers=0,seconds since begin=2,seconds
              left=60,XAServerResourceInfo[JMS_my
              JmsStore]=(ServerResourceInfo[JMS_myJmsStore]=(state=rolledback,assigned=myserver),xar=JMS_myJmsStore),XAServerResourceInfo[ProfilingPool]=(ServerResourceInfo[ProfilingPool]=(state=rolledback,ass
              igned=myserver),xar=ProfilingPool),SCInfo[mydomain+myserver]=(state=rolledback),local
              properties=({}),OwnerTransactionManager=ServerTM[ServerCoordinatorDescriptor=(CoordinatorURL=myserver+10.41.0.61:7001+m
              ydomain+t3+, XAResources={JMS_myJmsStore, JMS_FileStore, ProfilingPool, SearchManagementPool,
              AnnouncementsTxPool},NonXAResources={})],CoordinatorURL=myserver+10.41.0.61:7001+mydomain+t3+):
              javax.tran
              saction.xa.XAException: prepare failed for XAResource 'ProfilingPool' with error
              XAER_NOTA : The XID is not valid
              at weblogic.jdbc.oci.xa.XA.createException(XA.java:386)
              at weblogic.jdbc.oci.xa.XADataSource.internalPrepare(XADataSource.java:905)
              at weblogic.jdbc.oci.xa.XADataSource.prepare(XADataSource.java:885)
              at weblogic.jdbc.jta.DataSource.prepare(DataSource.java:846)
              at weblogic.transaction.internal.XAServerResourceInfo.prepare(XAServerResourceInfo.java:1167)
              at weblogic.transaction.internal.XAServerResourceInfo.prepare(XAServerResourceInfo.java:401)
              at weblogic.transaction.internal.ServerSCInfo$1.execute(ServerSCInfo.java:253)
              at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
              at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
              --------------- nested within: ------------------
              weblogic.transaction.RollbackException: Could not prepare resource 'ProfilingPool
              prepare failed for XAResource 'ProfilingPool' with error XAER_NOTA : The XID is
              not valid - with nested exception:
              [javax.transaction.xa.XAException: prepare failed for XAResource 'ProfilingPool'
              with error XAER_NOTA : The XID is not valid]
              at weblogic.transaction.internal.TransactionImpl.throwRollbackException(TransactionImpl.java:1644)
              at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:300)
              at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:221)
              at weblogic.ejb20.internal.MDListener.execute(MDListener.java:412)
              at weblogic.ejb20.internal.MDListener.transactionalOnMessage(MDListener.java:316)
              at weblogic.ejb20.internal.MDListener.onMessage(MDListener.java:281)
              at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:2596)
              at weblogic.jms.client.JMSSession.execute(JMSSession.java:2516)
              at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
              at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
              2004-03-23 15:00:45,406 ERROR IS003989 [ExecuteThread: '17' for queue: 'ProfileCompleteListenerBean.ExecuteQueue']
              my.package.search.business.ProfiledHoldingDAO.setProfilingStatus(ProfiledHoldingDAO.java:350
              ) - Failed to update profiling status for holding 10014 [] (-2)
              java.sql.SQLException: ORA-02049: timeout: distributed transaction waiting for
              lock
              at weblogic.db.oci.OciCursor.getCDAException(OciCursor.java:282)
              at weblogic.jdbc.oci.PreparedStatement.executeUpdate(PreparedStatement.java:226)
              at weblogic.jdbc.oci.xa.PreparedStatement.executeUpdate(PreparedStatement.java:81)
              at weblogic.jdbc.wrapper.PreparedStatement.executeUpdate(PreparedStatement.java:94)
              at my.package.search.business.ProfiledHoldingDAO.setProfilingStatus(ProfiledHoldingDAO.java:345)
              at my.package.search.business.ProfilingManager.disseminateAndAcknowledge(ProfilingManager.java:254)
              at my.package.search.business.ProfileCompleteListenerBean.onMessage(ProfileCompleteListenerBean.java:128)
              at weblogic.ejb20.internal.MDListener.execute(MDListener.java:382)
              at weblogic.ejb20.internal.MDListener.transactionalOnMessage(MDListener.java:316)
              at weblogic.ejb20.internal.MDListener.onMessage(MDListener.java:281)
              at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:2596)
              at weblogic.jms.client.JMSSession.execute(JMSSession.java:2516)
              at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
              at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
              2004-03-23 15:01:43,093 ERROR IS003989 [ExecuteThread: '18' for queue: 'HoldingStatusListenerBean.ExecuteQueue']
              my.package.search.business.ProfiledHoldingDAO.getProfilingStatus(ProfiledHoldingDAO.java:265)
              - Failed to retrieve profiling results for holding 10060 [] (-2)
              java.sql.SQLException: ORA-01591: lock held by in-doubt distributed transaction
              189.47.12
              at weblogic.db.oci.OciCursor.getCDAException(OciCursor.java:282)
              at weblogic.jdbc.oci.PreparedStatement.executeQuery(PreparedStatement.java:152)
              at weblogic.jdbc.oci.xa.PreparedStatement.executeQuery(PreparedStatement.java:48)
              at weblogic.jdbc.wrapper.PreparedStatement.executeQuery(PreparedStatement.java:80)
              at my.package.search.business.ProfiledHoldingDAO.getProfilingStatus(ProfiledHoldingDAO.java:256)
              at my.package.search.business.ProfiledHoldingDAO.storeHoldingMetadata(ProfiledHoldingDAO.java:489)
              at my.package.search.business.ProfiledHoldingDAO.storeNewHolding(ProfiledHoldingDAO.java:406)
              at my.package.search.business.ProfilingManager.profileHolding(ProfilingManager.java:128)
              at my.package.search.business.HoldingStatusListenerBean.onMessage(HoldingStatusListenerBean.java:121)
              at weblogic.ejb20.internal.MDListener.execute(MDListener.java:382)
              at weblogic.ejb20.internal.MDListener.transactionalOnMessage(MDListener.java:316)
              at weblogic.ejb20.internal.MDListener.onMessage(MDListener.java:281)
              at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:2596)
              at weblogic.jms.client.JMSSession.execute(JMSSession.java:2516)
              at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
              at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
              

    Hi. There is a serious bug in the Oracle DBMS (all versions) where in-doubt
              transactions have their data locked in the DBMS by page rather than by row,
              so it will indefinitely prevent access to all data on the page, including
              logically uninvolved data. Oracle understands the problem but currently
              says they will never fix it (it would take too much work). They offer the
              alternative that you configure your table data to ensure that no more than
              one datarow resides on a page.
              Joe
              Matt Smith wrote:
              > I've developed an MDB that reads a message from a queue, performs database updates
              > against up to 2 databases, and sends an outgoing JMS message when all is complete.
              > The MDB uses container-managed transactions to ensure that all DB updates and
              > JMS messages are committed or rolled back together. I have had a lot of problems
              > related to transactions failing, becoming "in-doubt" in the database and locking
              > database resources indefinitely.
              >
              > My environment is configured as follows:
              > WebLogic 8.1.2 Server
              > Oracle 9.2.0.4 database with RAC
              > XA Connection Pool with WebLogic Type 2 Oracle Driver OR Oracle 9.2.0.4
              > OCI Driver
              >
              > I have read the BEA/HP white paper regarding Weblogic 8.1 with Oracle 9i RAC (http://dev2dev.bea.com/products/wlserver81/whitepapers/wls_bea_hp.jsp)
              > and have tried all of the solutions suggested in that paper. The only solution
              > that worked consistently without causing the in-doubt transactions was to change
              > my connection pools to point directly to a single node of the RAC cluster, not
              > to the shared instance. However, even with this configuration, I have seen these
              > errors occur when certain database failures occur.
              >
              > A side-effect of this problem is that the associated WebLogic connection pools
              > begin to "forget" connections. The pool thinks that all of the connections are
              > in use (even though I am always calling Statement.close() and Connection.close()),
              > and the connection pool cannot be reset manually. The only way to clear the connection
              > pool is to bounce WebLogic.
              >
              > The only posts I have found related to this error were regarding Oracle 8.1.7
              > and WebLogic 6.1. Any help would be greatly appreciated.
              >
              > Exceptions:
              > -----------------
              > <Mar 23, 2004 2:59:36 PM EST> <Error> <EJB> <BEA-010026> <Exception occurred during
              > commit of transaction Xid=BEA1-0526A28664707F28EDB9(6412513),Status=Rolled back.
              > [Reason=javax.transaction.xa.XAException
              > : prepare failed for XAResource 'ProfilingPool' with error XAER_NOTA : The XID
              > is not valid],numRepliesOwedMe=0,numRepliesOwedOthers=0,seconds since begin=2,seconds
              > left=60,XAServerResourceInfo[JMS_my
              > JmsStore]=(ServerResourceInfo[JMS_myJmsStore]=(state=rolledback,assigned=myserver),xar=JMS_myJmsStore),XAServerResourceInfo[ProfilingPool]=(ServerResourceInfo[ProfilingPool]=(state=rolledback,ass
              > igned=myserver),xar=ProfilingPool),SCInfo[mydomain+myserver]=(state=rolledback),local
              > properties=({}),OwnerTransactionManager=ServerTM[ServerCoordinatorDescriptor=(CoordinatorURL=myserver+10.41.0.61:7001+m
              > ydomain+t3+, XAResources={JMS_myJmsStore, JMS_FileStore, ProfilingPool, SearchManagementPool,
              > AnnouncementsTxPool},NonXAResources={})],CoordinatorURL=myserver+10.41.0.61:7001+mydomain+t3+):
              > javax.tran
              > saction.xa.XAException: prepare failed for XAResource 'ProfilingPool' with error
              > XAER_NOTA : The XID is not valid
              > at weblogic.jdbc.oci.xa.XA.createException(XA.java:386)
              > at weblogic.jdbc.oci.xa.XADataSource.internalPrepare(XADataSource.java:905)
              > at weblogic.jdbc.oci.xa.XADataSource.prepare(XADataSource.java:885)
              > at weblogic.jdbc.jta.DataSource.prepare(DataSource.java:846)
              > at weblogic.transaction.internal.XAServerResourceInfo.prepare(XAServerResourceInfo.java:1167)
              > at weblogic.transaction.internal.XAServerResourceInfo.prepare(XAServerResourceInfo.java:401)
              > at weblogic.transaction.internal.ServerSCInfo$1.execute(ServerSCInfo.java:253)
              > at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
              > at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
              > --------------- nested within: ------------------
              > weblogic.transaction.RollbackException: Could not prepare resource 'ProfilingPool
              > prepare failed for XAResource 'ProfilingPool' with error XAER_NOTA : The XID is
              > not valid - with nested exception:
              > [javax.transaction.xa.XAException: prepare failed for XAResource 'ProfilingPool'
              > with error XAER_NOTA : The XID is not valid]
              > at weblogic.transaction.internal.TransactionImpl.throwRollbackException(TransactionImpl.java:1644)
              > at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:300)
              > at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:221)
              > at weblogic.ejb20.internal.MDListener.execute(MDListener.java:412)
              > at weblogic.ejb20.internal.MDListener.transactionalOnMessage(MDListener.java:316)
              > at weblogic.ejb20.internal.MDListener.onMessage(MDListener.java:281)
              > at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:2596)
              > at weblogic.jms.client.JMSSession.execute(JMSSession.java:2516)
              > at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
              > at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
              > ...
              > 2004-03-23 15:00:45,406 ERROR IS003989 [ExecuteThread: '17' for queue: 'ProfileCompleteListenerBean.ExecuteQueue']
              > my.package.search.business.ProfiledHoldingDAO.setProfilingStatus(ProfiledHoldingDAO.java:350
              > ) - Failed to update profiling status for holding 10014 [] (-2)
              > java.sql.SQLException: ORA-02049: timeout: distributed transaction waiting for
              > lock
              > at weblogic.db.oci.OciCursor.getCDAException(OciCursor.java:282)
              > at weblogic.jdbc.oci.PreparedStatement.executeUpdate(PreparedStatement.java:226)
              > at weblogic.jdbc.oci.xa.PreparedStatement.executeUpdate(PreparedStatement.java:81)
              > at weblogic.jdbc.wrapper.PreparedStatement.executeUpdate(PreparedStatement.java:94)
              > at my.package.search.business.ProfiledHoldingDAO.setProfilingStatus(ProfiledHoldingDAO.java:345)
              > at my.package.search.business.ProfilingManager.disseminateAndAcknowledge(ProfilingManager.java:254)
              > at my.package.search.business.ProfileCompleteListenerBean.onMessage(ProfileCompleteListenerBean.java:128)
              > at weblogic.ejb20.internal.MDListener.execute(MDListener.java:382)
              > at weblogic.ejb20.internal.MDListener.transactionalOnMessage(MDListener.java:316)
              > at weblogic.ejb20.internal.MDListener.onMessage(MDListener.java:281)
              > at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:2596)
              > at weblogic.jms.client.JMSSession.execute(JMSSession.java:2516)
              > at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
              > at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
              > ...
              > 2004-03-23 15:01:43,093 ERROR IS003989 [ExecuteThread: '18' for queue: 'HoldingStatusListenerBean.ExecuteQueue']
              > my.package.search.business.ProfiledHoldingDAO.getProfilingStatus(ProfiledHoldingDAO.java:265)
              > - Failed to retrieve profiling results for holding 10060 [] (-2)
              > java.sql.SQLException: ORA-01591: lock held by in-doubt distributed transaction
              > 189.47.12
              > at weblogic.db.oci.OciCursor.getCDAException(OciCursor.java:282)
              > at weblogic.jdbc.oci.PreparedStatement.executeQuery(PreparedStatement.java:152)
              > at weblogic.jdbc.oci.xa.PreparedStatement.executeQuery(PreparedStatement.java:48)
              > at weblogic.jdbc.wrapper.PreparedStatement.executeQuery(PreparedStatement.java:80)
              > at my.package.search.business.ProfiledHoldingDAO.getProfilingStatus(ProfiledHoldingDAO.java:256)
              > at my.package.search.business.ProfiledHoldingDAO.storeHoldingMetadata(ProfiledHoldingDAO.java:489)
              > at my.package.search.business.ProfiledHoldingDAO.storeNewHolding(ProfiledHoldingDAO.java:406)
              > at my.package.search.business.ProfilingManager.profileHolding(ProfilingManager.java:128)
              > at my.package.search.business.HoldingStatusListenerBean.onMessage(HoldingStatusListenerBean.java:121)
              > at weblogic.ejb20.internal.MDListener.execute(MDListener.java:382)
              > at weblogic.ejb20.internal.MDListener.transactionalOnMessage(MDListener.java:316)
              > at weblogic.ejb20.internal.MDListener.onMessage(MDListener.java:281)
              > at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:2596)
              > at weblogic.jms.client.JMSSession.execute(JMSSession.java:2516)
              > at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
              > at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
              >
              >
              

  • JBO-25013: Too many objects match the primary key oracle.jbo.Key

    hi am adding values from one viewObject to another viewObject am geting this error JBO-25013: Too many objects match the primary key oracle.jbo.Key
    i used this code
    <af:commandButton text="Add New" id="cb5"
                                            actionListener="#{pageFlowScope.addMember.addMember}"/>
        RichTable empTable;
         public void setEmpTable(RichTable empTable) {
             this.empTable = empTable;
         public RichTable getEmpTable() {
             return empTable;
    binding="#{pageFlowScope.addMember.empTable}">
    the error is pointing in this line
        public void addMember(javax.faces.event.ActionEvent actionEvent) {
            List<String> tempTable = new ArrayList<String>();
            //Code to get the bindings for TargetVO :
                 RowKeySet selectedEmps = getEmpTable().getSelectedRowKeys();   
                   Iterator selectedEmpIter = selectedEmps.iterator();
                   DCBindingContainer bindings =
                                     (DCBindingContainer)BindingContext.getCurrent().getCurrentBindingsEntry();
                   DCIteratorBinding empIter = bindings.findIteratorBinding("UserDetailsViewVO1Iterator");
                   RowSetIterator empRSIter = empIter.getRowSetIterator();
                    while(selectedEmpIter.hasNext()){
                      Key key = (Key)((List)selectedEmpIter.next()).get(0);
                      Row currentRow = empRSIter.getRow(key);
                         onRowCreate(currentRow);
        public void onRowCreate( Row currentRow ) {
            OIDOperations   oIDOperations= new  OIDOperations();
            Map<Object,String> mp=new HashMap<Object, String>();         
         BindingContainer bindings = BindingContext.getCurrent().getCurrentBindingsEntry();
         //access the name of the iterator the table is bound to.
         DCIteratorBinding dciter = (DCIteratorBinding) bindings.get("DeltMember1Iterator");
         //access the underlying RowSetIterator
         RowSetIterator rsi = dciter.getRowSetIterator();
         //get handle to the last row
         Row lastRow = rsi.last();
         //obtain the index of the last row
         int lastRowIndex = rsi.getRangeIndexOf(lastRow);
         //create a new row
         Row newRow = rsi.createRow();
         String f = (String)currentRow.getAttribute("Firstname");
         String s = (String)currentRow.getAttribute("Surname");
         String u = (String)currentRow.getAttribute("Username"); 
         String n = (String)currentRow.getAttribute("Emailaddress");
            newRow.setAttribute("Firstname", f);
            newRow.setAttribute("Surname", s);
            newRow.setAttribute("Username1", u);
            newRow.setAttribute("Username", u);
            newRow.setAttribute("Emailaddress", n);
            newRow.setAttribute("Organisationid1",getorgid());
         //initialize the row
         newRow.setNewRowState(Row.STATUS_INITIALIZED);
         //add row to last index + 1 so it becomes last in the range set
         rsi.insertRowAtRangeIndex(lastRowIndex +1,  newRow);
         //make row the current row so it is displayed correctly
         rsi.setCurrentRow(newRow);   
            System.out.println("Username " + u);
            System.out.println("firstname " + f);
            System.out.println("surname " + s);
            System.out.println("email " + n);
        }Edited by: adf009 on 2013/02/14 2:44 PM
    Edited by: adf009 on 2013/02/14 2:44 PM
    Edited by: adf009 on 2013/02/14 2:46 PM
    Edited by: adf009 on 2013/02/14 2:47 PM

    how must i control my pk
    my log error is
    Caused by: oracle.jbo.TooManyObjectsException: JBO-25013: Too many objects match the primary key oracle.jbo.Key[2909 ].
         at oracle.jbo.server.EntityCache.throwTooManyObjectsException(EntityCache.java:604)
         at oracle.jbo.server.EntityCache.handleDuplicateKey(EntityCache.java:613)
         at oracle.jbo.server.EntityCache.addForAltKey(EntityCache.java:1020)
         at oracle.jbo.server.EntityCache.add(EntityCache.java:537)
         at oracle.jbo.server.EntityImpl.callCreate(EntityImpl.java:1207)
         at oracle.jbo.server.ViewRowStorage.create(ViewRowStorage.java:1152)
         at oracle.jbo.server.ViewRowImpl.create(ViewRowImpl.java:498)
         at oracle.jbo.server.ViewRowImpl.callCreate(ViewRowImpl.java:515)
         at oracle.jbo.server.ViewObjectImpl.createInstance(ViewObjectImpl.java:5714)
         at oracle.jbo.server.QueryCollection.createRowWithEntities(QueryCollection.java:1993)
         at oracle.jbo.server.ViewRowSetImpl.createRowWithEntities(ViewRowSetImpl.java:2492)
         at oracle.jbo.server.ViewRowSetImpl.doCreateAndInitRow(ViewRowSetImpl.java:2533)
         at oracle.jbo.server.ViewRowSetImpl.createRow(ViewRowSetImpl.java:2514)
         at oracle.jbo.server.ViewObjectImpl.createRow(ViewObjectImpl.java:11079)
         at uam.cadastre.gov.za.OrgDetails.onRowCreate(OrgDetails.java:1650)
         at uam.cadastre.gov.za.OrgDetails.addMember(OrgDetails.java:1624)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at com.sun.el.parser.AstValue.invoke(Unknown Source)
         at com.sun.el.MethodExpressionImpl.invoke(Unknown Source)
         at org.apache.myfaces.trinidadinternal.taglib.util.MethodExpressionMethodBinding.invoke(MethodExpressionMethodBinding.java:53)
         ... 49 more
    <DCUtil> <findSpelObject> [3498] DCUtil, returning:oracle.jbo.uicli.binding.JUFormBinding, for uam_view_pageDefs_OrgDetailsPageDef_WEB_INF_Updatetaskflow_definition_xml_Updatetaskflow_definition
    <DCIteratorBinding> <releaseDataInternal> [3499] Releasing iterator binding:OfficecodeList_436
    <DCIteratorBinding> <releaseDataInternal> [3500] Releasing iterator binding:OrganisationtypecodeList_344
    <DCIteratorBinding> <releaseDataInternal> [3501] Releasing iterator binding:OrgsubtypecodeList_437
    <DCIteratorBinding> <releaseDataInternal> [3502] Releasing iterator binding:CountrycodeList_438
    <DCIteratorBinding> <releaseDataInternal> [3503] Releasing iterator binding:ProvinceList_439
    <DCIteratorBinding> <releaseDataInternal> [3504] Releasing iterator binding:CityList_440
    <DCIteratorBinding> <releaseDataInternal> [3505] Releasing iterator binding:SuburbList_441
    <JUCtrlHierNodeBinding> <release> [3506] released: ROOT node binding:noCtrl_oracle_adfinternal_view_faces_model_binding_FacesCtrlHierNodeBinding_45, value:UpdResPerson1Iterator
    <JUCtrlHierNodeBinding> <release> [3507] released: ROOT node binding:noCtrl_oracle_adfinternal_view_faces_model_binding_FacesCtrlHierNodeBinding_46, value:UpdResPerson1Iterator
    <JUCtrlHierNodeBinding> <release> [3508] released: ROOT node binding:noCtrl_oracle_adfinternal_view_faces_model_binding_FacesCtrlHierNodeBinding_90, value:UserDetailsViewVO1Iterator
    <JUCtrlHierNodeBinding> <release> [3509] released: ROOT node binding:noCtrl_oracle_adfinternal_view_faces_model_binding_FacesCtrlHierNodeBinding_203, value:DeltMember1Iterator
    <DCIteratorBinding> <releaseDataInternal> [3510] Releasing iterator binding:UpdUamOrganisation1Iterator
    <JUCtrlHierNodeBinding> <release> [3511] released: ROOT node binding:noCtrl_oracle_adfinternal_view_faces_model_binding_FacesCtrlHierNodeBinding_45, value:UpdResPerson1Iterator
    <JUCtrlHierNodeBinding> <release> [3512] released: ROOT node binding:noCtrl_oracle_adfinternal_view_faces_model_binding_FacesCtrlHierNodeBinding_46, value:UpdResPerson1Iterator
    <DCIteratorBinding> <releaseDataInternal> [3513] Releasing iterator binding:UpdResPerson1Iterator
    <DCIteratorBinding> <releaseDataInternal> [3514] Releasing iterator binding:UpdPaymentOptions1Iterator
    <DCIteratorBinding> <releaseDataInternal> [3515] Releasing iterator binding:LutPaymentmethodsView1Iterator
    <JUCtrlHierNodeBinding> <release> [3516] released: ROOT node binding:noCtrl_oracle_adfinternal_view_faces_model_binding_FacesCtrlHierNodeBinding_203, value:DeltMember1Iterator
    <DCIteratorBinding> <releaseDataInternal> [3517] Releasing iterator binding:DeltMember1Iterator
    <DCIteratorBinding> <releaseDataInternal> [3518] Releasing iterator binding:UamUserdetailsView1Iterator
    <DCIteratorBinding> <releaseDataInternal> [3519] Releasing iterator binding:UpdOrganisationUser1Iterator
    <JUCtrlHierNodeBinding> <release> [3520] released: ROOT node binding:noCtrl_oracle_adfinternal_view_faces_model_binding_FacesCtrlHierNodeBinding_90, value:UserDetailsViewVO1Iterator
    <DCIteratorBinding> <releaseDataInternal> [3521] Releasing iterator binding:UserDetailsViewVO1Iterator
    <JUCtrlHierNodeBinding> <release> [3522] released: ROOT node binding:noCtrl_oracle_adfinternal_view_faces_model_binding_FacesCtrlHierNodeBinding_87, value:vcRowsIterator
    <DCIteratorBinding> <releaseDataInternal> [3523] Releasing iterator binding:operators_357
    <DCIteratorBinding> <releaseDataInternal> [3524] Releasing iterator binding:listIter
    <DCIteratorBinding> <releaseDataInternal> [3525] Releasing iterator binding:values_360
    <DCIteratorBinding> <releaseDataInternal> [3526] Releasing iterator binding:values_360
    <DCIteratorBinding> <releaseDataInternal> [3527] Releasing iterator binding:nestedViewCriteria_362
    <DCIteratorBinding> <releaseDataInternal> [3528] Releasing iterator binding:nestedViewCriteria_362
    <DCIteratorBinding> <releaseDataInternal> [3529] Releasing iterator binding:operators_357
    <DCIteratorBinding> <releaseDataInternal> [3530] Releasing iterator binding:operators_364
    <DCIteratorBinding> <releaseDataInternal> [3531] Releasing iterator binding:listIter
    <DCIteratorBinding> <releaseDataInternal> [3532] Releasing iterator binding:values_367
    <DCIteratorBinding> <releaseDataInternal> [3533] Releasing iterator binding:values_367
    <DCIteratorBinding> <releaseDataInternal> [3534] Releasing iterator binding:nestedViewCriteria_369
    <DCIteratorBinding> <releaseDataInternal> [3535] Releasing iterator binding:nestedViewCriteria_369
    <DCIteratorBinding> <releaseDataInternal> [3536] Releasing iterator binding:operators_364
    <DCIteratorBinding> <releaseDataInternal> [3537] Releasing iterator binding:operators_371
    <DCIteratorBinding> <releaseDataInternal> [3538] Releasing iterator binding:listIter
    <DCIteratorBinding> <releaseDataInternal> [3539] Releasing iterator binding:values_374
    <DCIteratorBinding> <releaseDataInternal> [3540] Releasing iterator binding:values_374
    <DCIteratorBinding> <releaseDataInternal> [3541] Releasing iterator binding:nestedViewCriteria_376
    <DCIteratorBinding> <releaseDataInternal> [3542] Releasing iterator binding:nestedViewCriteria_376
    <DCIteratorBinding> <releaseDataInternal> [3543] Releasing iterator binding:operators_371
    <DCIteratorBinding> <releaseDataInternal> [3544] Releasing iterator binding:operators_378
    <DCIteratorBinding> <releaseDataInternal> [3545] Releasing iterator binding:listIter
    <DCIteratorBinding> <releaseDataInternal> [3546] Releasing iterator binding:values_381
    <DCIteratorBinding> <releaseDataInternal> [3547] Releasing iterator binding:values_381
    <DCIteratorBinding> <releaseDataInternal> [3548] Releasing iterator binding:nestedViewCriteria_383
    <DCIteratorBinding> <releaseDataInternal> [3549] Releasing iterator binding:nestedViewCriteria_383
    <DCIteratorBinding> <releaseDataInternal> [3550] Releasing iterator binding:operators_378
    <DCIteratorBinding> <releaseDataInternal> [3551] Releasing iterator binding:criteriaItemsForSearch_348
    <DCIteratorBinding> <releaseDataInternal> [3552] Releasing iterator binding:viewObjectBindVars_351
    <DCIteratorBinding> <releaseDataInternal> [3553] Releasing iterator binding:viewObjectBindVars_351
    <DCIteratorBinding> <releaseDataInternal> [3554] Releasing iterator binding:properties_353
    <DCIteratorBinding> <releaseDataInternal> [3555] Releasing iterator binding:properties_353
    <DCIteratorBinding> <releaseDataInternal> [3556] Releasing iterator binding:criteriaItemsForSearch_348
    <JUCtrlHierNodeBinding> <release> [3557] released: ROOT node binding:noCtrl_oracle_adfinternal_view_faces_model_binding_FacesCtrlHierNodeBinding_88, value:vcRowsIterator
    <JUCtrlHierNodeBinding> <release> [3558] released: ROOT node binding:noCtrl_oracle_adfinternal_view_faces_model_binding_FacesCtrlHierNodeBinding_87, value:vcRowsIterator
    <JUCtrlHierNodeBinding> <release> [3559] released: ROOT node binding:noCtrl_oracle_adfinternal_view_faces_model_binding_FacesCtrlHierNodeBinding_88, value:vcRowsIterator
    <DCIteratorBinding> <releaseDataInternal> [3560] Releasing iterator binding:vcRowsIterator
    <DCIteratorBinding> <releaseDataInternal> [3561] Releasing iterator binding:variableIterator
    <DCIteratorBinding> <releaseDataInternal> [3562] Releasing iterator binding:UamAddress1Iterator
    <ApplicationPoolMessageHandler> <doPoolMessage> [3563] **** PoolMessage REQ ATTACH LWS
    <ApplicationPoolMessageHandler> <doPoolMessage> [3564] **** PoolMessage REQ DETACH LWS
    <ViewObjectImpl> <closeStatementsResetRowSet> [3565] ViewObject: [internal_vcival_def]Root.internal_vcival_def_385 close prepared statements...
    <ViewObjectImpl> <closeStatementsResetRowSet> [3566] ViewObject: [internal_vco_def]Root.internal_vco_def_442 close prepared statements...
    <ViewObjectImpl> <closeStatementsResetRowSet> [3567] ViewObject: [internal_vci_def]Root.internal_vci_def_355 close prepared statements...
    <ViewObjectImpl> <closeStatementsResetRowSet> [3568] ViewObject: [AppModule.UserDetailsViewVO1.data_uam_view_updateorgPageDef_Updatetaskflowdefinition1_uam_view_pageDefs_OrgDetailsPageDef_WEB_INF_Updatetaskflow_definition_xml_Updatetaskflow_definition_ImplicitViewCriteriaQuery]Root.AppModule_UserDetailsViewVO1_data_uam_view_updateorgPageDef_Updatetaskflowdefinition1_uam_view_pageDefs_OrgDetailsPageDef_WEB_INF_Updatetaskflow_definition_xml_Updatetaskflow_definition_ImplicitViewCriteriaQuery_346 close prepared statements...
    <DCUtil> <findSpelObject> [3569] DCUtil, returning:oracle.adfinternal.view.faces.model.binding.FacesCtrlSearchBinding, for ImplicitViewCriteriaQuery
    <JUCtrlHierNodeBinding> <release> [3570] released: ROOT node binding:noCtrl_oracle_adfinternal_view_faces_model_binding_FacesCtrlHierNodeBinding_87, value:vcRowsIterator
    <JUCtrlHierNodeBinding> <release> [3571] released: ROOT node binding:noCtrl_oracle_adfinternal_view_faces_model_binding_FacesCtrlHierNodeBinding_88, value:vcRowsIterator
    <JUCtrlHierNodeBinding> <release> [3572] released: ROOT node binding:noCtrl_oracle_adfinternal_view_faces_model_binding_FacesCtrlHierNodeBinding_87, value:vcRowsIterator
    <JUCtrlHierNodeBinding> <release> [3573] released: ROOT node binding:noCtrl_oracle_adfinternal_view_faces_model_binding_FacesCtrlHierNodeBinding_88, value:vcRowsIterator
    <DCIteratorBinding> <releaseDataInternal> [3574] Releasing iterator binding:vcRowsIterator
    <DCIteratorBinding> <releaseDataInternal> [3575] Releasing iterator binding:variableIterator
    <ADFLogger> <begin> Rollback transaction
    <ApplicationModuleImpl> <resetState> [3576] Resetting AM=Root
    <ApplicationPoolMessageHandler> <doPoolMessage> [3577] **** PoolMessage REQ DETACH LWS
    <ApplicationPoolMessageHandler> <doPoolMessage> [3578] **** PoolMessage REQ ATTACH LWS
    <ApplicationPoolMessageHandler> <doPoolMessage> [3579] **** PoolMessage REQ DETACH LWS
    <XmlErrorHandler> <handleError> ADF_FACES-60096:Server Exception during PPR, #1
    javax.servlet.ServletException: JBO-25013: Too many objects match the primary key oracle.jbo.Key[2909 ].
         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:277)
         at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
         at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
         at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
         at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:205)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:106)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
         at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:271)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:177)
         at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:179)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:119)
         at java.security.AccessController.doPrivileged(Native Method)
         at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:315)
         at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:442)
         at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:103)
         at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:171)
         at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:139)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
         at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
         at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
         at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
    Caused by: oracle.jbo.TooManyObjectsException: JBO-29114 ADFContext is not setup to process messages for this exception. Use the exception stack trace and error code to investigate the root cause of this exception. Root cause error code is JBO-25013. Error message parameters are {0=oracle.jbo.Key[2909 ]}
         at oracle.jbo.server.EntityCache.throwTooManyObjectsException(EntityCache.java:604)
         at oracle.jbo.server.EntityCache.handleDuplicateKey(EntityCache.java:613)
         at oracle.jbo.server.EntityCache.addForAltKey(EntityCache.java:1020)
         at oracle.jbo.server.EntityCache.add(EntityCache.java:537)
         at oracle.jbo.server.EntityImpl.callCreate(EntityImpl.java:1207)
         at oracle.jbo.server.ViewRowStorage.create(ViewRowStorage.java:1152)
         at oracle.jbo.server.ViewRowImpl.create(ViewRowImpl.java:498)
         at oracle.jbo.server.ViewRowImpl.callCreate(ViewRowImpl.java:515)
         at oracle.jbo.server.ViewObjectImpl.createInstance(ViewObjectImpl.java:5714)
         at oracle.jbo.server.QueryCollection.createRowWithEntities(QueryCollection.java:1993)
         at oracle.jbo.server.ViewRowSetImpl.createRowWithEntities(ViewRowSetImpl.java:2492)
         at oracle.jbo.server.ViewRowSetImpl.doCreateAndInitRow(ViewRowSetImpl.java:2533)
         at oracle.jbo.server.ViewRowSetImpl.createRow(ViewRowSetImpl.java:2514)
         at oracle.jbo.server.ViewObjectImpl.createRow(ViewObjectImpl.java:11079)
         at OrgDetails.onRowCreate(OrgDetails.java:1650)
         at OrgDetails.addMember(OrgDetails.java:1624)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at com.sun.el.parser.AstValue.invoke(Unknown Source)
         at com.sun.el.MethodExpressionImpl.invoke(Unknown Source)
         at org.apache.myfaces.trinidadinternal.taglib.util.MethodExpressionMethodBinding.invoke(MethodExpressionMethodBinding.java:53)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.broadcastToMethodBinding(UIXComponentBase.java:1256)
         at org.apache.myfaces.trinidad.component.UIXCommand.broadcast(UIXCommand.java:183)
         at org.apache.myfaces.trinidad.component.UIXCollection.broadcast(UIXCollection.java:148)
         at org.apache.myfaces.trinidad.component.UIXTable.broadcast(UIXTable.java:279)
         at oracle.adf.view.rich.component.UIXTable.broadcast(UIXTable.java:145)
         at oracle.adf.view.rich.component.rich.data.RichTable.broadcast(RichTable.java:402)
         at oracle.adf.view.rich.component.fragment.UIXRegion.broadcast(UIXRegion.java:148)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.broadcastEvents(LifecycleImpl.java:1018)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:386)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:194)
         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
         ... 38 more
    the error is in this like Row newRow = rsi.createRow();Edited by: adf009 on 2013/02/14 2:48 PM

  • ORA-01591: lock held by in-doubt distributed transaction

    I am using oracle wcf adapter to connect to oracle to insert.
    I am getting the ORA-01591: lock held by in-doubt distributed transaction.
    Any ideas as to what could be the resolution. I have followed the below mentioned steps. but that's not a permanent solution.
    Please advice.
    The resolution described below is not acceptable and never should have been used.  Although it does avoid the error, it's not okay to turn off AmbientTransaction when performing inserts
    and/or updates.  A different solution needs to be found.<o:p></o:p>
    http://msdn.microsoft.com/en-US/library/dd788352(v=BTS.10).aspx <o:p></o:p>
    "Not performing operations in a transactional context is advisable only for operations that do not make changes to the database. For operations that update data in the database, we recommend
    setting the binding property to true otherwise you might either experience message loss or duplicate messages depending on whether you are performing inbound or outbound operations."<o:p></o:p>
    ********************************************<o:p></o:p>
    This can be resolved by adjusting the configuration settings on the Oracle adapter, accessible via the Send Port properties.  The properties and the values that should be used are shown below:<o:p></o:p>
    ** Binding tab:
    incrPoolSize:  1
    maxPoolSize:  10
    useAmbientTransaction:  False<o:p></o:p>
    ** Messages tab:
    Isolation Level:  ReadCommitted<o:p></o:p>
    Also, you'll need to get a DBA to rollback the hanging "in-doubt" transactions, which will be viewable via the sql below.  Otherwise, if you try processing the same data again, you'll
    still get the same error.<o:p></o:p>
    SELECT LOCAL_TRAN_ID, GLOBAL_TRAN_ID, STATE, MIXED, HOST, COMMIT# FROM DBA_2PC_PENDING;<o:p></o:p>
    The transactions can be rolled back with sql, using this syntax:<o:p></o:p>
    ROLLBACK FORCE '<LOCAL_TRAN_ID>';
    <o:p></o:p>
    Thank you and have great day! Vivek Kulkarni MCAD.net

    Hi Vivek,
    This error is encountered by many DBA's and cause problem by locking the distributed transaction process, and not letting the query go through, because the Two - Phase Commit Mechanism got an error somewhere.
    he DBA should query the pending_trans$ and related tables, and attempt to repair network connection(s) to coordinator and commit point.
    Here are some codes to help you through the process:
    This one brings in-doubt transactions:
    select * from DBA_2PC_PENDING where state='prepared'
    This one prepares the rollback script for the transactions:
    select 'rollback force '''||local_tran_id||''';' from DBA_2PC_PENDING where state='prepared'
    All this is well described in below link
    ORA-01591: lock held by in-doubt distributed transaction
    ORA-01591: lock held by in-doubt distributed transaction string tips
    On BizTalk Side you need to make ambient transaction to false as Oracle does not go ahead with DTC Transaction with  Biz Talk
    Thanks
    Abhishek

Maybe you are looking for