To Rollback or not to Rollback

I have a form with two blocks: block_I and block_II. Block_I is built around table_I and block_II is built around table_II. The two blocks are linked together via a master/detail relation. I have an post_change and a Key_Next_Item trigger of an item (Item_I) in block_I that do the following:
Post_Change: does an update on table_II based upon the change in its value (the value of Item_I)
Key_Next_Item: performs a go_block('block_II') and an execute_query command.
When I change the value of Item_I and move out of it the values of table_II are changed accordingly in block_II.
When I do the following steps:
1. Enter query (in block_I)
2. Execute query in block_I
3.change the value in Item_I and move out of the item.
4. Enter query again (upon which I am asked if I want to save the changes, I respond with NO)
5. execute query again in block_I using the same data in step 1, I get the following results:
item1 has the value it had before the change in step 3 while the block_II still retains the updated values (due to the update statement in the Post_Change trigger)
After I close the form and reopen it and run a query on the same data, I find that BOTH item_I and block_II have their original values.
This kind of behavior is confusing to the user. Any help?

You are issuing an update statement to the database in the post_change trigger? If so you are in effect disconnecting Forms from the database because Forms now is wrong in its internal representation of what has happened to the data. Unless you have very unique requirements for the coordination, just let Forms handle the master detail coordination. If you must meddle with it you will have to handle almost everything with your code so you need to duplicate what Forms does and add your stuff. Try to do it without actually update the database (if that is what you meant).

Similar Messages

  • My iTunes will ONLY backup my iPhone ONCE *SO* VERY quickly, almost as if it's done nothing... (not the three options for rollback as promised) HELP! Please Read...

    Hi there,
       thanks in advance for any help you can give me on this, but, my iTunes will perform a backup on my iPhone ONCE. By which I mean, it will do another new backup again if I want it to, and that's all fine... but it's supposed to hold (I think) THREE states of backup that the user has saved at various points in order that the user can choose and rollback/restore from whichever one they want.
    There is none of that. I get the drop-down menu if I choose to restore... but it's pointless as there's only ever one option.
    At the moment, no matter how close together I perform the backups, or how far apart... I get ONE backup saved in my iTunes.
    As far as I can tell this is also ONE backup between iCloud or the computer. i.e. I don't get one for each. Just whichever I performed most recently.
      iTunes absolutely DID NOT used to do this. I used to get the three options and it took a little bit of a wait for the backup process to go through fully.
      Can anybody help or shed some light on this?
    As a sidenote: It's slightly concerning that the backup process it performs is now lightning quick and it almost seems as if it's doing nothing, when in fact my iPhone is absolutely, irresponsibly rammed with everything... hence the worrying need for backups and solving this issue etc. etc.
      Please can anyone help me with this, or even give a little support?
    P.S. Yes, I fully anticipate being told not to have my iPhone so stuffed etc. etc. It's got about 1-2gb free and I figure you should get to use what you pay for
      Thank you so much in advance.

       I have to say, this is so weird because it's actually become this way in the past week maybe, and I'm sure me saying this here will be disputed, ridiculed and belittled, and that's absolutely fair, but I've got to say it... up until a few days ago, my iTunes sync/backup area really would keep more than one backup for my one, single iPhone. They were all timed and dated with a drop-down menu (which appeared if I clicked the restore button) to choose which one I wanted to roll back to, for example. Sure, I'd read about the three backups thing etc. etc. and perhaps I got that wrong or misunderstood, but I can honestly say, I only ever had at the most two backups, that I could drop-down and choose to restore from. They were there. Same iPhone. Different dates.
       At the time, when this seemed to be the case, the backing-up process took quite a while. I would leave it to progress while I went and made a cup of tea, come back and it still wasn't finished running. So, not really AGES, but a little while.
       Now, when I perform a backup, the progress bar almost shoots across to a finish. I'll 'fess up... that worries me most of all. I can live without the luxury of a menu of backups... but if it does it once, I'd like to be sure it does it at all.
    Much more importantly though, thank you for your replies so far.
    Any further input, even if it's to belittle or shame is totally welcome. I'd like to understand this a bit more.
    Thanks again.

  • Forcing a specific rollback segment on a transaction does not seem to work

    Hi!
    We're using Oracle 9.2.0.5.0 on Sun Solaris and we're still configured to use Rollback Segments.
    We have an issue with Snapshot too old due to RBS too small on a long query I attach below for reference:
    set heading off
    set pagesize 0
    set feedback off
    set linesize 200
    <<<<< SET TRANSACTION USE ROLLBACK SEGMENT UMF_RBS_LARGE_TRAN; <<<<<
    SELECT ucms_cards.msisdn
    || ';;' || to_char(to_date(substr(ucms_cards.notes,14+length(ucms_cards.msisdn),19),'MM-DD-YYYY.HH24-MI-SS'),'DD/MM/YYYY HH24:MI:SS')
    || ';;' || to_char(ucms_batches.expiry_date,'dd/mm/yyyy')
    || ';;' || ucms_cards.serial_no
    || ';;' || ucms_cards.serial_no
    || ';;' || ucms_cards.batch_serial_no
    || ';;' || ' '
    || ';;' || CASE ucms_cards.card_status
    WHEN 'used' THEN '1'
    ELSE '0'
    END
    || ';;' || CASE WHEN date_booked_in is null THEN '01/01/1970 00:00:00' ELSE to_char(date_booked_in,'DD/MM/YYYY') || ' 00:00:00' END
    || ';;' || ' '
    from ucms_batches,ucms_cards, UCMS_EVENT_LOG
    WHERE ucms_cards.batch_serial_no = ucms_batches.serial_no
    AND ucms_cards.serial_no = substr(UCMS_EVENT_LOG.ENTITY_ID,11,length(UCMS_EVENT_LOG.ENTITY_ID)-9)
    AND UCMS_EVENT_LOG.PARTY_NO in (0)
    AND UCMS_EVENT_LOG.TIMESTAMP>=TO_TIMESTAMP(TO_CHAR(SYSDATE-1, 'DD-MM-YYYY') || ' 00:00:01', 'DD-MM-YYYY HH24:MI:SS')
    AND UCMS_EVENT_LOG.TIMESTAMP<=TO_TIMESTAMP(TO_CHAR(SYSDATE-1, 'DD-MM-YYYY') || ' 23:59:59', 'DD-MM-YYYY HH24:MI:SS')
    AND UCMS_EVENT_LOG.USER_ID LIKE 'SCP-AGENT1%'
    AND UCMS_EVENT_LOG.EVENT_TYPE_ID IN (1,2)
    AND UCMS_EVENT_LOG.ENTITY_TYPE_ID LIKE 'ucms_cards%'
    UNION
    SELECT ucms_imported_cards.msisdn
    || ';;' || to_char(to_date(substr(ucms_imported_cards.notes,14+length(ucms_imported_cards.msisdn),19),'MM-DD-YYYY.HH24-MI-SS'),'DD/MM/YYYY H24:MI:SS')
    || ';;' || to_char(ucms_imported_cards.expiry_date,'dd/mm/yyyy')
    || ';;' || ucms_imported_cards.serial_no
    || ';;' || ucms_imported_cards.serial_no
    || ';;' || DBMS_UTILITY.GET_HASH_VALUE(ucms_imported_cards.card_type,1,65536)
    || ';;' || ' '
    || ';;' || CASE ucms_imported_cards.card_status
    WHEN 'used' THEN '1'
    ELSE '0'
    END
    || ';;' || '01/01/1970 00:00:00'
    || ';;' || ' '
    from ucms_imported_cards, UCMS_EVENT_LOG
    where ucms_imported_cards.serial_no = substr(UCMS_EVENT_LOG.ENTITY_ID,11,length(UCMS_EVENT_LOG.ENTITY_ID)-9)
    AND UCMS_EVENT_LOG.PARTY_NO in (0)
    AND UCMS_EVENT_LOG.TIMESTAMP>=TO_TIMESTAMP(TO_CHAR(SYSDATE-1, 'DD-MM-YYYY') || ' 00:00:01', 'DD-MM-YYYY HH24:MI:SS')
    AND UCMS_EVENT_LOG.TIMESTAMP<=TO_TIMESTAMP(TO_CHAR(SYSDATE-1, 'DD-MM-YYYY') || ' 23:59:59', 'DD-MM-YYYY HH24:MI:SS')
    AND UCMS_EVENT_LOG.USER_ID LIKE 'SCP-AGENT1%'
    AND UCMS_EVENT_LOG.EVENT_TYPE_ID LIKE '2%'
    AND UCMS_EVENT_LOG.ENTITY_TYPE_ID LIKE 'ucms_imported_cards%';
    As you see we forced the session to use a huge RBS created for the purpose, but strangely after a long while the query fails with a RBS too small failure due to another RBS, not the one specified.
    Is there any chance the UNION or any other component of the query is implicitly opening a new transaction with a different RBS associated?
    Any chance to force the same RBS specified explicitly?
    Thanks!
    Mike

    albertone wrote:
    but strangely after a long while the query fails with a RBS too small failure due to another RBS, not the one specified.You misunderstand snapshot too old. It can be caused by other sessions same as by your session. Assume AFTER your session issued select some other session modified one (or more) tables ucms_batches, ucms_cards, UCMS_EVENT_LOG and committed changes. By the time your select reaches to fetch rows modified by that other session rollback extents in rollback segment used by that other session were reused. You will get snapshot too old. Bottom line - all sessions modifying table(s) used by your select must use rollback segments large enough so they are not overwritten before corresponding rows are needed by your select.
    SY.

  • OSB JMS Proxy XA Transaction Rollback not occuring to queue

    Hi All
    We are dequeuing a message from JMS queue via an XA connection factory and then calling a web service. If any error occurs in the web service we catch the error handler, log and notify it and want to send this message back to the queue for retrial (The retry settings are defined at the Queue Level from weblogic console).
    Problem is rollback is not occurring, we have tried the below:
    1) There is no OSB reply with either success or failure in the error handler (This should have done the trick)
    2) We have also tried addiing an explicit Raise Error (Uncaught Error) to roll the message back, but its not working.
    This rollback is not occurring because JMS Resource is XA and web service call is NON XA, hence the entire message flow becomes NON XA. Is this understanding correct?
    How can we fix this? Please help

    Hi atheek1
    Thanks for the reply, it worked. Before I mark this question as answered, pls. answer the below queries (Thanks a lot!)
    1) Well, i just ticked transaction required and same transaction for response and it started working. I did not add routing options like you mentioned to QOS Exactly Once. Its working without it fine. So, my questions is what is the use of adding this QOS to exactly once. Is it mandatory?
    2) I have a couple of OSB services in which rollback is working automatically (XA JMS to JCA FTP Adapter) and (XA JMS to JCA DB adapter XA data source), here rollback works automatically. I dont have to tick transaction required. So my question is, when an XA based connection factory picks a message from the queue, a transaction is started at the container level. So why tick transaction required at the message flow level, when the weblogic has already initiated a transaction. Since you said that HTTP transport commits a transaction even if 500 or 404 occurs, it makes sense to tick is transaction required and same transaction for response in OSB proxy service. But the remaining scenarios work without these options. Hence will it be wise to say that these settings are only required for HTTP transport coz of the way it behaves (commits 404 and 500).
    Thanks

  • Itunes 10.1 will not install and Rollback v8.2 will not recognise my Ipod!

    Hi,
    I recently updates to itunes 10 (running nano 4th gen) and since then my computer has become a constant error message and my ipod has become a paper weight.
    Whilst installing I10 I get error messages saying could not open Key unknown\components\DA42BC89BF25F5BD0AF18C3B9B1AEE8 verify that you have sufficient access to that key.
    I searched through the support forum and did everything that was advised to confirm access etc. I tried to reinstall but got the same message again followed by "Apple application support not found" and then "the program can't start because core foundation.dll is missing from your computer".
    Again searched the message boards and tried everything suggested but with no luck.
    Ok i said to myself - I need to rollback.
    I managed to install itunes V8.2.1.6
    When i go to open it i get 2 messages come up that state "The program cant start becuase ASL.dll is missing from your computer" If i click ok on both message and then try to open itunes again it will open. PHEWWWWW.
    However, Now I cannot sync my ipod.
    Itunes will recognise it, if I try to do a restore I get the message "The ipod could not be restored, An unknown error occured (1436)"
    The only help I can find for this is to update to the latest itunes (which I cannot for tech issues).
    I have done a reset on the ipod both hard and soft but no luck.
    The support I received from apple was basically a message saying that the support they offered didn't cover these issues!!!!!!!
    Is there anything that can be done to sort this mess out or should I just consign my ipod to becoming a paper weight.
    Any and all suggestions welcome.
    Thanks in advance

    try the procedure suggested in [this|http://discussions.apple.com/thread.jspa?messageID=12581713&#12581713] thread.
    JGG

  • Why rollback is not working....

    it's 10g
    as far as I know, dbms_scheduler.create_job is not a DDL. So why this is saving insert ...
    SQL*Plus: Release 10.2.0.3.0 - Production on Sat May 10 20:58:31 2008
    Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.
    Connected to:
    Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
    With the Partitioning, OLAP and Data Mining options
    SQL> @y
    SQL> drop table junk_34;
    Table dropped.
    SQL> create table junk_34(f varchar2(10));
    Table created.
    SQL> set serveroutput on
    SQL> declare
      2   command varchar2(20000) ;
      3    job_name varchar2(200) := 'TEST';
      4   temp_name varchar2(200) := DBMS_SCHEDULER.GENERATE_JOB_NAME ;
      5  begin
      6   command := 'BEGIN null; END;';
      7   insert into junk_34 values('a_value');
      8  dbms_scheduler.create_job(
      9    job_name => temp_name,
    10    job_type => 'PLSQL_BLOCK',
    11   job_action => command,
    12    start_date => systimestamp,
    13    enabled => true);
    14  dbms_output.put_line(command);
    15  rollback;
    16  end;
    17  /
    BEGIN null; END;
    PL/SQL procedure successfully completed.
    SQL> set line 2000
    SQL> select * from junk_34;
    F
    a_value
    SQL>
    SQL>

    it wont even compile with autonomous_transaction
    Read my comments carefully. I said you should create "your own wrapper package for the dbms_scheduler that simply surrounds each call to dbms_scheduler with an autonomous transaction". I did not say "stick your code inside an anonymous pl/sql block with an autonomous transaction pragma".
    Stripped to the bare minimum, this looks about right - but since I've only spent a few minutes writing it, I'm not going to guarantee that it's doing anything other than giving you the general idea:
    create or replace package my_scheduler
    as
         procedure create_job(
              i_job_name     in     varchar2,
              i_job_type     in     varchar2,
              i_job_action     in     varchar2,
              i_start_date     in     timestamp with time zone,
              i_enabled     in     boolean
    end;
    create or replace package body my_scheduler as
    procedure create_job (
         i_job_name     in     varchar2,
         i_job_type     in     varchar2,
         i_job_action     in     varchar2,
         i_start_date     in     timestamp with time zone,
         i_enabled     in     boolean
    is
         pragma autonomous_transaction;
    begin
         dbms_scheduler.create_job(
              i_job_name,
              i_job_type,
              i_job_action,
              i_start_date,
              i_enabled
    end;
    end;
    /If you've got your privileges sorted out correctly, you should be able to create this package, then make a call to my_scheduler.create_job rather than dbms_scheduler.create_job.
    Regards
    Jonathan Lewis
    http://jonathanlewis.wordpress.com
    http://www.jlcomp.demon.co.uk

  • Adobe Photoshop Elements 9 will not install - rollback action issue?

    Im having problems installing Adobe Photoshop Elements 9.
    The problem is right at the end of installation, it says status is registering and then immediately does an action rollback.
    The message "The wizard was interrupted before Adobe Photoshop Elements 9 could be completely installed. Your system has not been modified. To complete installation at another time, please run setup again."
    I am beyond frustrated as I have tried installing even as an administrator and Im assuming there is nothing wrong with the CD just my computer being a complete pain.
    If anyone can offer some help that would be greatly appreciated.
    Holly.

    Hi Holly
    I have the same problem  with the rolling back installation. Could you tell me what Ankush advised you to do to solve it.
    Sorry to bother you but I seem to be hitting a brick wall elsewhere.
    Thank you in anticipation.
    Davemanton

  • My commit rollback is not working, can anyone tell me why please?

    Can anyone please help me figure out what is the problem with this code? it suppose to be correct but not for some unknown reason it didnt.
    Here are the code --
    * comiiit.java
    * Created on March 23, 2006, 8:38 AM
    package rib;
    import java.io.*;
    import java.net.*;
    import java.sql.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    * @author Rizal Ikhwan
    * @version
    public class comiiit extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    doPost(request,response);
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    response.setContentType("text/html");
    PrintWriter out = response.getWriter();
    Connection conn = null;
    try{
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    conn = DriverManager.getConnection("JDBC:ODBC:MyAccessSource");
    conn.setAutoCommit(false);
    Statement st = null;
    PreparedStatement stmt = null ;
    stmt = conn.prepareStatement("INSERT INTO Transaction values (?,?,?,?,?,?,?,?,?) ");
    st = conn.createStatement();
    String tType = "Ac2Db";
    String ac ="0000";
    String db ="0000";
    String acBal = "1";
    String cdBal = "0";
    String amt = "1";
    String nwacBal = "0";
    String nwcdBal ="1";
    String d = "date";
    stmt.setString(1,d);
    stmt.setString(2,ac);
    stmt.setString(3,db);
    stmt.setString(4,acBal);
    stmt.setString(5,cdBal);
    stmt.setString(6,amt);
    stmt.setString(7,nwacBal);
    stmt.setString(8,nwcdBal);
    stmt.setString(9,tType);
    stmt.executeUpdate();
    conn.commit();
    out.println("success");
    }catch (Exception e){
    try{
    conn.rollback();
    }catch(SQLException ignored){}
    out.println("Fail");
    }finally{
    //clean up conn
    try{
    if(conn !=null) conn.close();
    catch(SQLException ignored){ }
    // conn.setAutoCommit(true);
    /** Returns a short description of the servlet.
    public String getServletInfo() {
    return "Short description";
    // </editor-fold>
    //*************************

    I think the problem is that you are using a database that does not support transactions.

  • Popup content not displaying after doing a rollback using savepoint feature

    Hello everyone,
    I have a pop up window which has a taskflow embedded as a region. This taskflow has an activity which does the rolling back of changes done in the task flow using the restore save point feature.
    I have a cancel button on the pop up and it is bound to the cancel activity so that when the user clicks on the cancel button, the changes are discarded and the popup is closed(using a managed bean).
    I am able to discard the changes using this feature.
    My problem is when I try to invoke the same popup in the same session, only a very small panel window appears and nothing else.
    This happens only if I do the rollback feature. Just closing the pop up without any changes and reopening works.
    I tried several ways and can't find a solution to this problem. Can any one help ?
    thanks
    AC
    Edited by: user723140 on Nov 25, 2008 1:27 PM

    Hi,
    restore to savepoints happens when you exit the bounded taskflow with a return. So in your case you are actually closing the taskflow, which is not what you should do in a region. This is why it comes up empty. What you can try is to
    - set the popup loading to lazyUncached
    - set the refresh on the region container to ifNeeded
    - set the refresh condition to some value reference that changes with each call to region (e.g. a managed bean that returns the time in ms)
    Not sure if this will re-create the taskflow, but chances are that it does
    Frank

  • Attribute binding value not refreshed after transaction rollback

    Hi,
    Using ADF Faces/Trinidad + ADF Data Bindings + ADF Business Components.
    I was experimenting with task flows vs transaction control vs form validation and met the following problem.
    First, here's a little intro to my application design. A page template defines the layout. There's only one page in the application using a dynamic region to show a dynamic task flow. The template defines a menu containing navigation items; each item action changes the current dynamic task flow id.
    One of the flow starts with a data bound table listing users. Each row has an edit button to navigate to an edit form. The edit form is in a separate task flow as I want the automatic rollback triggered when a flow is abandoned.
    The problem occurs when I quit the form clicking a menu item AFTER a validation error occurred. Transaction is rollbacked as expected, however when I go back to the form (whatever row I choose), the invalid value that failed the previous validation is shown.
    It seems the attribute binding is not refreshed. To validate this hypothesis, I added a button that explicitly calls refreshControl on the attribute binding as shown below. When the button is clicked, the form shows the correct value.
        // In a managed bean
        public void refreshFirstName(ActionEvent evt)
            getBindingContainer().findCtrlBinding("FirstName").refreshControl();
        }I working on a possible workaround, but I've not succeeded yet. I'm looking into using the finalizer of the task flow (or possibly the initializer) to force a refresh of the control bindings.
    Any ideas?
    Thanx!
    Olivier

    Hi,
    I am experiencing similar strange behaviour, it sounds like it could be related, i am not using task flows though.
    I have a read only table, and when a user double-clicks on a row an af:popup is displayed which displays an edit form (contentDelivery is set to "lazyUncached" in the popup). Pressing the cancel button on the edit form executes a rollback and hides the popup. However, after this has occurred, whenever another row (or the same row) is selected in the read only table, the edit form will display data from the old record that was rolled back. I've noticed that the old data is only displayed in editable fields, while the correct data is displayed in read-only fields. I'm pretty sure the rollback works properly, and the iterator is on the correct row, just it is displaying incorrect data in the editable text fields. I've tried implementing cancel functionality with both a rollback action and refreshing the row using REFRESH_WITH_DB_FORGET_CHANGES, but the same issue exists regardless of which method is used. I've also noticed that the application starts behaving correctly again if the commit button is pressed.
    Has anyone come up with a workaround for this issue?
    By the way, is there any way we can keep track of the bug numbers that are mentioned in this forum?
    Thanks,
    Michael.

  • Rollback segment number not shown with name " not shown " too small

    Hi,
    we have a table TABLE1 with a BLOB field FIELD1 on a Oracle 10g database. Today we found out that there is one record in that table that make problems. if we try to read the BLOB data from that record, Oracle shows the error:
    ORA-01555: snapshot too old: rollback segment number  with name "" too small
    The strange thing about it, that the message shows neither the segment number nor the segment's name. Like it has lost the reference to it.
    Could you help please.
    Notes:
    The TABLE1 and the BLOB data are really not big.
    The UNDO tablespace is 2Gb big and just 1% used.
    Thank you very much
    Igor

    Out-of-row LOB undo is maintained in the LOB segment. So the UNDO tablespace and undo retention is not associated with most LOB ORA-1555 issues. Instead the LOB column is created using either PCT_VERSION or RETENTION to manage how much space within blocks or time transpires before the LOB undo is overwritten. In environments with high updates, deletes on rows including LOBs, the chances of ORA-1555 on LOB undo is very high.
    Source:http://blogs.oracle.com/db/entry/troubleshooting_ora_1555
    In the above link you will get plenty of good metalink notes to understand and solve the issue.
    There is no undo segment name in the error message means this error has no relation with undo tablespace/parameter/segment. This might mean that your LOB table is corrupted. Can you drop and recreate/re-populate this table and try again ?
    Srini Chavali     @ Another "snapshot too old: rollback segment number  with name "" too small"
    Regards
    Girish Sharma

  • Why Oracle does not allow rollback of  DDL statements?

    I have always been surprised why Oracle does a implicit commit when DDL statements (e.g create table …) are executed. DDL statements simply write information (insert, delete and update) to data dictionary, so why DDL statement cannot be rolled back. Am I missing some thing?
    I was learning SQL Server few months ago and I noticed that SQL Server does allow rollback of DDL statements if I am not mistaken. It lloks like there is something in Oracle architecture which prevents rollback of DDL satements. Rollback of all staements should be allowed not just of DML statements.
    Appercaite your insight.

    If you drop a 500 million row table (and let's assume you're not using the Recycle Bin, which is a different matter entirely), how do you propose to re-insert all 500 million rows if you were to be allowed to rollback the drop command? Same thing goes for a truncate command.
    I'm not saying there aren't workarounds (the Recycle Bin is precisely one of those), but it's certainly problematic. You could very well reverse the transaction ('delete from TAB$...') quite easily... but reversing the other consequences of that transaction is a lot more awkward. Therefore, it is certainly logical to declare such transactions irreversible and thus to imply a commit, both before and after.
    Or take it from another philosophical angle: a transaction that doesn't commit (or rollback) takes exclusive row-level locks that are held indefinitely and which will prevent other people from doing DML on the same rows, yes? Well, how do you fancy having an 'alter table' statement sitting around, uncommitted, in the data dictionary? Some process (or your users) are wanting to insert rows into this table, but the uncommitted alter command means that they can't acquire the shared table lock they need in order to be able to do so. One uncommitted DDL can seriously gum up the works, in short.
    Dictionary tables are not like ordinary user tables, because whilst what I do in INVOICES very likely has no impact on what you do in SALARIES, what I propose to do in TAB$ very definitely impacts what you might need to do in TAB$. Under those circumstances, it's a jolly good thing that Data Dictionary DDL doesn't leave a trail of uncommitted transactions hanging around! And the mechanism to achieve that 'good thing' (i.e., auto-committing) means such transactions must be immediately irreversible.
    Fair enough if other databases have chosen to handle things differently: their prerogative, of course. My point is simply that there is logic in NOT being able to roll back DDL statements, too, and it's a legitimate choice to have made to handle things in this way, too.

  • Operation Connection.rollback is not allowed during a global transaction.

    Hi
    I am getting the following exception when i try to deploy my application in the server. Is any body got the same error. please help me to solve this problem.
    com.ibm.mm.beans.CMBException: DSRA9350E: Operation Connection.rollback is not allowed during a global transaction.
    java.sql.SQLException: DSRA9350E: Operation Connection.rollback is not allowed during a global transaction.
         at com.ibm.ws.rsadapter.jdbc.WSJdbcConnection.rollback(WSJdbcConnection.java:2270)
         at com.ibm.mm.sdk.internal.sql.PConnectionICM.rollback(PConnectionICM.java:230)
         at com.ibm.mm.sdk.server.DKDatastoreICM.connect(DKDatastoreICM.java:3273)
         at com.ibm.mm.beans.CMBConnection.connect(CMBConnection.java:1685)
    Thanks.

    Are you using an XA driver for two-phase commit?
    %

  • Tx does not rollback in stateless ession bean

    I implemented three methods to test transaction functionality in stateless session bean. The methodA() execute an UPDATE sql command on database, the methodB() excute an INSERT sql command on database, and the methodC() just calls the methodA() and then calls the methodB().
    A test client is wrote to call methodC(), and an sql exception "java.sql.SQLException: Unique constraint (informix.pk_id) violated" is generated in methodB(). At this time, the UPDATE command in methodA() should be rollback, but it does not.
    The following are my environments:
    AP Sevrer = WLS6.1 (download)
    DB = Informix
    JDBC Driver = com.informix.jdbc.IfxDriver
    JDBCTxDataSource is set with JNDI_Name tx_datasource in config.xml
    Datasource is lookup from tx_datasource in session bean's ejbCreate() method
    The methodA(), methodB(), and methodC() are all declared as TX_REQUIRED via the deploy descriptor to support transaction.
    Can anyone help me to dig the bugs in the configuration or in the java codes that cause the transaction rollback fail?

    Hi Wen-Hung,
    To roll back a transaction by throwing an exception,
    the exception should be of Runtime type, like
    EJBException. Application exceptions like SQLException
    don't rollback TX. So you either need to throw runtime
    exception or catch application exception, call setRollbackOnly()
    on bean's context and re-throw the exception.
    Regards,
    Slava Imeshev
    "Wen-Hung Yeh" <[email protected]> wrote in message
    news:3cd8ae44$[email protected]..
    I implemented three methods to test transaction functionality in statelesssession bean. The methodA() execute an UPDATE sql command on database, the
    methodB() excute an INSERT sql command on database, and the methodC() just
    calls the methodA() and then calls the methodB().
    >
    A test client is wrote to call methodC(), and an sql exception"java.sql.SQLException: Unique constraint (informix.pk_id) violated" is
    generated in methodB(). At this time, the UPDATE command in methodA() should
    be rollback, but it does not.
    >
    The following are my environments:
    AP Sevrer = WLS6.1 (download)
    DB = Informix
    JDBC Driver = com.informix.jdbc.IfxDriver
    JDBCTxDataSource is set with JNDI_Name tx_datasource in config.xml
    Datasource is lookup from tx_datasource in session bean's ejbCreate()method
    The methodA(), methodB(), and methodC() are all declared as TX_REQUIREDvia the deploy descriptor to support transaction.
    >
    Can anyone help me to dig the bugs in the configuration or in the javacodes that cause the transaction rollback fail?
    >
    >

  • Rollback is not working when "The server threw an exception" error

    Hi
    These are my transaction steps
    1) Call the StartTransaction method of the company object (Function AA)
    2) Add  Goods Issue (Rollback if error occurs) (Function BB)
    3) Create record with oRecordSet object (Rollback if error occurs) (Function BB)
    4) Add Journal Entry (Rollback if error occurs) (Function CC)
    5) Add Goods Receipt (Rollback if error occurs) (Function DD)
    6) Create record with oRecordSet object (Rollback if error occurs) (Function DD)
    7) Call EndTransaction (with commit) to complete the whole process (Function AA)
    These are working fine usually.
    But problem is when user has "The server threw exception" error message.
    Whole transaction must be rollback but still step 2 and 3 records are exist on DB.
    Rollback is working fine with another error messages.
    I programmed call Rollback transaction if calling function has any error.
    Function BB, CC and DD are calling from Function AA.
    I never have "The server threw an exception" error on my development machine with B1 2005 PL 51.
    This is happened only  LIVE server with B1 2005 PL 51.
    B1 was upgraded from PL29 to PL51 recently becaseu of Locking issue.
    Then Locking issue was solved but have "The server threw an exception" error and rollback is not working properly.
    I hope someone can help me!!!!.
    Thank you
    2) & 3) steps

    Hi Joanne,
    There are 2 things to check here.
    1. is the Transaction
    2. is the RPC_E_SERVERFAULT.
    for the first one,
    in step 2, just before you add the Good Issue, can you try to check first if you are still in a transaction ?
    Just to make sure.
    If it is, maybe you should open a ticket to SAP support.
    BTW, Which version is your Live environment ?
    for the second one,
    try to search the error in this forum. there is a lot of posting about this.
    The problem might also go away if you upgraded your SBO.
    Please search and see if there is anything the same with your problem.
    Regards
    Edy

  • ROLLBACK segments are not deallocated

    Hi,
    on 8i, Win 2003 the Roll back tablespace is not deallocated and enlarge since it is in Autoextend.
    1-How can we see which query or application occupies RollBack segment ?
    2-How to see why it is not deallocated ?
    Many thanks before.

    1 You need to look at v$transaction. V$session points to v$transaction by means of the column taddr.
    2 extents of rollback segments are not allocated ever, by design. Deallocating an extent is costly, also it increases the chance you run into ora-1555.
    IIRC 8i is desupported for quite some time, and not certified on Win2003.
    Sybrand Bakker
    Senior Oracle DBA

Maybe you are looking for

  • Error when trying to display a Webi report through the Folder iView

    Hi all I am getting the following error when Im trying to display a Webi report through the SAP Portal. We have installed the SAP Integration Kit and are able to see the content of the Infoview. However when we click on a Webi report, we receive the

  • Restoring an iWeb Site from idisc

    Hello, after a system crash I lost the website I created with I-web; now it seems that all the files have benn saved in my Idisk but I cannot figure out how to tell I-Web, to use those sites. I also thought about copying them back to my MAC, but I ha

  • How do i find what my OS is?

    where do i go to see what my current operating system is?

  • SAP Gui - no ABAP documentation appearing

    Hi, Im facing problem with my SAP GUI. Im not able to see documentation. When I see 'F1' help for any object, a blank window appears. Also in SE80 (Object Navigator), the areaa where we can enter objects is coming as blank. Im not able to enter objec

  • Oracle Extensions Examples & WebLogic Server

    I've run the oracle extensions examples with weblogic server and cannot get the string representation for the addresses, as indicated in the examples documentation. I get a hexadecimal representation. I'm running structs, refs and arrays business obj