"rollback" for non-transaction objects

Hello,
I have the following situation:
When I work with some entity in DAL layer it is atached, so all my changes will be flushed. After flushing some contraint of DB can be violated. My changes can be done in transaction or without any transaction, and here is my problem:
If it is in transaction, I should not rollback it (user can correct "mistake"); If it is out of transaction - it should be "rollbacked".
To handle situation with transaction I've made my exception '@ApplicationException' and it works.
But it is bad for the second situation, without transaction. In this case my data are flushed anyway (if exception thrown is ApplicationException). In my exception handler I tried to do this: "if I'm not in transaction so service.getEntityManager.clear();", but data are flushed anyway...
So how to handle this situation? Does "clear()" for non-transaction have to work as "rollback()" for transaction?
(I think that it could be done so: throw ApplicationException if I am in Transaction, otherwise RuntimeException to rollback any changes; but maybe there is another solution?)
Thanks in advance,
Maxym

If you use CMT EJBs, then you do not have to begin, commit, or roll back.
          If your client calls methods that can throw application exceptions, then you
          must handle the transaction (commit or roll back) in the cases that those
          application exceptions are thrown.
          Peace,
          Cameron Purdy
          Tangosol, Inc.
          http://www.tangosol.com
          +1.617.623.5782
          WebLogic Consulting Available
          "TH Lim" <[email protected]> wrote in message
          news:3a3989d6$[email protected]..
          >
          > Hi,
          >
          > Part of my client code looks like this,
          > try {
          > ..
          > trans.begin(); // transaction begins
          > .. // calling some EJB methods
          > ..
          > trans.commit(); // transaction commits
          > }
          > catch(Exception e)
          > {
          > }
          >
          > My question is do I have to explicitly do a trans.rollback() if there is a
          RemoteException thrown between begin() and commit(). Do I have to
          instantiate a new transaction if the current transaction is rollbacked?
          Thank you.
          

Similar Messages

  • Need Help for Non Transactional Data

    Hi,
    I need your help for getting the non-transactional data. I am looking for some solution where I can have employee list with both transaction and non transaction along with the measure in the report.
    Thanks in advance.
    Phani.

    Looks like you either want a procedure with OUT parameters, or to return a record (which you'd need to declare somewhere that your function and calling procedure can both see)

  • How to create Entity object for Non Database Object.

    Friends,
    I have a requirement something like, I will be getting some huge amount of data from external system via CORBA, I have to display the data in jsff page in <af:table>. My requirement is If User updates any of the row I need to identify what are all the rows user updated and Need to invoke again a CORBA call for only UPDATED Rows.
    Basically here, I am not dealing anything with the Database, I assume using Entity we can find out a status of the row whether the row is updated/deleted/created .
    How can I create an Entity object in this case.
    Any help will be highly appreciated !!!
    Thanks

    The basics steps are described here http://download.oracle.com/docs/cd/E14571_01/web.1111/b31974/bcadveo.htm#sm0328
    and here http://download.oracle.com/docs/cd/E14571_01/web.1111/b31974/bcadvvo.htm#sm0341
    You need to change the underlying data source from pl/sql to meet your requirements (CORBA).
    Timo

  • Non-transactional datastores

    In the WebLogic 5.1 documentation it mentions that for non-transactional
              datastores in a cluster that you can use a custom "dictionary" object to
              keep track of which webLogic server instance is currently hosting a given
              entity bean. This approach is used to insure the integerity for entity EJBs
              in the cluster.
              My question is, has anyone done this or does someone at WebLogic have an
              example or additional information on what all is required to implement this
              "dictionary" object?
              Thanks in advance,
              Michael
              

    I would suggest that you use read-only entity beans for caching
              non-transactional data. Much of the data on websites is
              non-transactional and can be cached for a while.
              For transactional data, I would use a regular entity bean and incur the
              overhead of going to the db.
              -- Rob
              Michael Rousey wrote:
              >
              > I am runningWL 5.1 in a clustered environment. I have an entity bean which
              > represents a complex hierarchy of objects. I would like to be able to take
              > advantage of a caching mechanism so that every call to the bean does not
              > force a reload from the database. In order to accomplish this I need to
              > either guarantee all calls to a single instance of the bean go to a single
              > machine(so the cache is in sync with the DB), or have a clustered cache(I
              > don't want to try and tackle this). The documentation under "entity EJBs
              > in a cluster" talked about a "dictionary" object that appears to act as a
              > router. The idea is for the dictionary object to keep track of which
              > instance of the bean is deployed on a specific machine in the cluster. All
              > actors would use the dictionary to obtain the specific instance of the bean
              > they need. If the instance is new, then WL would create a new instance in a
              > normal fashion; the dictionary object would keep track of the new instance
              > and forward and new request to the machine where the instance was created.
              > This is similar to factory based routing in WLE.
              >
              > Any help on how to implement this or any additional ideas would be helpful.
              >
              > Thanks,
              >
              > Michael
              >
              > "Rob Woollen" <[email protected]> wrote in message
              > news:[email protected]...
              > > Hmm, I'm not sure what the docs were talking about here.
              > >
              > > Can you provide some more details about what you are trying to do?
              > >
              > > -- Rob
              > >
              > > Michael Rousey wrote:
              > >
              > > > In the WebLogic 5.1 documentation it mentions that for non-transactional
              > > > datastores in a cluster that you can use a custom "dictionary" object to
              > > > keep track of which webLogic server instance is currently hosting a
              > given
              > > > entity bean. This approach is used to insure the integerity for entity
              > EJBs
              > > > in the cluster.
              > > >
              > > > My question is, has anyone done this or does someone at WebLogic have an
              > > > example or additional information on what all is required to implement
              > this
              > > > "dictionary" object?
              > > >
              > > > Thanks in advance,
              > > >
              > > > Michael
              > >
              

  • Gathering Statistics on NON-PARTITIONED objects

    Hi,
    Is it possible to manually gather stats only for Non-Partitioned objects without touching any of the Partitioned objects?
    Oracle Version: 11.1.0.7
    Thanks,
    Ishan

    @Hoek and Kuljeet:
    I am sorry on missing out on this info.
    What I mean is that, I don't want to hard-code the NON-PARTITIONED table names or take names from USER_TABLES. Oracle should pick it up automatically like the way it does it for PARTITIONED tables.
    Thanks,
    Ishan
    Edited by: Ishan on Jun 7, 2012 6:01 PM

  • Transaction & non-EJB objects (helper)

    hi i have a question about transactional behavior of non-EJB objects. i'm
              using
              weblogic 6.0 sp1 with ejb 2.0.
              say i have a session bean which starts a container managed transaction. and
              it calls
              out to helper class A(non-EJB), and that helper class A get a connection and
              update
              some tables. after A returns, session bean calls helper class B(non-EJB) in
              the
              same transaction. B is supposed to update some other tables but it throw an
              user
              exception. would the transaction in the session bean be rolled back? would
              it
              also roll back the changes made by helper class A?
              thanks for any help,
              z
              

    Thanks Rob!
              "Rob Woollen" <[email protected]> wrote in message
              news:[email protected]...
              > Ziqiang Xu wrote:
              >
              > > hi i have a question about transactional behavior of non-EJB objects.
              i'm
              > > using
              > > weblogic 6.0 sp1 with ejb 2.0.
              > >
              > > say i have a session bean which starts a container managed transaction.
              and
              > > it calls
              > > out to helper class A(non-EJB), and that helper class A get a connection
              and
              > > update
              > > some tables.
              >
              > You must get the JDBC connection from a TxDataSource.
              >
              > > after A returns, session bean calls helper class B(non-EJB) in
              > > the
              > > same transaction. B is supposed to update some other tables but it
              throw an
              > > user
              > > exception. would the transaction in the session bean be rolled back?
              >
              > Merely throwing an exception from a helper class will not rollback the
              > transaction.
              >
              > Within an EJB, the best way to rollback a tx is to use the
              > EJBContext.setRollbackOnly method.
              >
              > So you could do something like this:
              >
              > session_bean_method() {
              >
              > try {
              > B.foo();
              > } catch (MyException e) {
              > ctx.setRollbackOnly();
              > throw e;
              > }
              >
              > }
              >
              > > would
              > > it
              > > also roll back the changes made by helper class A?
              > >
              >
              > If they are all within a single transaction, then yes. As I mentioned
              before,
              > make sure that you use a TxDataSource for all of your JDBC Connections.
              >
              > -- Rob
              >
              > >
              > > thanks for any help,
              > >
              > > z
              >
              

  • [Solved] if(Transaction specified for a non-transactional database) then

    I am getting started with BDBXML 2.4.14 transactions and XQuery update functionality and I am having some difficulty with 'node insert ...' and transactions failing with 'Transaction specified for a non-transactional database'
    Thanks for helping out.
    Setup:
    I have coded up a singleton manager for the XmlManger with a ThreadLocal holding the transaction and a query method to execute XQueries. The setup goes like this:
    environmentConfig = new EnvironmentConfig();
    environmentConfig.setRunRecovery(true);               environmentConfig.setTransactional(true);               environmentConfig.setAllowCreate(true);               environmentConfig.setRunRecovery(true);               environmentConfig.setInitializeCache(true);                environmentConfig.setTxnMaxActive(0);               environmentConfig.setInitializeLocking(true);               environmentConfig.setInitializeLogging(true);               environmentConfig.setErrorStream(System.err);
    environmentConfig.setLockDetectMode(LockDetectMode.MINWRITE);               environmentConfig.setJoinEnvironment(true);               environmentConfig.setThreaded(true);
    xmlManagerConfig = new XmlManagerConfig();               xmlManagerConfig.setAdoptEnvironment(true);               xmlManagerConfig.setAllowAutoOpen(true);               xmlManagerConfig.setAllowExternalAccess(true);
    xmlContainerConfig = new XmlContainerConfig();               xmlContainerConfig.setAllowValidation(false);               xmlContainerConfig.setIndexNodes(true);               xmlContainerConfig.setNodeContainer(true);
    // initialize
    instance.xmlManager = new XmlManager(instance.getEnvironment(),                    instance.getXmlManagerConfig());
    instance.xmlContainer = instance.xmlManager.openContainer(                              containerName, instance.getXmlContainerConfig());
    private ThreadLocal<XmlTransaction> transaction = new ThreadLocal<XmlTransaction>();
    public XmlTransaction getTransaction() throws Exception {
              if (transaction.get() == null) {
                   XmlTransaction t = xmlManager.createTransaction();
                   log.info("Transaction created, id: " + t.getTransaction().getId());
                   transaction.set(t);
              } else if (log.isDebugEnabled()) {
                   log.debug("Reusing transaction, id: "
                             + transaction.get().getTransaction().getId());
              return transaction.get();
         private XmlQueryContext createQueryContext(String docName) throws Exception {
              XmlQueryContext context = xmlManager.createQueryContext(
                        XmlQueryContext.LiveValues, XmlQueryContext.Lazy);
              List<NamespacePrefix> namespacePrefixs = documentPrefixes.get(docName);
              // declare ddi namespaces
              for (NamespacePrefix namespacePrefix : namespacePrefixs) {
                   context.setNamespace(namespacePrefix.getPrefix(), namespacePrefix
                             .getNamespace());
              return context;
         public XmlResults xQuery(String query) throws Exception {
              XmlQueryExpression xmlQueryExpression = null;
              XmlQueryContext xmlQueryContext = getQueryContext(docName);
              try {
                   xmlQueryExpression = xmlManager.prepare(getTransaction(), query,
                             xmlQueryContext);
                   log.info(query.toString());
              } catch (Exception e) {
                   if (xmlQueryContext != null) {
                        xmlQueryContext.delete();
                   throw new DDIFtpException("Error prepare query: " + query, e);
              XmlResults rs = null;
              try {
                   rs = xmlQueryExpression.execute(getTransaction(), xmlQueryContext);
              // catch deadlock and implement retry
              catch (Exception e) {
                   throw new DDIFtpException("Error on query execute of: " + query, e);
              } finally {
                   if (xmlQueryContext != null) {
                        xmlQueryContext.delete();
                   xmlQueryExpression.delete();
              return rs;
    <?xml version="1.0" encoding="UTF-8"?>
    <Test version="0.1">
    <Project id="test-project" agency="dda">
    <File id="large-doc.xml" type="ddi"/>
    <File id="complex-doc.xml" type="ddi"/>
    </Project>
    <Project id="2nd-project" agency="test.org"/>
    </Test>
    Problem:
    All the queries are run through the xQuery method and I do delete the XmlResults afterwards. How do I get around the 'Transaction specified for a non-transactional database' what is the transactions doing? How do I get state information out of a transaction? What am I doing wrong here?
    1 First I insert a node:
    Transaction created, id: -2147483647
    Adding document: large-doc.xml to xml container
    Reusing transaction, id: -2147483647
    Working doc: ddieditor.xml
    Root element: Test
    Reusing transaction, id: -2147483647
    insert nodes <Project id="JUnitTest" agency="test.org"></Project> into doc("dbxml:/ddieditor.dbxml/ddieditor.xml")/Test
    Reusing transaction, id: -2147483647
    2 Then do a query:
    Reusing transaction, id: -2147483647
    doc("dbxml:/ddieditor.dbxml/ddieditor.xml")/Test/Project/@id
    Reusing transaction, id: -2147483647
    3 The same query again:
    Reusing transaction, id: -2147483647
    doc("dbxml:/ddieditor.dbxml/ddieditor.xml")/Test/Project/@id
    Reusing transaction, id: -2147483647
    4 Delete a node:
    Reusing transaction, id: -2147483647
    delete node for $x in doc("dbxml:/ddieditor.dbxml/ddieditor.xml")/Test/Project where $x/@id = '2nd-project' return $x
    Reusing transaction, id: -2147483647
    5 Then an error on query:
    Reusing transaction, id: -2147483647
    doc("dbxml:/ddieditor.dbxml/ddieditor.xml")/Test/Project/@id
    Reusing transaction, id: -2147483647
    Transaction specified for a non-transactional database
    com.sleepycat.dbxml.XmlException: Error: Invalid argument, errcode = DATABASE_ERROR
         at com.sleepycat.dbxml.dbxml_javaJNI.XmlResults_hasNext(Native Method)
         at com.sleepycat.dbxml.XmlResults.hasNext(XmlResults.java:136)
    Message was edited by:
    jannikj

    Ok got it solved by increasing the locks lockers and mutex's I allso increased the the log buffer size:
    environmentConfig = new EnvironmentConfig();
                   // general environment
                   environmentConfig.setAllowCreate(true);
                   environmentConfig.setRunRecovery(true); // light recovery on startup
                   //environmentConfig.setRunFatalRecovery(true); // heavy recovery on startup
                   environmentConfig.setJoinEnvironment(true); // reuse of environment: ok
                   environmentConfig.setThreaded(true);
                   // log subsystem
                   environmentConfig.setInitializeLogging(true);
                   environmentConfig.setLogAutoRemove(true);
                   environmentConfig.setLogBufferSize(128 * 1024); // default 32KB
                   environmentConfig.setInitializeCache(true); // shared memory region
                   environmentConfig.setCacheSize(2500 * 1024 * 1024); // 250MB cache
                   // transaction
                   environmentConfig.setTransactional(true);
                   environmentConfig.setTxnMaxActive(0); // live forever, no timeout               
                   // locking subsystem
                   environmentConfig.setInitializeLocking(true);
    environmentConfig.setMutexIncrement(22);
    environmentConfig.setMaxMutexes(200000);
    environmentConfig.setMaxLockers(200000);
    environmentConfig.setMaxLockObjects(200000); // default 1000
    environmentConfig.setMaxLocks(200000);
    // deadlock detection
                   environmentConfig.setLockDetectMode(LockDetectMode.MINWRITE);
    In the docs by Oracle it is limited information given regarding the impact of these settings and their options. Can you guys point in a direction where I can find some written answers or it hands on?

  • Need to know Objects Linking for MM Transactions MIGO & ML81N

    We have a typical requirement to store & retrieval of Inspection Records / Reports which were used during Goods Receipt in MM i.e QA32 / or MIGO  Transaction & also at service Entry Sheet i.e ML81N  ( MM Transaction ).
    Can anyone help how can we achieve this as we are implementing DMS in ECC 6.0 on EHP 5.
    The purpose is to store Quality Inspection records while doing Goods inspection in QA32 , & same is doing while passing service entry sheet  ML81n. At any time in future we would be able to pull out soft / PDF copy of inspection reports as certified by Quality dept.

    Hi Umesh,
    Please note that SAP DMS doesn't extend any object linking feature for MIGO transaction.A better approach to meet your requirment would be to store documents via Archivelink.The key steps involved are:
    - Content repository definition for Archivelink
    - Document type creation
    -  Assignment of the above document type to MIGO business object BUS2017
    Regards,
    Pradeepkumar Haragoldavar

  • JCA / JDBC Configured for non-XA Attempting XA Transaction Commit

    I am attempting to create simple BPEL SOA composites in SOA 11.1.1.5 that use a DbAdapter to execute a stored procedure in an 11g database. The database task being performed only involves a single database and does not require transaction support. I have carefully stepped through the creation of the DataSource and JCA pointing through the DbAdapter to the JDBC DataSource so XA transaction support is disabled, the JCA pool sets the transaction mode to "No transaction" and the JCA pool uses the dataSource value to point to the JNDI name of the JDBC pool rather than the xADataSource value.
    Visually,
    DataSource definition:
    name = jdbc/myserviceDataSource
    driver = oracle.jdbc.xa.client.OracleXADataSource
    url = jdbc:oracle:thin:@mydbhost.myfirm.com:1521:GENERIC
    use XA DataSource = unchecked
    set XA timeout = unchecked
    Keep XA connection until transaction complete = checked
    keep connection after local transaction = checked
    JCA definition:
    name = eis/DB/myserviceDataSource
    dataSourceName = jdbc/myserviceDataSource
    xADataSourceName = (blank)
    platform class name = org.eclipse.persistence.platform.database.Oracle10Platform
    Transaction | Transaction Support: no transaction
    This configuration works on one sandbox server and I got it working in a second sandbox server. However, after deleting the JDBC and JCA pools to go through the process one more time to document the procedure on the second server, I am unable to get the configuration working again. The WebLogic domain appears to be resurrecting portions of an old configuration that still references the JNDI name of the JDBC pool in the xADataSourceName parameter. I have unpacked the DbAdapter.rar archive for the DbAdapter and verified the contents of the ./META-INF/weblogic-ra.xml file don't use the xADataSouceName parameter. The Deployment Plan for the DbAdapter (named DbAdapterPlan.xml in $SOA_HOME/soa/connectors ) also explicitly configures the JCA pool using the dataSourceName value leaving the xADataSourceName value blank.
    However, executing the SOA service using this JCA connection results in this error:
    java.sql.SQLException: Cannot call Connection.commit in distributed transaction.
    Again, I know the theoretical answer to this question is to disable transactions in the JCA and JDBC configurations and don't use the xADataSourceName element of the JCA configuration to point to the JDBC pool. However, after validating those elements and restarting the pools or performing an Update on the DbAdapter deployment, WebLogic seems to still create connections through the JDBC pool with transactions enabled.
    Any suggestions?
    Should I just completely undeploy the DbAdapter and redeploy it from the SOA binary installation directory? These are just lab machines right now so that's obviously not a good long term answer for production use but may help start over with refining a better procedure for doing this.

    You should use a non-xa driver for your data source...
    From the weblogic docs...
    Configure Transaction Options
    When you configure a JDBC data source using the Administration Console, WebLogic Server automatically selects specific transaction options based on the type of JDBC driver:
    For XA drivers, the system automatically selects the Two-Phase Commit protocol for global transaction processing.
    For non-XA drivers, local transactions are supported by definition, and WebLogic Server offers the following options ...
    http://docs.oracle.com/cd/E23943_01/web.1111/e13737/jdbc_datasources.htm#autoId8
    Cheers,
    Vlad

  • Transaction Code for non-PO invoices

    Hello all,
    Is there any transaction code to generate a report of all non PO transactions posted in FY??
    We want to pull a report on a monthly/quarterly/basis to identify as to how many non PO transactions are posted for a period.
    We need a report to pull these non PO transactions.
    Thank you in advance,
    Regards,
    Manjunath

    Hi,
       Go to SE16 - enter the table BKPF. Now, in selection, enter the document type (that is document type, like KR, used for non PO invoices) and execute with date range. Here, system will show the list, with transaction code, user, date etc.
        If required, create an SQVI query with BKPF table, so that you can take the list directly.
        Another option would be FBL1N transaction. Here, go to dynamic selection and add the reconcilation account in the selection. Maintain all your vendor reconcillation accounts as "not equal to" and execute with date range.
    Regards,
    AKPT
    Message was edited by: AKPT MM

  • How to post an Idoc (INVOICE02) for non-po Invoice (MIRO transaction)

    Hi,
    I want to Post an Idoc for non-po vendor Invoice through MIRO transaction. I want to use INVOICE02 basic type. In the line item we need to enter G/L account , Cost center and line item amount. But I am not able to enter the same in the INVOICE02 Idoc. It will be nice if you please let me know how to post non-po Idoc through MIRO transaction.
    Thanks
    Rama
    Edited by: Rama Sengupta on Nov 25, 2009 3:57 PM

    Hi Raja,
    Check this out.
    Inbound IDocs are triggered by either external systems (edi, wms etc) or can be triggered by inhouse applications in SAP to post a application document.
    1. EDI_DATA_INCOMING can create a IDoc from a file on the OS layer. It just needs a IDoc flat file containing control and data records, it will create an Idoc from it if the control record successfully matches a inbound partner profile parameters.
    2. IDOC_INBOUND_ASYNCHRONOUS can be triggered by external/internal programs to creae IDoc withing SAP, whereas IDOC_INBOUND_SYNCHRONOUS can be used by inhouse SAP programs to create inbound Idoc.
    3. WE19 can create and post an existing inbound Idoc to application
    Hope this resolves your query.
    Reward all the helpful answers.
    Regards

  • How can we run MDBT transaction for non-valuated items only

    HI,
    We want to run the MDBT transaction for non-valuated items only...but through this transaction we can run for all items..
    How can we run only for non-valuated items???
    Regards,

    Dear Anil,
    MD02 - Material level planning ( Multilevel )
    MD01 - Plant level planning ( Multilevel )
    MDBT - Back ground MRP ( Multilevel )
    coming to ur query if all 20 materials belongs to one storage location or one MRP controller
    Then you perform MRP for that 20 materials with the above given user exit
    Also Plz refer my reply from this thread
    [Re: MD01 Replanification.]
    Regards
    Madhu

  • How to create Object Links For non standard SAP Objects?

    Hi all,
             I need to create an object link in cvo1n for a non standard SAP object (inspection characteristics) . we have two ways to do this
    1. Create a screen for the rquirement by taking the standard screens as reference.
    2. Implement badi document_obj.
    I need a step by step process to perform both the steps. Sample codes will be helpful.
    One more thing is that i need a link in the standard screens of inspection characteristics also. How to get a two way link both in cv01n and in the standard inspection char screen.

    hi
    Customizing for the Do cument Management , you must maintain the key fields for the SAP objects that you want to link to document info records, by choosing Control Data ® Maintain key fields.
    Process
    Program two screens for the following module pools for the SAP object that is to be linked additionally:
    u2013 SAPLCV00
    u2013 SAPLCVIN
    The process logic must be according to that of screen 0204 in program SAPLCV00 and must not be changed.
    Create the function module OBJECT_CHECK_XXXX (XXXX = name of the SAP object).
    If this object can be classified, this function module already exists in the standard system. Otherwise, copy the existing function module OBJECT_CHECK_EQUI (linking of equipment) and change it to suit the new object.
    also you can attach the document to PRT also. but it will not show you in dms. This type of attachment is only from otherside.
    thanks
    nitin
    award point if useful

  • System crash while using Callable objects for SAP transaction !!

    Hi all,
    i have created a CO to use SAP transaction, i have created a system, its connection test is successfull.when i create the CO and specify the system and Tcode, and Test it, its giving a Short dump saying its crashed, do anyone knows the rerason??please guide me
    Thanx in advance

    Hi Audrey
    The Help for SAP Transactional iView can be found here - but although I have followed these steps and an associated blog it still does not work for me.  Perhaps you will have more luck.  See below for my particular error (if your able to help me ;-).)
    SAP Help for SAP Transactional iView
    http://help.sap.com/saphelp_nw04/helpdata/en/02/f9e1ac7da0ee4587d79e8de7584966/frameset.htm
    SAP Blog for the same
    Create SAP Transaction iView using SAPGUI for Windows
    NOTE :  Sadly I cannot get mine to work !! ****
    I'm also trying to create a SAP Transaction iView. Following these steps.
    I can preview the iView OK. So it seems that System and Alias are OK.
    BUT when I logon as a user on the Portal with that iVew it fails with the same type of error you had.
    "Unable to lookup System &#39;SAPDBEAlias&#39;. Please check the system object and the alias.."

  • Cannot use system rollback segment for non-system tablespace 'TEMP

    Hi everyone!
    I encountered this error: "Cannot use system rollback segment for non-system tablespace 'TEMP"
    So this is what I did to check if the undo stuffs are online.
    SQL> select tablespace_name,status from dba_tablespaces;
    TABLESPACE_NAME                STATUS
    SYSTEM                         ONLINE
    UNDO                           ONLINE
    SYSAUX                         ONLINE
    TEMP                           ONLINE
    LARGEDATA                      ONLINE
    LARGEINDEXES                   ONLINE
    MEDIUMDATA                     ONLINE
    MEDIUMINDEXES                  ONLINE
    SMALLDATA                      ONLINE
    SMALLINDEXES                   ONLINE
    XSMALLDATA                     ONLINE
    TABLESPACE_NAME                STATUS
    XSMALLINDEXES                  ONLINE
    XXSMALLTABS                    ONLINE
    USERS                          ONLINE
    CONVTABLES                     ONLINE
    UNDO_02                        ONLINE
    16 rows selected.
    SQL>  SELECT tablespace_name, sum((bytes/1024)/1024) free FROM DBA_FREE_SPACE gr
    oup by tablespace_name;
    TABLESPACE_NAME                      FREE
    LARGEDATA                      18.3105469
    SMALLDATA                        10.46875
    SYSAUX                           106.5625
    UNDO_02                            67.125
    XXSMALLTABS                    13.0078125
    CONVTABLES                     170.039063
    MEDIUMDATA                             22
    USERS                           37.265625
    SYSTEM                             55.875
    LARGEINDEXES                   30.5175781
    XSMALLINDEXES                    17.34375
    TABLESPACE_NAME                      FREE
    UNDO                             546.9375
    MEDIUMINDEXES                       33.25
    SMALLINDEXES                    31.015625
    XSMALLDATA                     23.6328125
    15 rows selected.
    SQL> select file#,status from v$datafile;
         FILE# STATUS
             1 SYSTEM
             2 ONLINE
             3 ONLINE
             4 ONLINE
             5 ONLINE
             6 ONLINE
             7 ONLINE
             8 ONLINE
             9 ONLINE
            10 ONLINE
            11 ONLINE
         FILE# STATUS
            12 ONLINE
            13 ONLINE
            14 ONLINE
            15 ONLINE
    15 rows selected.
    SQL> select segment_name, tablespace_name, initial_extent,status
      2  from dba_rollback_segs;
    SEGMENT_NAME                   TABLESPACE_NAME                INITIAL_EXTENT
    STATUS
    SYSTEM                         SYSTEM                                 102400
    ONLINE
    _SYSSMU1$                      UNDO                                   131072
    OFFLINE
    _SYSSMU2$                      UNDO                                   131072
    OFFLINE
    SEGMENT_NAME                   TABLESPACE_NAME                INITIAL_EXTENT
    STATUS
    _SYSSMU3$                      UNDO                                   131072
    OFFLINE
    _SYSSMU4$                      UNDO                                   131072
    OFFLINE
    _SYSSMU5$                      UNDO                                   131072
    OFFLINE
    SEGMENT_NAME                   TABLESPACE_NAME                INITIAL_EXTENT
    STATUS
    _SYSSMU6$                      UNDO                                   131072
    OFFLINE
    _SYSSMU7$                      UNDO                                   131072
    OFFLINE
    _SYSSMU8$                      UNDO                                   131072
    OFFLINE
    SEGMENT_NAME                   TABLESPACE_NAME                INITIAL_EXTENT
    STATUS
    _SYSSMU9$                      UNDO                                   131072
    OFFLINE
    _SYSSMU10$                     UNDO                                   131072
    OFFLINE
    _SYSSMU11$                     UNDO_02                                131072
    OFFLINE
    SEGMENT_NAME                   TABLESPACE_NAME                INITIAL_EXTENT
    STATUS
    _SYSSMU12$                     UNDO_02                                131072
    OFFLINE
    _SYSSMU13$                     UNDO_02                                131072
    OFFLINE
    _SYSSMU14$                     UNDO_02                                131072
    OFFLINE
    SEGMENT_NAME                   TABLESPACE_NAME                INITIAL_EXTENT
    STATUS
    _SYSSMU15$                     UNDO_02                                131072
    OFFLINE
    _SYSSMU16$                     UNDO_02                                131072
    OFFLINE
    _SYSSMU17$                     UNDO_02                                131072
    OFFLINE
    SEGMENT_NAME                   TABLESPACE_NAME                INITIAL_EXTENT
    STATUS
    _SYSSMU18$                     UNDO_02                                131072
    OFFLINE
    _SYSSMU19$                     UNDO_02                                131072
    OFFLINE
    _SYSSMU20$                     UNDO_02                                131072
    OFFLINE
    SEGMENT_NAME                   TABLESPACE_NAME                INITIAL_EXTENT
    STATUS
    _SYSSMU21$                     UNDO_02                                131072
    OFFLINE
    22 rows selected.How should I be bringing them online?
    I tried this but didn't work for me.
    SQL> alter rollback segment _SYSSMU1$ online;
    alter rollback segment _SYSSMU1$ online
    ERROR at line 1:
    ORA-00911: invalid character
    SQL> alter rollback segment '_SYSSMU1$' online;
    alter rollback segment '_SYSSMU1$' online
    ERROR at line 1:
    ORA-02245: invalid ROLLBACK SEGMENT name
    SQL> alter rollback segment _SYSSMU21$ online;
    alter rollback segment _SYSSMU21$ online
    ERROR at line 1:
    ORA-00911: invalid character
    SQL> alter rollback segment SYSSMU21$ online;
    alter rollback segment SYSSMU21$ online
    ERROR at line 1:
    ORA-01534: rollback segment 'SYSSMU21$' doesn't exist
    SQL> alter rollback segment '_SYSSMU21$' online;
    alter rollback segment '_SYSSMU21$' online
    ERROR at line 1:
    ORA-02245: invalid ROLLBACK SEGMENT name
    SQL> alter rollback segment "_SYSSMU21$" online;
    alter rollback segment "_SYSSMU21$" online
    ERROR at line 1:
    ORA-30017: segment '_SYSSMU21$' is not supported in MANUAL Undo Management mode
    SQL> ALTER SYSTEM SET UNDO_MANAGEMENT=AUTO SCOPE=SPFILE;
    System altered.Should I be bringing every segment online separately? Please guide me.
    Nith
    Edited by: user645399 on Feb 23, 2011 2:52 PM

    SQL> select segment_name, tablespace_name, initial_extent,status
      2  from dba_rollback_segs;
    SEGMENT_NAME                   TABLESPACE_NAME                INITIAL_EXTENT
    STATUS
    SYSTEM                         SYSTEM                                 102400
    ONLINE
    _SYSSMU1$                      UNDO                                   131072
    ONLINE
    _SYSSMU2$                      UNDO                                   131072
    ONLINE
    SEGMENT_NAME                   TABLESPACE_NAME                INITIAL_EXTENT
    STATUS
    _SYSSMU3$                      UNDO                                   131072
    ONLINE
    _SYSSMU4$                      UNDO                                   131072
    ONLINE
    _SYSSMU5$                      UNDO                                   131072
    ONLINE
    SEGMENT_NAME                   TABLESPACE_NAME                INITIAL_EXTENT
    STATUS
    _SYSSMU6$                      UNDO                                   131072
    ONLINE
    _SYSSMU7$                      UNDO                                   131072
    ONLINE
    _SYSSMU8$                      UNDO                                   131072
    ONLINE
    SEGMENT_NAME                   TABLESPACE_NAME                INITIAL_EXTENT
    STATUS
    _SYSSMU9$                      UNDO                                   131072
    ONLINE
    _SYSSMU10$                     UNDO                                   131072
    ONLINE
    _SYSSMU11$                     UNDO_02                                131072
    OFFLINE
    SEGMENT_NAME                   TABLESPACE_NAME                INITIAL_EXTENT
    STATUS
    _SYSSMU12$                     UNDO_02                                131072
    OFFLINE
    _SYSSMU13$                     UNDO_02                                131072
    OFFLINE
    _SYSSMU14$                     UNDO_02                                131072
    OFFLINE
    SEGMENT_NAME                   TABLESPACE_NAME                INITIAL_EXTENT
    STATUS
    _SYSSMU15$                     UNDO_02                                131072
    OFFLINE
    _SYSSMU16$                     UNDO_02                                131072
    OFFLINE
    _SYSSMU17$                     UNDO_02                                131072
    OFFLINE
    SEGMENT_NAME                   TABLESPACE_NAME                INITIAL_EXTENT
    STATUS
    _SYSSMU18$                     UNDO_02                                131072
    OFFLINE
    _SYSSMU19$                     UNDO_02                                131072
    OFFLINE
    _SYSSMU20$                     UNDO_02                                131072
    OFFLINE
    SEGMENT_NAME                   TABLESPACE_NAME                INITIAL_EXTENT
    STATUS
    _SYSSMU21$                     UNDO_02                                131072
    OFFLINEStill undo_02's segments are offline.

Maybe you are looking for

  • How to include jar files in ant script for compiling

    i am trying to manually include j2ee.jar for compiling, here is the entire build.xml: <?xml version="1.0"?> <!--PRIMARY build file for all of dev modual --> <project name="com" default="compile.all" basedir="../"> <path id="project.class.path"> <path

  • Automatic Addition of Excise Duty Condition

    I would like to know how we can make the excise duty condition automatic mean if we define excise duty condition 1% then it automatically calculate the duty and add it in PO. Regards

  • Macbook Pro Batteries and Fans Whirring

    I have a Macbook pro. It is only 2 months old and since the logic board was replaced due to a fault twice I have had the battery symbol at the top coming up with an x in it (power not connected) and the fans have been whirring inside. I have to unplu

  • How do I configure my Phone Number in Messages? 10.8.2 iOS 6

    I've my gmail, my hotmail configured in Messages but I cannot add my phone number so whenever someone messages me, I can respond in my Macbook Pro OS X (10.8.2 and I have an iOS6 iPhone). Thanks in advance!

  • Error creating jms queue

    Hello, I am facing this error when creating the jms queue. I gave unique names for queue and jndi. This error is because of what reason? Messages An error occurred during activation of changes, please see the log for details. weblogic.application.Mod