Using Transaction Scope in Oracle

Following is my code to call a transaction using .NET transaction scope:
using (TransactionScope sc = new TransactionScope())
try
OracleConnection c = new OracleConnection(ConfigurationManager.ConnectionStrings["oConn"].ConnectionString);
c.Open();
OracleCommand oc = c.CreateCommand();
oc.CommandText = "delete from test where issue_id=:issue_id";
oc.Parameters.Add("issue_id", OracleDbType.Int32).Value = 64;
var rowdelete = oc.ExecuteNonQuery();
c.Close();
OracleConnection c2 = new OracleConnection(ConfigurationManager.ConnectionStrings["oConn"].ConnectionString);
c2.Open();
OracleCommand oc2 = c2.CreateCommand();
oc2.CommandText = "delete from issue_no where issue_id=:issue_id";
oc2.Parameters.Add("issue_id", OracleDbType.Int32).Value = 64;
rowdelete = oc2.ExecuteNonQuery();
c2.Close();
sc.Complete();
catch (Exception ex)
throw ex;
It always throws exception: Data provider internal error(-3000)
It works fine when I remove transactions, what will be the cause for this? I cannot find related information about this error.

What version of ODP are you using? Does the behavior occur on current versions?
What is your connection string. That is to say, what format is it? I recall a known issue where using a fully qualified alias ( (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=...etc...) caused issues. Using a tnsnames.ora , or the instant client connect string (//host:port/service_name) did not have the problem.
Greg

Similar Messages

  • Unable to use transactions with System.Data.OracleClient data provider

    I am using VS2008, System.Data.OracleClient, Oracle 10g, and ODAC 10.2.0.20. I haven't been able to get transactions to work. When I use 'connection.BeginTransaction()', the rollback doesn't work. When I use TransactionScope, the output parameter is always DBNull. Any ideas/comments?
    Here's the sample code:
    // #define ENABLE_TRANSACTION // failure is 'rollback not working'
    #define ENABLE_TRANSACTION_SCOPE // failure is 'no output parameter value'
    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.Text;
    using System.Data.OracleClient;
    #if ENABLE_TRANSACTION_SCOPE
    using System.Transactions;
    #endif
    namespace TestOracleTransaction
    class Program
    static void Main(string[] args)
    #if ENABLE_TRANSACTION_SCOPE
    using (TransactionScope scope = new TransactionScope())
    #endif
    string connectionString = "Data Source=ORADEV;User ID=user;Password=pwd";
    using (OracleConnection connection = new OracleConnection(connectionString))
    try
    connection.Open();
    #if ENABLE_TRANSACTION
    using (OracleTransaction transaction = connection.BeginTransaction())
    #endif
    try
    #if ENABLE_TRANSACTION_SCOPE
    if (Transaction.Current == null)
    throw new ArgumentException("no ambient transaction found for OracleClient");
    #endif
    OracleCommand command = connection.CreateCommand();
    #if ENABLE_TRANSACTION
    command.Transaction = transaction;
    #endif
    command.CommandType = CommandType.StoredProcedure;
    command.CommandText = "TIS.P_TIS_GATEWAY_INFO_ADD";
    OracleParameter param = command.CreateParameter();
    param.ParameterName = "p_gateway_id";
    param.Direction = ParameterDirection.Input;
    param.DbType = DbType.Int64;
    param.Value = 18;
    command.Parameters.Add(param);
    param = command.CreateParameter();
    param.ParameterName = "p_info_id";
    param.Direction = ParameterDirection.Input;
    param.DbType = DbType.Int64;
    param.Value = 79;
    command.Parameters.Add(param);
    param = command.CreateParameter();
    param.ParameterName = "p_user";
    param.Direction = ParameterDirection.Input;
    param.DbType = DbType.String;
    param.Value = "spms";
    command.Parameters.Add(param);
    param = command.CreateParameter();
    param.ParameterName = "p_gateway_info_id";
    param.Direction = ParameterDirection.Output;
    param.DbType = DbType.Int64;
    param.Size = sizeof(Int64);
    command.Parameters.Add(param);
    int count = command.ExecuteNonQuery();
    object value = command.Parameters["p_gateway_info_id"].Value;
    long id = (value == DBNull.Value) ? -1 : Convert.ToInt64(value);
    if (id < 0)
    // FAILURE - no output parameter value when TransactionScope enabled
    throw new ArgumentException("no return value");
    #if ENABLE_TRANSACTION
    // FAILURE - rollback doesn't work when Transaction enabled
    transaction.Rollback();
    #endif
    #if ENABLE_TRANSACTION_SCOPE
    scope.Complete();
    #endif
    catch (Exception ex)
    System.Console.WriteLine("ERROR: " + ex.Message);
    #if ENABLE_TRANSACTION
    transaction.Rollback();
    #endif
    finally
    if (connection.State == ConnectionState.Open)
    connection.Close();
    }

    Hi,
    First, this is not the place for questions with System.Data.OracleClient, this is the Oracle Data Provider for .NET forum. Having said that I went ahead and tested your code with some slight modifications because you did not provide the stored procedure information. I am assuming your stored procedure is doing some sort of DML since you are using transactions and attempting to commit and rollback.
    I tested the following with both Transaction scope and a local transaction object and it worked fine with System.Data.OracleClient. I provided the create table and stored procedure I used.
    Observations
    ========
    When using transaction scope, a distributed transactions was executed and the data was inserted and returned in the output variable.
    From console
    p1 value is Hello World
    From SQL Plus
    SQL> select * from foo;
    C1
    Hello World
    When using a local transaction, the DML was not inserted when calling rollback and when I changed it to commit, the row was inserted successfully.
    Maybe you can test the simple foo example below to see if it works for you. Maybe there is something going on in your SP that is causing your specific observations.
    The code I posted at this point is using local transaction and calling transaction.commit(), rollback is commented out. But I tested all scenarios and they worked as expected.
    HTH
    Jenny
    #define ENABLE_TRANSACTION // failure is 'rollback not working'
    //#define ENABLE_TRANSACTION_SCOPE // failure is 'no output parameter value'
    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.Text;
    using System.Data.OracleClient;
    #if ENABLE_TRANSACTION_SCOPE
    using System.Transactions;
    #endif
    create table foo (c1 varchar2(50));
    create or replace procedure getstr (p1 out varchar2) as
    begin
    insert into foo(c1) values ('Hello World') returning c1 into p1;
    end;
    namespace TestOracleTransaction
    class Program
    static void Main(string[] args)
    #if ENABLE_TRANSACTION_SCOPE
    using (TransactionScope scope = new TransactionScope())
    #endif
    string connectionString = "Data Source=orcl;User ID=scott;Password=tiger";
    using (OracleConnection connection = new OracleConnection(connectionString))
    try
    connection.Open();
    #if ENABLE_TRANSACTION
    using (OracleTransaction transaction = connection.BeginTransaction())
    #endif
    try
    #if ENABLE_TRANSACTION_SCOPE
    if (Transaction.Current == null)
    throw new ArgumentException("no ambient transaction found for OracleClient");
    #endif
    OracleCommand command = connection.CreateCommand();
    #if ENABLE_TRANSACTION
    command.Transaction = transaction;
    #endif
    command.CommandType = CommandType.StoredProcedure;
    command.CommandText = "SCOTT.GETSTR";
    OracleParameter param = command.CreateParameter();
    param.ParameterName = "p1";
    param.Direction = ParameterDirection.Output;
    param.DbType = DbType.AnsiString;
    param.Size = 20;
    command.Parameters.Add(param);
    int count = command.ExecuteNonQuery();
    object value = command.Parameters["p1"].Value;
    Console.WriteLine("p1 value is {0}",value.ToString());
    #if ENABLE_TRANSACTION
    // FAILURE - rollback doesn't work when Transaction enabled
    transaction.Commit();
    //transaction.Rollback();
    #endif
    #if ENABLE_TRANSACTION_SCOPE
    scope.Complete();
    #endif
    catch (Exception ex)
    System.Console.WriteLine("ERROR: " + ex.Message);
    #if ENABLE_TRANSACTION
    transaction.Rollback();
    #endif
    finally
    if (connection.State == ConnectionState.Open)
    connection.Close();
    }

  • Taking snapshot of oracle tables to sql server using transactional replication is taking a long time

    Hi All,
    I am trying to replicate around 200 oracle tables onto sql server using transaction replication and it taking a long time i.e the initial snapshot is taking more than 24 hrs and it still going on.
    Is there any way to replicate those these tables faster?
    Kindly help me out..
    Thanks

    Hi,
    According to the description, I know the replication is working fine. But it is very slow. 
    1. Check the CPU usage on Oracle publisher and SQL Server. This issue may due to slow client processing (Oracle performance) or Network performance issues.
    2. Based on SQL Server 2008 Books Online ‘Performance Tuning for Oracle Publishers’ (http://msdn.microsoft.com/en-us/library/ms151179(SQL.100).aspx). You can enable the transaction
    job set and follow the instructions based on
    http://msdn.microsoft.com/en-us/library/ms147884(v=sql.100).aspx.
    2. You can enable replication agent logging to check the replication behavior. You may follow these steps to collect them:
    To enable Distribution Agent verbose logging. Please follow these steps:
    a. Open SQL Server Agent on the distribution server.
    b. Under Jobs folder, find out the Distribution Agent.
    c. Right click the job and choose Properties.
    d. Select Steps tap, it should be like this:
    e. Click Run agent and click Edit button, add following scripts by the end of scripts in the command box:
            -Output C:\Temp\OUTPUTFILE.txt -Outputverboselevel 2
    f. Exit the dialogs
     For more information about the steps, please refer to:
    http://support.microsoft.com/kb/312292
    Hope the information helps.
    Tracy Cai
    TechNet Community Support

  • Cant able to get the output while using session scope

    Hi
    I am using jdeveloper 11.1.1.5
    As i posted in the previous post i had made some changes still i am not getting proper output
    These are steps that i had followed for developing login page
    1.I had created a TaskFlow in adfc-config.xml such that if the login is success it navigates to the other page pls verfiy the link
    http://www.4shared.com/photo/5PNrf1hd/E028_2.html
    2.I had also changed the scope to session in adfc-config.xml
    http://www.4shared.com/photo/HtVVOw_B/E029.html
    3.This was my Welcome.jspx code
    <?xml version='1.0' encoding='UTF-8'?>
    <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1"
              xmlns:f="http://java.sun.com/jsf/core"
              xmlns:h="http://java.sun.com/jsf/html"
              xmlns:af="http://xmlns.oracle.com/adf/faces/rich">
      <jsp:directive.page contentType="text/html;charset=UTF-8"/>
      <f:view>
        <af:document id="d1" binding="#{sessionScope.backing_welcome.d1}">
          <af:form id="f1" binding="#{sessionScope.backing_welcome.f1}">
            <af:inputText label="UserName" binding="#{backing_welcome.it1}"
                          id="it1" value="#{sessionScope.backing_welcome.auser}"/>
            <af:inputText label="Password" binding="#{backing_welcome.it2}"
                          id="it2"
                          value="#{sessionScope.backing_welcome.apassword}"/>
            <af:commandButton text="Login"
                              binding="#{backing_welcome.cb1}" id="cb1"
                              action="#{backing_welcome.cb9_action}"/>
          </af:form>
        </af:document>
      </f:view>
      <!--oracle-jdev-comment:auto-binding-backing-bean-name:backing_welcome-->
    </jsp:root>3.This was my welcome.java backing bean for welcome.jspx page
        public String getAuser() {
            return auser;
        public void setApassword(String apassword) {
            this.apassword = apassword;
        public String getApassword() {
            return apassword;
        public String cb9_action() {
            String returnStr="error";
            System.out.println("Inside loginBtn_action");
            BindingContainer bindings = getBindings();
            OperationBinding operationBinding = bindings.getOperationBinding("checkLoginCredentials1");
            operationBinding.getParamsMap().put("p_user", auser);
            operationBinding.getParamsMap().put("p_pwd", apassword);
        operationBinding.execute();
        Object result = operationBinding.execute();
        if (!operationBinding.getErrors().isEmpty()) {
            returnStr= "success";
        System.out.println("returnStr= " + returnStr);
               return returnStr;
        }While i run my program no output is displayed!! No logs also been recorded!!
    Could any body pls help me!!

    thank you jhon!
    If i am not using any binding i m getting error as
    javax.el.PropertyNotFoundException: Target Unreachable, 'backing_welcome' returned nullI had used this jspx code
    <?xml version='1.0' encoding='UTF-8'?>
    <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1"
              xmlns:f="http://java.sun.com/jsf/core"
              xmlns:h="http://java.sun.com/jsf/html"
              xmlns:af="http://xmlns.oracle.com/adf/faces/rich">
      <jsp:directive.page contentType="text/html;charset=UTF-8"/>
      <f:view>
        <af:document id="d1" >
          <af:form id="f1" >
            <af:inputText label="UserName"
                          id="it1" value="#{sessionScope.backing_welcome.auser}"/>
            <af:inputText label="Password"
                          id="it2"
                          value="#{sessionScope.backing_welcome.apassword}"/>
            <af:commandButton text="Login"
                               id="cb1"
                              action="#{sessionScope.backing_welcome.cb9_action}"/>
          </af:form>
        </af:document>
      </f:view>
      <!--oracle-jdev-comment:auto-binding-backing-bean-name:backing_welcome-->
    </jsp:root>Give me some guide how to use session scope!! Since i read all the documents i m not getting any proper output

  • Using FILTER function in oracle answers

    Gurus,
    I have a question related to using Filter function in oracle answers.
    When trying to insert a Filter (expr) Using (expr) clause in the formula area of a fact table field, It errored out with msg saying about using a wrong measure.
    I know this can be done with a case expression but I tried filter clause since this is available in oracle answers.
    Please help me figuring out this scenario.
    Thanks.

    David / Raghu - Thanks for u'r replies and apologizes for not posting question with proper material.
    Am posting my code and the error message from the screen.
    Code :
    IFNULL(FILTER("Fact - MBS Loan Transactions"."OUTSTANDING PRINCIPAL" USING "Dim - MBS Loan"."LOAN TYPE HPD/HDC/BNK" = 'HDC'),0)
    Error :
    nQSError: 10058] A general error has occurred. [nQSError: 22032] Function FILTER requires at least one measure attribute in its first argument. (HY000)
    SQL Issued: SELECT "Dim - MBS Loan"."LOAN AMOUNT", "Dim - MBS Loan"."LOAN TYPE HPD/HDC/BNK", "Dim - MBS Loan"."LOAN TYPE SEN/SUB", "Dim - MBS Project"."PROJECT NAME", "Dim - MBS Project"."PROJECT NUMBER", "Fact - MBS Loan Transactions"."AR BALANCE INTEREST", "Fact - MBS Loan Transactions"."GL BALANCE INTEREST", IFNULL(FILTER("Fact - MBS Loan Transactions"."OUTSTANDING PRINCIPAL" USING "Dim - MBS Loan"."LOAN TYPE HPD/HDC/BNK" = 'HDC'),0) FROM "Financials - MBS"
    OK (Ignore Error)
    Please continue answering my queries. Since am a newbie your answers won't be just a reply but it's actually learning for me.
    Thanks.

  • Transactional Behaviour of Oracle B2B 11g

    Hi Gurus/Anuj,
    Can you please explain Transactional Behaviour in Oracle B2B 11g?
    For a Inbound Interface I have three Mediators(Mediator M1,M2 and M3)
    Partner push a file at file location --> B2B Interface used in M1 ,through B2B Binding,picks the FIle and brings to SOA and--> Give it to M2 and M3.
    I need to perform Error Handling in this case..
    M1 M2 and M3 are Asynchronous,Synch and Synch in nature and I guess M1 will propogate it's transaction to M2 and M2 will propogate it's transaction to M3.
    Routing rules are Sequential..
    Note : Fault policies are applicable to parallel routing rules only. For sequential routing rules, the fault goes back to the caller and it is the responsibility of the caller to handle the fault.
    Am I correct in understanding that :
    B2B Adapter in M1 is the caller and M2 and M3 ,as being Synchronous,will follow M1'a transaction.
    And if a Fault goes into M2 and M3,it will go back to the caller,means M1.
    And in M1 we can have Fault-Handling.
    Also please explain Transactional Behaviour in Oracle B2B 11g?
    Is B2B is Asynchronous in nature?
    Is B2B Adapter a Transactional Adapter?
    What category of JCA adapter is Oracle B2B adapter?
    Thanks
    Vivek
    Edited by: Vivek on May 19, 2011 11:41 PM
    Edited by: Vivek on May 19, 2011 11:54 PM

    Hi Vivek,
    Also please explain Transactional Behaviour in Oracle B2B 11g?Oracle B2B depends upon the underlying transport being used for transactional behavior. As far as transaction propagation is concerned, we never had any such need in B2B communication.
    Am I correct in understanding that :
    B2B Adapter in M1 is the caller and M2 and M3 ,as being Synchronous,will follow M1'a transaction.
    And if a Fault goes into M2 and M3,it will go back to the caller,means M1.
    And in M1 we can have Fault-Handling.If you are using AQ interface of B2B adapter with XA Data Source then that adapter can participate in an XA global transaction that can span multiple resources. In this transaction, the application server acts as the coordinating transaction manager with multiple databases (or other resources such as JMS), each of which is involved in a single transaction.
    If you are using JMS interface of B2B adapter with XA Connection factor then that adapter can also participate in an XA global transaction that can span multiple resources.
    If you are using Default (Fabric) interface of B2B adapter then it does not participate in global transaction, rather it starts it's own local transaction and executes in that. So it will totally depend upon the interface you are using with B2B adapter that it will start and propagate a global transaction or will not participate in a global transaction. Moreover, if B2B adapter is starting a transaction and propagating it to a async service then that sync service will start a new local transaction and further sync services may execute in that transaction. As soon as the control comes back to B2B adapter, it will commit the transaction.
    Is B2B is Asynchronous in nature?B2B can be used for both sync and async calls (between partners). B2B is async when communicating with middleware.
    Is B2B Adapter a Transactional Adapter?Explained above
    What category of JCA adapter is Oracle B2B adapter?No special category. It is a specific adapter for Oracle SOA SCA composites to facilitate them in communication with Oracle B2B. You may or may not use this adapter in SOA SCA composites.
    Regards,
    Anuj

  • Guide to differences between SQL Server Transact SQL and Oracle PL/SQL

    Does anyone know of a good book (or online guide) that has an in-depth comparison of the differences between SQL Server Transact SQL and Oracle PL/SQL? (Something more than a beginner's guide)

    Hello,
    Below links will surely be helpful
    Discontinued features in SQL 2012
    Depricated features in SQL Server 2012
    Please mark this reply as the answer or vote as helpful, as appropriate, to make it useful for other readers

  • Can we call and execute a request set using db adapter or oracle apps adapt

    Hi,
    Can we call and execute a request set(which executes a set of packages in a sequence) using db adapter or oracle apps adapter similar to calling a stored procedure and concurrent program?
    thanks,
    RV

    1) In BPEL call the DBAdapter in a sequence, make sure you set the partnerlink 'property' to transaction=participate.
    2) Or create a package that calls the other packages in a sequence
    Marc
    http://orasoa.blogspot.com

  • How the transaction executing in Oracle bpm 10g

    Hi,
    i want to know "how the database transaction executing in Oracle bpm 10g",
    My Scenario is 'i have two data tables, i need to update the same information in two different data tables with OBPM 10g. let's imagine, info is updated in 1st data table, and is some exeption occured while updating the same info in second da table, so i want to roll back the info which is updated in first db table'.
    can any one suggest the approach how can i proceed?
    Thanks.
    Sudhee

    Hi Omkar,
    Please check the following code.
    DECLARE
      repid REPORT_OBJECT;
      v_rep VARCHAR2(100);
      rep_status VARCHAR2(20);
      plid ParamList;
    BEGIN
      plid := Get_parameter_List('tmp');
      IF NOT Id_Null(plid) THEN
      Destroy_parameter_List( plid );
      END IF;
      plid := Create_parameter_List('tmp');
      add_parameter(plid,'p_parameter',text_parameter,to_char(:POLICY.POLICY_NO));
      Add_parameter(plid, 'PARAMFORM', TEXT_parameter, 'NO');
      repid := FIND_REPORT_OBJECT('POL_REP');
      SET_REPORT_OBJECT_PROPERTY(repid,REPORT_COMM_MODE,SYNCHRONOUS);
      SET_REPORT_OBJECT_PROPERTY(repid,REPORT_DESTYPE,cache);
      SET_REPORT_OBJECT_PROPERTY(repid,REPORT_DESFORMAT,'PDF');
      SET_REPORT_OBJECT_PROPERTY(repid,REPORT_OTHER, 'paramform=no');
      v_rep := RUN_REPORT_OBJECT(repid,plid);
      rep_status := REPORT_OBJECT_STATUS(v_rep);
      WHILE rep_status in ('RUNNING','OPENING_REPORT','ENQUEUED')
      LOOP
      rep_status := report_object_status(v_rep);
      END LOOP;
      WEB.SHOW_DOCUMENT('http://'||'LENOVO-428E9E41'||'8889'||'/reports/rwservlet/getjobid'||substr(v_rep,instr(v_rep,'_',-1)+1)||'?
      '||'server=prod_report_server&P_parameter='||:POLICY.POLICY_NO||
      '&paramform=no');
    END;
    I am used to Start the Report sever   'Rwserver Server=prod_Report_Server Start'
    OracleAS Report Services
    Version :-   10.1.2.0.2
    Name    :-   prod_report_server
    Status  :-   Server is Shutting down
    Jobs in Queue  0
    Active Engines  0
    I got the Following Error when I trying to run the Report
    FRM-41211: Integration error:SSL failure running another product
    Thanks and Regards,
    Faziludeen

  • Transaction Process in oracle forms

    Hello Experts,            
                          I am new in Oracle forms and reports.I am using oracle forms 11g with weblogic server 10.3.5 at windows 7 platform.
    I have 3 tables: Table A,table B,table C. there are some insert commands for table B and table C in a button say SAVE in oracle form.I have also an update command for Table A.
    Button SAVE has code : insert into Table B; insert into Table C; update table A; If updating into table A is successful then all changes would be commited. If update command for Table A is unsuccessful Then all changes in database would be rollbacked. For this I have tried to use transaction but there is no support for autonomous transaction in oracle froms as my search. please help me how to do this. Thank You regards aaditya.

    Why are you manually writing the DML statements to insert and update your tables?  Did you use the Forms DataBlock Wizard when you created your datablocks?  If not, I recommend you use the Wizard.  Oracle Forms is tightly integrated with the Oracle database.  This means Forms will perform a lot of the things you would normally have to write yourself; such as the SQL Statements to display data (SELECT), add new records (INSERT) or modify (UPDATE) and delete (DELETE) a record.
    If you need to perform a ROLLBACK, understand that when you clear a block and don't save, Forms will automatically perform a ROLLBACK and release any locks it may have placed on a table/row.  Additionally, if you need to explicitly perform a rollback, you can do this when you call the CLEAR_FORM() built by passing "FULL_ROLLBACK" to the "rollback_mode" parameter.  For example: CLEAR_FORM(NO_VALIDATE, FULL_ROLLBACK);
    If you must perform an Autonomous Transaction from Forms, the best and really only way to do this would be to create a Database Procedure that invokes the AUTONOMOUS TRANSACTIONS PRAGMA then call this procedure from your Form.
    If you absolutely must write your own DML in your Form, then you can check the FORMS_SUCCESS system variable to see if the previous command executed successfully. Using Priyasagi's example, modify the code as follows:
    DECLARE
      n_success NUMBER := 0;
    BEGIN
    insert into table_b
    IF ( FORMS_SUCCESS) THEN
      n_success := n_success + 1;
    END IF;
    insert into table_c
    IF (FORMS_SUCCESS) THEN
      n_success := n_success +1;
    END IF;
    update table_a
    IF (FORMS_SUCCESS) THEN
      n_success := n_success +1;
    END IF;
    IF ( n_success =3 ) THEN
    commit;
    ELSE
      CLEAR_FORM(NO_VALIDATE, FULL_ROLLBACK);
    END IF:
    Craig...

  • Why still use old versions of Oracle??

    Hi All,
    I was just wondering what are some reasons why organizations continue to use older versions of Oracle like 7 and 8i when we are now at version 11g?
    I would love to hear what everyone has to say.
    Thanks,
    JrOraDBA

    >
    Mogens Norgaard (Oracle Insights) says that most users only need version
    7.3 and that advances since then are for the UPS's and eBays of this world.
    Disagree. Totally.
    Oracle OPS cannot be compared to Oracle RAC. 7.3's partition views cannot be compared to
    proper partitioning. And then what about features such as FGAC, rman, ASM, Apex, materialised
    views - just to mention a few?I readily accept that Oracle is a good deal more sophisticated now than it was in
    version 7. I think that Norgaard - a man with no axe to grind with Oracle and who
    is a highly respected Oracle database practitioner - is talking about an "average Joe Sixpack
    run-of-the-mill OLTP system".
    Why do you think he made this point -
    "Most customers really only need Oracle version 7.3 with respect to features"? (p 92 of the book).
    All of these we use. In production. For 24x7 corporate mission critical systems. It would be
    laughable to suggest that these could run on Oracle 7 and provide as a robust, flexible,
    performant and scalable solution as using 10g or 11g.I accept this also - it's just that Norgaard is saying that "most" customers don't need
    Oracle after 7.3.
    I would tend to agree - in particular, the (totally free) functionality available
    from, say, PostgreSQL and/or Firebird gives you more than this.
    Open Source databases? Even more laughable. There is no way that these can compare
    to Oracle. Not when doing intensive processing. Not when needing scalability, availability
    and redundancy.Look [url http://kevinclosson.wordpress.com/2007/07/18/application-server-benchmark-proves-postgresql-is-the-best-enterprise-database-server-new-specjappserver2004-cost-metric-introduced-too/]here and in particular at the post of Clemens Eisserer
    Open source databases have come on in leaps and bounds in recent
    years and represent a value for money solution in many cases where
    an Oracle licence would be prohibitive.
    I have a SE database on a small 2 CPU server that at this very moment is dealing
    with up to 12,000 rows inserted every second into a single table.. after which that table
    (an hour later containing around 40 million rows) is processed. You want me to believe
    that an Open Source database can do the same? Then you will need to prove that cause
    I don't think for a single moment that Open Source databases like mySQL, PostgreSQL
    and Firebird are anywhere as capable and able as Oracle.Also, take a look at VoltDB - an Open Source high-performance database from
    Michael Stonebraker - SQL and ACID in a novel new design.
    There are "Lies, damned lies, statistics" and then* there are database benchmarks.
    How big are your rows? I'm running Hammerora at the moment against an Oracle 10
    XE instance and I'm getting Y no. of rows (I don't think that I'm allowed release any benchmarking
    that I do "into the wild") inserted/second - how meaningful is that? What is the disk setup?
    [url http://www.ib-aid.com/articles/item104]See here you have a very thorough
    benchmark with inserts of 24K rows/sec into a Firebird database.
    Table 3: Loading operations Description Value Time to load
    ~70 hours
    Total records inserted
    6.2 billions
    Average insertion speed
    24500 records/second
    Average record size
    146 bytes (min 13 bytes, max – 600 bytes)
    Transactions
    646489I don't want to get into a religious war here ;) - particularly since this forum is hosted by
    Oracle - I was just trying to explain to the OP why certain customers aren't interested in
    the latest "bells and whistles" version of Oracle - 1 reason is that powerful software
    is available for free elsewhere - although in terms of features, Oracle does have
    the honour of the "kitchen-sink" implementation with a rich feature-set.
    Paul...

  • How to log the exception using Log action in Oracle Service Bus

    Hi,
    Whenever an exception is raised how to log the exception using Log action in oracle service bus.After logging where I have to find the logged message.

    It would be in the log file for the managed server which ran the request. If you are logging the message at a lower level than your app server, however, you won't see it. You should be logging the exception at Error level.

  • Can we use Dynamic SQL in Oracle Reports ?

    Hi ,
    Can we use Dynamic SQL in Oracle Reports ?
    If yes please give some examples .
    Thanx
    srini

    I believe the built-in package SRW.Do_Sql is what you are looking for
    Example from the document:
    /* Suppose you want to create a "table of contents" by getting the
    ** first character of a columns value, and page number on which its
    ** field fires to print. Assume that you want to put the "table of
    contents"
    ** into a table named SHIP. You could write the following construct:
    DECLARE
    PAGE_NO NUMBER;
    PAGE_FOR INDEX NUMBER;
    SORT_CHAR CHAR(1);
    CMD_LINE CHAR(200);
    BEGIN
    SORT_CHAR := :SORT_NAME ;
    IF :CALLED = Y THEN
         SRW.GET_PAGE_NUM(PAGE_FOR_INDEX);
         SRW.USER_EXIT(RWECOP PAGE_FOR_INDEX
         P_START_PAGENO);
         SRW.MESSAGE(2,TO_CHAR(:P_START_PAGENO));
    END IF;
    SRW.GET_PAGE_NUM(PAGE_NO);
    CMD_LINE := INSERT INTO SHIP VALUES
                          (||SORT_CHAR||,||TO_CHAR(PAGE_NO)||);
    SRW.MESSAGE(2,CMD_LINE);
    SRW.DO_SQL(CMD_LINE);
    COMMIT;
    EXCEPTION
      WHEN DUP_VAL_ON_INDEX THEN
            NULL;
      WHEN SRW.DO_SQL_FAILURE THEN
            SRW.MESSAGE(1,FAILED TO INSERT ROW INTO SHIP TABLE);
      WHEN OTHERS THEN
           COMMIT;
    END;

  • How to use transaction FPOP

    Hi,  All,
    I am trying to do delta upload for FI-CA business partner items 0FC_BP_ITEMS. I see there is a documentation say "Before you start the delta extraction, you should update the delta queue for this DataSource in the plugged-in OLTP system using transaction FPOP.". After my initial load, I made a new posting. And then I ran FPOP, and then I run delta update. But I am told "No new data since the last delta update". So seems delta did not get my new posting. Is there anybody can give some advice, or tell me how to use FPOP? I am not sure how to create the Variant in FPOP. Thanks a lot!
    Meiying

    HI ,
    Steps for FPOP
    1. Under General Selection tab input Date ID and Identification. - > Combination of this must be Unique.
    2.Steps to create Variant - >Under technical settings tab , select tab for variant maintenance -> press F7 to create a new variant  -> give a variant name -> Select number of intervals and give number value as 999 and execute.
    New Variant is created.
    3.Use the new variant, save all settings and "Schedule the program run".
    4.Click on refresh to track the status of the program run.
    5.Goto RSA7 and check for the Delta Queue - new values will be populated.

  • Schedule Background job using transaction CATM

    Hi all,
    Since we cannot schedule a background job using transaction CATM, I have created a program calling the CATM transaction through batch-input.
    I have done a recording and entered the coding in a Z-program. For a vendor, I have recorded time in CAT2 for multiple purchase orders.
    After entering the vendor number in CATM, all the purchase orders showed up. I have clicked 'select all' and posted.
    When I run the program in the background, it posts only for one purchase order.
    When I  run the program in the foreground, using the Select All-button it only proceeds with the first line in my list of PO's.
    How to read the whole stack and post the whole stack of purchase orders? 
    Please help me out with this.
    Thanks
    Regards
    Srinivasan Desingh
    408 368 3837

    Hi,
    When I run the program in the background, it posts only for one purchase order.
    When I  run the program in the foreground, using the Select All-button it only proceeds with the first line in my list of PO's.
    See..it's a Z-program so Its difficult to answer without checking the program. But I think, you should check your BDC again from Debugging, with the help of your abaper. You will find, why its is processing only one entry.
    Regards
    Shishir

Maybe you are looking for

  • Appending to a Word document

    Two items: 1) Is there a way to append to an already existing Word document? I can create the Word document through AW and it updates when then program runs, but if the file has been created outside of AW, then the .doc does not get updated. 2) Rathe

  • Photosmart B109 not printing.

    After setup, installing software and ink cartridges my printer goes through the motions to print, but no ink appears on the page, what can I do?

  • Deleted an Effect any way to get it back PSE 7

    help, ive deleted the glow effect by accident, thinking it would remove the glow from the image.... is there any way to get this back? thanks in advance

  • Ticker not loading from any column

    is it possible to have a ticker not loading any data (from any column) ? only scroll some text on the dashboard page. thank you very much!

  • What happened to my history after upgrading to os i6

    I upgraded to ISo6 for my ipad.  Now I o longer have my "history" on my web page visits.   How do I get that back?