Rollback / savepoint Issue

Hi,
I'm a little confused on how the rollback to savepoint works in the database.
A transaction statement such as Rollback fires an internal commit. Does the command :
Rollback to savepoint <savepoint name> also issues an implicit commit?
I did the following which caused all the confusion:
SQL>commit;
SQL> insert into table_name values ('sdf',23,...);
SQL> 1 Row isnerted
SQL> insert into table_name values ('sdf',23,...);
SQL> 1 Row isnerted
SQL> insert into table_name values ('sdf',23,...);
SQL> 1 Row inserted
SQL> Savepoint A;
SQL> Savepoint created
SQL> insert into table_name values ('sdf',23,...);
SQL> 1 Row inserted
SQL> insert into table_name values ('sdf',23,...);
SQL> 1 Row inserted
SQL> insert into table_name values ('sdf',23,...);
SQL> 1 Row inserted
SQL> Savepoint B;
SQL> Savepoint created
SQL> insert into table_name values ('sdf',23,...);
SQL> 1 Row inserted
SQL> insert into table_name values ('sdf',23,...);
SQL> 1 Row inserted
SQL> insert into table_name values ('sdf',23,...);
SQL> 1 Row inserted
SQL> Savepoint C;
SQL> Savepoint created
Now if we do a :
SQL> Rollback to Savepoint B;
SQL> Rollback completed
Would an implicit commit be fired after this statement which would erase all marked savepoints ?
Because it was possible to do a :
SQL> Rollback to Savepoint A
SQL> Rollback Completed

hi,
Rollback doesn't implicitly commit anything.
commit means sth different than rollback.
When commit,
All transactions get saved in the database,
Log maintained
All locks released
etc...In Rollback to savepoint,
Related transaction rollbacked but previous one are still in pending not commited
related locked released , not all locks which is occured due to previous one.
etc...hv a nice day,
Rup

Similar Messages

  • Savepoint issue

    create table test (num NUMBER);
    insert into test values(1);
    insert into test values(9);
    savepoint a;
    insert into test values(7);
    update test set num=100 where num=9;
    savepoint b;
    delete from test where num=1;
    commit;
    delete from test where num=1;I am getting an error when i issue
    rollback to savepoint a;
    error
    SQL Error: ORA-01086: savepoint 'A' never established
    01086. 00000 -  "savepoint '%s' never established"
    CORRECTED THE ERROR CODE
    Edited by: Rahul India on Feb 19, 2013 2:39 PM

    Hi,
    See below which I executed in my database (11.2)
    You are getting the error because you are using ROLLBACK TO <Savepoint_Name> after executing the COMMIT. After commiting savepoints which were created previously will not exist.
    SQL> create table test (num NUMBER);
    Table created
    SQL> insert into test values(1);
    1 row inserted
    SQL> insert into test values(9);
    1 row inserted
    SQL>  savepoint a;
    Savepoint created
    SQL> insert into test values(7);
    1 row inserted
    SQL>  update test set num=100 where num=9;
    1 row updated
    SQL>  savepoint b;
    Savepoint created
    SQL> delete from test where num=1;
    1 row deleted
    SQL> commit;
    Commit complete
    SQL> delete from test where num=1;
    0 rows deleted
    SQL> rollback to savepoint a;
    rollback to savepoint a
    ORA-01086: savepoint 'A' never established in this session or is invalid
    SQL> If I remove COMMIT then SAVEPOINT will exist
    SQL>  insert into test values(1);
    1 row inserted
    SQL>  insert into test values(9);
    1 row inserted
    SQL>   savepoint a;
    Savepoint created
    SQL>  insert into test values(7);
    1 row inserted
    SQL>   update test set num=100 where num=9;
    1 row updated
    SQL>   savepoint b;
    Savepoint created
    SQL>  delete from test where num=1;
    1 row deleted
    SQL>  delete from test where num=1;
    0 rows deleted
    SQL>  rollback to savepoint a;
    Rollback complete
    SQL> Edited by: Suri on Feb 19, 2013 2:40 PM

  • Rollback segment issue

    while running my script i am getting following error. My script is doing lakhs and lakhs of transactions
    ORA-01562: failed to extend rollback segment number 3
    ORA-01628: max # extents (99) reached for rollback segment DACSCANRBS_2
    How to overcome this?

    Can you post your script? The best option is to ask your DBAs to give you a large rollback segment to use to overcome this issue. However, if you are doing lots of different updates without any commits, you may be able to split the script into several transactions.

  • Adobe Photoshop Elements 10 will not install - rollback action issue because of PSE 10  organizer is not installing

    i have photoshop elemnts 10 and i want ti install it> when i start installing it, ever thing go good, but when it start to install Photoshop element10  organizer it stop, then rollback and remove everything? plzzzzzzzzzzzzzz hlep

    I have already moved the discussion to 'Elements Forum'.
    -Pragya

  • 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

  • Problems installing Adobe Photoshop Elements 9 - 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 have also created a new administrator account and after rebooting tried to install it but with the same result. It appears to get to the end of the program install but falls over just before the Organiser install. There are no error messages. AV and surplus programs have been stopped. Desktop clean up run.  XP machine well within required spec.
    Any help would be greatly appreciated.
    Thanks
    Dave

    Hi
    Thanks for your reply. Antivirus and security software all turned off. I have tried all the solutions in the troubleshoot section but still having the same problem.
    Much obliged
    Dave

  • Rollback segment issue in oracle8i

    We are having 33GB size of Rollback segment , it is not coming down even after when the database get bounced.
    Even the transactions are not happening also it is showing same value and it is not coming down.
    My question is after transaction get over whether rollback segment is deallocated or not?
    Please explain in detail , how to deallocate those unused rollback segments.

    we dont have any distributed transactions.
    can u tell me is there any formula to set OPTIMAL value for roll back segments.
    please tell me the dependencies,
    & i have some more quries....
    1. If we shrink the rollback segment, will it grow later on when the transactions are going high???
    2.If we shrink through OEM, automatically oracle is shrinking that perticular RBS.
    here my doubt is on which basis Oracle is shrinking that RBS.
    Please give info,, in detail...

  • Custom report issues

    I'm creating an extension and have run into a problem. I set up a metric and got the extension working but, when I try to add a report, it errors off when I deploy it. It give the following error:
    Internal error occurred while deploying the report definitions. Make sure that this Management Plug-in is valid. Consult the OMS log file(s) for more details.
    When I look in my emoms.trc file, I see the following error:
    2008-12-22 11:32:15,786 [Thread-73] ERROR em.emx deploy.203 - ORA-06550: line 1, column 6:
    PLS-00103: Encountered the symbol "" when expecting one of the following:
    begin case declare exit for goto if loop mod null pragma
    raise return select update while with <an identifier>
    <a double-quoted delimited-identifier> <a bind variable> <<
    close current delete fetch lock insert open rollback
    savepoint set sql execute commit forall merge
    <a single-quoted SQL string> pipe
    <an alternatively-quoted SQL string>
    Line 1, column 6 is right after the first BEGIN which, of course, is followed by a DECLARE so I should not be getting that error. Just to make sure, I executed the report.sql file directly in SQL*Plus and it ran just fine.
    Is there an issue that I'm missing?
    EDIT: I'm running the emcli program on Windows 2003 using Grid version 10.2.0.3.
    Edited by: user8178354 on Dec 22, 2008 11:15 AM

    As it's only 108 lines, here's the whole thing:
    BEGIN
    DECLARE
    l_target_types MGMT_IP_TARGET_TYPES;
    l_param_values MGMT_IP_PARAM_VALUE_LIST;
    l_target_type MGMT_IP_TARGET_TYPES;
    l_report_guid RAW(16);
    l_element_guid RAW(16);
    l_report_title_nlsid VARCHAR2(128);
    l_report_owner VARCHAR(100);
    l_curr_order NUMBER;
    l_curr_row NUMBER;
    BEGIN
    -- specify the target type associated with this report
    -- in this case the target type is 'mccd_test'
    l_target_type := MGMT_IP_TARGET_TYPES();
    l_target_type.extend(1);
    l_target_type(1) := 'mccd_test';
    l_report_title_nlsid := 'Transaction Response Time';
    l_report_owner := mgmt_user.get_repository_owner;
    -- create a report definition for the report
    l_report_guid := mgmt_ip.create_report_definition (
    p_title_nlsid => l_report_title_nlsid,
    p_description_nlsid => 'Transaction Response Time Table',
    p_owner => l_report_owner,
    p_category_nlsid => 'MCCD Test Reports',
    p_sub_category_nlsid => 'Performance Data',
    p_late_binding_target_types => l_target_type,
    p_show_table_of_contents => 0,
    p_system_report => 1,
    p_component_name => l_target_type(1)
    -- Add report so that it shows up under "reports" tab in default home page
    mgmt_mp_homepage.add_report (
    p_target_type => l_target_type(1),
    p_report_title => l_report_title_nlsid,
    p_report_owner => l_report_owner,
    p_report_order => 1
    -- create the first element in the report
    -- it will be a text element with a description of the report contents
    -- set the parameters for the styled text element
    -- we?ll provide a message and a display style
    l_param_values := MGMT_IP_PARAM_VALUE_LIST();
    l_param_values.extend(2);
    l_param_values(1) := MGMT_IP_PARAM_VALUE_RECORD(
    'oracle.sysman.eml.ip.render.elem.TextParamBean.textMessage',
    'MCCD Test Report');
    l_param_values(2) := MGMT_IP_PARAM_VALUE_RECORD(
    'oracle.sysman.eml.ip.render.elem.TextParamBean.textStyle',
    'Transaction Response Time');
    -- initialize the sequencing variables
    -- l_curr_order should sequentially increase from 1 to the number of elements in
    -- the report
    -- l_curr_row indicates the row on which to display an element
    l_curr_order := 1;
    l_curr_row := 1;
    l_element_guid := mgmt_ip.add_element_to_report_def (
    p_report_guid => l_report_guid,
    p_element_name_nlsid => 'IPMSG_STYLED_TEXT',
    p_element_type_nlsid => 'IPMSG_ANY_TARGET_TYPE',
    p_header_nlslid => null,
    p_element_order => l_curr_order,
    p_element_row => l_curr_row,
    p_parameters => l_param_values,
    p_targets => null
    -- the second element in the report is a table listing the transaction response
    -- time for various metrics
    l_param_values := MGMT_IP_PARAM_VALUE_LIST();
    l_param_values.extend(1);
    l_param_values(1) := MGMT_IP_PARAM_VALUE_RECORD(
    'oracle.sysman.eml.ip.render.elem.sqlStatement',
    'SELECT mx.key_value "Metric", mx.value "Max", mn.value "Min", av.value "Avg"
    FROM
    (SELECT key_value, value
    FROM mgmt$metric_current
    WHERE metric_name = ''Transaction Response Time''
    AND metric_column = ''Maximum Value''
    AND target_guid = ??EMIP_BIND_TARGET_GUID??) mx,
    (SELECT key_value, value
    FROM mgmt$metric_current
    WHERE metric_name = ''Transaction Response Time''
    AND metric_column = ''Minimum Value''
    AND target_guid = ??EMIP_BIND_TARGET_GUID??) mn,
    (SELECT key_value, value
    FROM mgmt$metric_current
    WHERE metric_name = ''Transaction Response Time''
    AND metric_column = ''Average Value''
    AND target_guid = ??EMIP_BIND_TARGET_GUID??) av
    WHERE mx.key_value = mn.key_value
    AND mn.key_value = av.key_value'
    l_curr_order := l_curr_order + 1;
    l_curr_row := l_curr_row + 1;
    l_element_guid := mgmt_ip.add_element_to_report_def (
    p_report_guid => l_report_guid,
    p_element_name_nlsid => 'IPMSG_USER_TABLE_FROM_SQL',
    p_element_type_nlsid => 'IPMSG_ANY_TARGET_TYPE',
    p_header_nlslid => 'Transaction Response Time',
    p_element_order => l_curr_order,
    p_element_row => l_curr_row,
    p_parameters => l_param_values ,
    p_targets => null
    END;
    END;

  • Can't see the issue in code...please help

    I have this procedure within a package. Trying to compile and can't...get errors and I can't see why...any help???
    PROCEDURE KILL_ORPH_2PHASE_COMMITS (inLocal_tran_id IN varchar2) is
      tsql            VARCHAR2(256);
      v_local_tran_id varchar2(22 byte);
    BEGIN
    IF inLocal_tran_id is not null then
        tsql := 'ROLLBACK FORCE ''' || inLocal_tran_id || '''';
        dbms_output.put_line(tsql);
        EXECUTE IMMEDIATE tsql;
        RETURN;
    END IF;
        --open cursor
        open cur_2pc;
        loop
          --fetch cursor data
          fetch cur_2pc
            into v_local_tran_id;
          exit when cur_2pc%NOTFOUND;
          tsql := 'ROLLBACK FORCE ''' || v_local_tran_id || '''';
          dbms_output.put_line(tsql);
          EXECUTE IMMEDIATE tsql;
    EXCEPTION
      WHEN OTHERS
        THEN
          dbms_transaction.purge_lost_db_entry('''' || v_local_tran_id || '''');
    END;
    END LOOP;
    CLOSE cur_2pc;
    END KILL_ORPH_2PHASE_COMMITS;Error is:
    Compilation errors for PACKAGE BODY ADMIN.ADMIN_DBA_MAIN
    Error: PLS-00103: Encountered the symbol "EXCEPTION" when expecting one of the following:
    ( begin case declare end exit for goto if loop mod null
    pragma raise return select update while with <an identifier>
    <a double-quoted delimited-identifier> <a bind variable> <<
    continue close current delete fetch lock insert open rollback
    savepoint set sql execute commit forall merge pipe purge
    Line: 40
    Text: EXCEPTION
    Error: PLS-00103: Encountered the symbol "LOOP" when expecting one of the following:
    Line: 45
    Text: END LOOP;

    The BEGIN and END are not matching..??
    From your code, it looks like...you want each statement in your loop to have it's own begin..exception..end..
    BEGIN
    IF inLocal_tran_id is not null then
        tsql := 'ROLLBACK FORCE ''' || inLocal_tran_id || '''';
        dbms_output.put_line(tsql);
        EXECUTE IMMEDIATE tsql;
        RETURN;
    END IF;
        --open cursor
        open cur_2pc;
        loop
       BEGIN----------<<<<<<<<Begin for each iteration to have it's own loop...
       ------------>>>(this is for each statement in the loop...)
         --fetch cursor data
          fetch cur_2pc
            into v_local_tran_id;
          exit when cur_2pc%NOTFOUND;
          tsql := 'ROLLBACK FORCE ''' || v_local_tran_id || '''';
          dbms_output.put_line(tsql);
          EXECUTE IMMEDIATE tsql;
    EXCEPTION
      WHEN OTHERS
        THEN
          dbms_transaction.purge_lost_db_entry('''' || v_local_tran_id || '''');
    END;
    END LOOP;
    END KILL_ORPH_2PHASE_COMMITS; ----<<<Another End for the procedure....>>>

  • Rollback in Master-Detail form - SOLVED

    Hellou.
    I have 2 blocks Mater-Detail relation. I execute query and make some changes in Items from block 1 and some changes in items in block 2.There are althoug some POSTs. I have Button "Change Back" and i need to use this button to rollback all changes i have made (All post will be rollbacked). But it always rollback me only DETAIL block items, but MASTER block items didn't rollback.
    I use Forms_ddl('rollback')
    Althoug I change Session_mode to OFF and perform FULL rollback. But always the same. Master block NO ROLLBACK.
    Some ideas???
    Message was edited by:
    zoffob

    I want rollback and continue in query.I guess I don't understand what you are trying to do. Do you simply want to be at the same record when a rollback is issued? If so, this can still be accomplished using CLEAR_FORM() built-in. You simply need to capture the pertinent data so you can return to this record after the Form has been re-queried. For example, the user in on record number 75 when they decide they need to rollback the changes. In your Button trigger, you will need to capture that a rollback was performed and store the current record in a parameter or global variable. When the form is re-queried, check to see if a rollback was done and if so use the GO_BLOCK(), GO_ITEM(), and GO_RECORD() built-ins to return the user to the record they were on when they clicked on the Rollback button.
    For Example:
    When-Button-Pressed trigger
    BEGIN
       /**I prefer to use Forms Parameters to capture Forms unique global variables because
          these values only apply to the current form and shouldn't be visible to other Forms
          in the same session. **/
       :parameter.rollback_issued := 'Y';
       :parameter.current_block := :system.current_block;
       :parameter.current_item := :system.current_item;
       :parameter.current_record := :system.current_record;
       /**If you modified the Data Block's Default Where clause you will want to capture this
           information also. **/
       :parameter.curr_blk_def_where := get_block_property(:system.current_block,DEFAULT_WHERE);
       CLEAR_FORM(NO_COMMIT,FULL_ROLLBACK);
    END;Now, in your When-New-Form-Instance or When-New-Block-Instance trigger do something like:
    BEGIN
       IF (:parameter.rollback_issued = 'Y') THEN
          :parameter.rollback_issued := 'N';
          set_block_property(:parameter.current_block,DEFAULT_WHERE,:parameter.curr_blk_def_where);
          GO_BLOCK(:parameter.current_block);
          EXECUTE_QUERY;
          GO_ITEM(:parameter.current_item);
          GO_RECORD(:parameter.current_record);
       ELSE
          /** Do what you would normally do here.  **/
       END IF;
    END;If this is not what you are trying to achieve, please post what you are trying to achieve and why the CLEAR_FORM() method wont work and we'll see if we can help you find a way to achieve what you are trying to do.
    Hope this helps.
    Craig...

  • ADF UIX cancel/rollback button?

    Hi
    We're having a fair amount of trouble implementing a "cancel" button in our ADF UIX application (JDev 10.1.2). Apologies to those who read this same post on the ODTUG mailing list..... I'm hunting for even a hint of an answer before I approach Oracle Support.
    To set the scene, we have a parent VO "Departments" with child VOs "Dispatch" and "Agency". Dispatch also has a FK to Agency.
    We have a UIX view-screen that displays in a master-detail relationship Departments and Dispatch. From this screen the user can select the edit button, which navigates to an input-form screen to edit the currently selected Dispatch record.
    The Dispatch record has effective_from and effective_to dates. The underlying EO has a MethodValidator that ensures the from date <= the to date.
    On the edit screen we currently provide 2 buttons, Ok and Cancel. The Ok submitButton is bound to the commit binding, and navigates back to the view page via a struts link on completion.
    If the user selects the ok button and MethodValidator returns an error, the edit page's MessageBox displays the error and the user remains at the edit page until they resolve the issue.
    Our problems start with the cancel button.
    Originally we implemented the Cancel button as a simply "button" that navigated back to the view page. This worked well as the changes are never submitted, and on returning to the view page the record is presented in it's original state before being edited, thus the user's changes have been "cancelled".
    However if the user was editing an existing record, entered invalid dates that violated the MethodValidator, clicked ok and saw the MethodValidator error, then clicked cancel, on returning to the view page, any changes to the underlying record are visible including the invalid dates. I believe this occurs because the record has been submitted to the mid-tier by the ok button, and as such the changes now lies in the mid-tier.
    Given that a cancel "button" which simply navigates back to the view page is not a viable solution, we decided to investigate using a rollback button on our edit page, which then navigated back to the view page.
    There is a nasty side affect in using the rollback functionality, and has been a continuous frustration mentioned on OTN. When rollback is issued, it appears all iterators in the running application have their current row reset to the first element.
    This is a pain as in our example this results in not only the Dispatch iterator being reset to the first element, but also the parent Departments iterator, and presumably all other iterators in the application too. This would be an extreme annoyance to the user in every time they selected cancel, they would then need to navigate back to the correct Departments and Dispatch record if they wanted to make a different change.
    As such it is necessary to write some code to store the iterator positions before issuing the rollback, rolling-back, then restoring the iterator positions from the saved states.
    Luckily we found some code on OTN to do this:
    ADF - cancel button not working in input form(add new row)?
    This mechanism appeared to work, but, then, we did find one problem.
    I described at the beginning that our Dispatch VO is not only related to Departments but also Agency. To cater for this in our edit screen by including a LOV bound <messageList>, which displayed the relating Agencies for the user to select from.
    In using the pinched OTN rollback code, in the same scenario as previously, when the user edits a record, invalidates the MethodValidator after clicking ok, then clicks cancel, on returning to the view page, the field in Dispatch that represents the Agency is incorrectly showing a numeric result such as 0, 1, 2 etc. We realised that the value being shown is the previous edit screen's <messageList> internal index number representing the value selected in the list, and not the actual value itself.
    We're note sure why the OTN rollback code is causing this to occur. Though it restores the Agency iterator's position, it shouldn't result in the <messageList> index being written to the underlying Dispatch agency field, but rather the value the <messageList> index represents.
    It appears to me we're caught between a "rock and a hard-place" here. The simple solution of using a cancel "button" doesn't work when errors are raised. The complex case of using a "rollback" button doesn't work due to the problem with the <messageLists>.
    My research on OTN shows the "cancel vs rollback" button is a common frustration. Can somebody help me in providing a satisfactory "cancel" button that I can use throughout my app please?
    Many thanks in advance.
    Chris Muir

    The stack:
    Class                     Method
    UsrEcvAmpdsViewRowImpl    setAgency
    UsrEcvAmpdsViewRowImpl    setAttrInvokeAccessor
    ViewRowImpl               setAttribute
    DCDataControl             setAttributeInRow
    DCJboDataControl          setAttributeInRow
    JUCtrlValueBinding        setAttributeInRow
    JUCtrlValueBinding        setInputValue
    JUCtrlValueBinding        setInputValue
    InitModelListener         _setInputValue
    InitModelListener         _doModelUpdate
    InitModelListener         eventStarted
    AbstractPageBroker        _fireUIXRequestEvent
    AbstractPageBroker        handleRequest
    BaseUIPageBroker          handleRequest
    PageBrokerHandler         handleRequest
    UIXServlet                doGet
    HttpServlet               service
    HttpServlet               service
    ResourceFilterChain       doFilter
    JAZNFilter                doFilter
    ServletRequestDispatcher  invoke
    ServletRequestDispatcher  forwardInternal
    ServletRequestDispatcher  forward
    RequestProcessor          doForward
    RequestProcessor          processForwardConfig
    RequestProcessor          process
    ActionServlet             process
    ActionServlet             doGet
    HttpServlet               service
    HttpServlet               service
    ResourceFilterChain       doFilter
    JAZNFilter                doFilter
    ServletRequestDispatcher  invoke
    ServletRequestDispatcher  forwardInternal
    ServletRequestDispatcher  forward
    RequestProcessor          doForward
    RequestProcessor          processForwardConfig
    RequestProcessor          process
    ActionServlet             process
    ActionServlet             doGet
    HttpServlet               service
    HttpServlet               service
    ResourceFilterChain       doFilter
    JAZNFilter                doFilter
    EvermindFilterChain       doFilter
    ADFBindingFilter          doFilter
    ServletRequestDispatcher  invoke
    ServletRequestDispatcher  forwardInternal
    HttpRequestHandler        processRequest
    HttpRequestHandler        run
    HttpRequestHandler        run
    ReleasableResourcePooledExecutor$MyWorker run
    Thread  runAt a wild guess, InitModelListener is causing the issue, because it's the first place where we can see a setInputValue occuring?
    To make this official I've raised a TAR (4613003.992) with Oracle Support with a cut down version of our app to work through the issue.

  • ORA-01581: attempt to use rollback segment...

    We've started getting "ORA-01581: attempt to use rollback segment (31) new extent (3) which is being allocated" messages in our production database over the last couple of days. Of course, each time we get these the rollback segment number is different, and we are getting these randomly from different applications that connect to the same database. We are using automatic undo management, so the rollback segments are not really under our control. The action in the Oracle docs for this error message doesn't give any specific actions that we should take, but we continue to get these.
    We started to get these about the same time as we ran out of available sessions on the database (sessions = 1500 and we had 1500 open sessions). Could these be related? Could there be some open session that may be causing the rollback segment issue? Would a restart of the database fix this? Of course the max sessions issue was cleaned up two days ago but the rollback segment issue is a lingering problem.
    Any help would be appreciated. We couldn't find anything for this online and Oracle hasn't responded to our service request yet.
    Thanks,
    Bobby

    As I understand it, you can not explicitly set the size for the undo segments in automatic undo management mode. From the Concepts guide:
    "In automatic undo management mode, the system controls exclusively the assignment of transactions to undo segments, and controls space allocation for undo segments."
    It looks like we are also using the default storage options that are set when the UNDO tablespace was created. Here is the DDL used to create this tablespace:
    CREATE SMALLFILE UNDO TABLESPACE "UNDOTBS" DATAFILE '/alpha/oradata/prod01/undotbs01.dbf' SIZE 750M REUSE AUTOEXTEND ON NEXT 25600K MAXSIZE 2000M , '/alpha/oradata/prod01/undotbs03.dbf' SIZE 2000M REUSE AUTOEXTEND ON NEXT 51200K MAXSIZE 2000M , '/alpha/oradata/prod01/undotbs04.dbf' SIZE 2000M REUSE AUTOEXTEND ON NEXT 104K MAXSIZE 2000M , '/alpha/oradata/prod01/undotbs02.dbf' SIZE 2000M REUSE AUTOEXTEND ON NEXT 25600K MAXSIZE 2000M

  • SP calls not rollback - Using JDBCTxDataSource

    Hi,
    We are using a JDBCTXdatasource and we are calling stored procedure, One of them have transaction and the other ones don't.
    When we get an error from a SP without transaction, the data that was insert in the table is not rolled back.
    And when we get an error from the procedure that has a transaction, a rollback is issued but then there is a transaction left open on the connection.
    Does anyone has some idea on what is going on ?
    We are using WEblogic SP4 and the older weblogic driver (weblogic.jdbc.mssqlserver4.Driver) due to some other problem with the newer one.

    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?
    >
    >

  • SavePoint Process

    Hi Team
    The below code is for commit ,Save and Rollback process
    I don't have data like empno111111 so exception rise and go the main exception but i want to know what is use of SavePoint here...?
    declare
    V number;
    begin
      begin
        insert into EMP1(EMPNO,SAL,DEPTNO) values(12,123,10);
        commit;
        rollback;
      end;
      begin
        insert into EMP1(EMPNO,SAL,DEPTNO) values(11,1234,20);
        commit;
        rollback;
        savepoint EMP_SAL;
        insert into EMP1(EMPNO,SAL,DEPTNO) values(14,123,40);
      end;
      begin
        insert into EMP1(EMPNO,SAL,DEPTNO) values(1,12345,30);
        select empno into v from emp where empno=111111;
        commit;
      end;
    EXCEPTION when OTHERS then
    rollback;
    end;

    Let me try to clear you some part of TCL language.
    First check points:-
    1. No need of creating sub blocks.
    2. Don't put commit/rollback after each DML execution; then there is no question of checking savepoint access).
    --check 1( To see savepoint access)
    SQL> declare
      2  v number;
      3  begin
      4     --begin
      5     insert into emp1(empno,sal,deptno) values(12,123,10);
      6     --commit;
      7     --rollback;
      8     --end;
      9   --begin
    10      insert into emp1(empno,sal,deptno) values(11,1234,20);
    11      --commit;
    12      --rollback;
    13      savepoint emp_sal;
    14
    15     insert into emp1(empno,sal,deptno) values(14,123,40);
    16    --end;
    17    --begin
    18      insert into emp1(empno,sal,deptno) values(1,12345,30);
    19      select empno into v from emp1 where empno=111111;
    20      commit;
    21    --end;
    22  exception when others then
    23  rollback to emp_sal; -- Check 1
    24  --raise;  -- Check 2
    25  end;
    26  /
    PL/SQL procedure successfully completed.
    SQL> select * from emp1;
         EMPNO        SAL     DEPTNO
            12        123         10
            11       1234         20
    SQL> rollback; -- To remove savepoints and re-check it in another way!
    Rollback complete.
    Now check 2 ( If a runtime exception has raised and no transaction has controlled(say, no return to any savepoint), then it(your whole block) will completely be rolled back).
    SQL> declare
      2  v number;
      3  begin
      4     --begin
      5     insert into emp1(empno,sal,deptno) values(12,123,10);
      6     --commit;
      7     --rollback;
      8     --end;
      9   --begin
    10      insert into emp1(empno,sal,deptno) values(11,1234,20);
    11      --commit;
    12      --rollback;
    13      savepoint emp_sal;
    14
    15     insert into emp1(empno,sal,deptno) values(14,123,40);
    16    --end;
    17    --begin
    18      insert into emp1(empno,sal,deptno) values(1,12345,30);
    19      select empno into v from emp1 where empno=111111;
    20      commit;
    21    --end;
    22  exception when others then
    23  --rollback to emp_sal; -- Check 1
    24  raise;  -- Check 2
    25  end;
    26  /
    declare
    ERROR at line 1:
    ORA-01403: no data found
    ORA-06512: at line 24
    SQL> select * from emp1;
    no rows selected

  • Forms savepoints

    Is there any way of tracking savepoint activity in forms ie, determine if savepoints is affecting application performance? The default for oracle form savepoint mode property is on which is the way the application has be created.
    regards

    Forms will always create a savepoint when a new form is opened, and just before the commit process. So the number of savepoints issued depends on those two factors.

Maybe you are looking for

  • While opening BSP File download popup opens

    HI Experts, While opening BSP application(appraisal) in UWL work items a popup window opens. this happens on particular PC of the user only,we are able to open the same on our PC. this must be because of browser setting,but not sure please suggest,po

  • Photoshop keps crashing help!

    I have a photoshop CS2 and my Mac runs os x snow leopard.... it has been fine for the last few month but now is crash almost straight away.... and showing this fault Can anyone suggest anything? Is it just to old to run with os x but it has been ok?

  • Triggering Process Definition Tasks Based on Changes to Multiple Attributes

    Hi All, I'm in the process of creating a custom GTC connector to provision accounts to an LDAP directory. I've got more than 100 user defined fields with the user object in OIM and about 60 of them will be kept in sync with the user accounts in LDAP.

  • How to capture non-work related time in SAP

    Hi gurus, We are trying to implement a new system where by the shop floor person can enter his travelling time, break time and working time. Billing can only be done for working time. I know the regular way of entering time in CAT2 and transferring i

  • Vendor/supplier Name through Batch number

    Hi experts,   can you please tell me, in which table i will get the vendor/supplier name for a batch number ( CHARG ).