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.
nullHi,
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 advanceHi 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. -
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 transactionsJust 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 advanceDear Pravin,
Are you referring to 'Active Connections' or 'Logged on clients'. Which is the kernel patch level that you are running?
Best Regards,
Tim -
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 TryI 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. -
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,
PallaviHi ,
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 -
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
GmanIn 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
AbhiPut 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:
user647892There 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 -
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 PMhow 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.netHi 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
-
2 iCloud accounts on one computer?
CAN YOU HAVE TWO ICLOUD ACCOUNTS ON 1 COMPUTER?
-
Hi! Anyone heard of a Sony Vaio phone that would obviously run on Microsoft's latest, windows phone 8 OS? What do you think of this phone? This would be a nice complement to Sony's VAIO range of laptops and hybrids if ever this will be conceptualized
-
Is it possible to pass a variable from a shell script back to an Automator action?
Is it possible to pass a variable from a shell script back to an Automator action? For instance, if I assign a value of foo to $var1 in my shell script how would I retrieve/pass that value in the next Automator action. I see that there is a variable
-
How to transfer videos to icloud
How do I upload videos from my ipad to the icloud?
-
Just updated to v3.6.13 and my ability to save bookmarks is gone. Why?
Firefox automatically updated to version 3.6.13 and my ability to save bookmarks is gone. I go to "Bookmark this page" and nothing happens. It happens on both computers I have: Windows 7 and Windows XP.