Unable to enlist in a distributed transaction (Windows7, Oracle 11G R1)

Hi,
I have a .Net application running on Windows 7 x64 using VisualStudio2008 and Oracle 11G R1 32bit client
In it I call a webservice calling another webservice, this requires to use oramts that interfaces with Microsoft DTC. However I'm getting the following error when calling the service method:
"Unable to enlist in a distributed transaction"
I have checked the following:
- Ora MTS is installed
- DTC is running, the security settings allow AX transactions (in fact I just allowed everything)
- Network services have the permission to access oracle dlls
- The registry key HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\MTxOCI contains the following: "OracleXaLib"="xa80.dll" "OracleSqlLib"="SQLLib80.dll" "OracleOciLib"="oci.dll" (not sure if this is right)
What is it I'm doing wrong ? Does this version of Oracle work correctly on W7 ?
By the way it works fine on Windows XP !
I've spend quite some time trying to find a resolution..
Thanks!

I think I answered my own question
It seems that MSDTC is not supported by Oracle 11G R1 on Windows x64 !
All Oracle Database components are supported on Windows x64 with the following exceptions:
•Oracle Services for Microsoft Transaction Server are not supported on Windows Vista. As a result, all Oracle Windows data access drivers on Windows Vista that use Oracle Services for Microsoft Transaction Server to enlist in Microsoft Distributed Transaction Coordinator (MSDTC) coordinated transactions cannot participate in those coordinated transactions. These data access drivers include Oracle Data Provider for .NET, Oracle Provider for OLE DB, Oracle Objects for OLE, and ODBC. Check OracleMetaLink for up to date information on Oracle Services for Microsoft Transaction Server certification with Windows Vista.
http://download.oracle.com/docs/cd/B28359_01/install.111/b32006/reqs.htm#CHDCEFIJ
Edited by: 845528 on 18 mars 2011 05:05

Similar Messages

  • ORA-00164 Autonomous and Distributed Transactions in Oracle 8i - Forms6i

    Hi, in Forms6i I'm using Autonomous transactions (insert and update), and I want to use also a database link to make a query in a remote database (Distributed transaction). Even when this request are done in different PL/SQL within Forms6i, I get the error message ORA-00164 Distributed transactions disallowed within autonomous transactions. Is there a way to avoid this error message?
    Thanx

    Hello,
    I had a similar Problem, when I tried to log errormessages while selecting by db-link.
    I use pipes now to send the errormessages. The pipe is read at regular intervals and then I can Insert without using autonomous transactions.
    I hope, this will help you
    Marcus

  • What logging implementation for distributed transaction on Oracle 8?

    Hi,
    I have a script running on Oracle 8 that accesses remote databases. I would like to create a transaction log that creates log entries in another table as the script progresses. I initially tried creating a logging procedure that used PRAGMA AUTONOMOUS_TRANSACTION but this failed because of this error message:
    ORA-00164: autonomous transaction disallowed within distributed transaction
    I can't set the transaction to read only as database updates are part of the script.
    Is there another strategy that I could use to create the logs I need?
    Cheers,
    kj

    Hi,
    I have a script running on Oracle 8 that accesses remote databases. I would like to create a transaction log that creates log entries in another table as the script progresses. I initially tried creating a logging procedure that used PRAGMA AUTONOMOUS_TRANSACTION but this failed because of this error message:
    ORA-00164: autonomous transaction disallowed within distributed transaction
    I can't set the transaction to read only as database updates are part of the script.
    Is there another strategy that I could use to create the logs I need?
    Cheers,
    kj

  • Using Distributed Transaction with oracle 9i and VB

    How to I get distributed transaction to work between a COM + object in VB and oracle using MSDAORA.1 driver? I keep getting the following error:
    error number:
    -2147168229
    error description:
    Cannot connect to the transaction manager or the transaction manager is unavailable.

    Oracle 9i works great with VB.NET. I would recommend you to use Oracle Data Provider .NET (ODP.NET) as a database driver
    http://otn.oracle.com/tech/windows/odpnet/content.html
    for better performance and get full advantage of Oracle 9i features.
    Regards
    Jagriti
    OTN Team @IDC

  • How to configure distributed transaction in Oracle Database Gateway for ODBC? (ORA-02047)

    I am connecting from Oracle to another database server (MS SQL Server, DB2 the error message is the same) through an ODBC connection using Oracle SQL Developer. (This is how I set up)
    I want to query the schema of a non-Oracle database using the data dictionary mapping of the Oracle Database Gateway for ODBC.
    This works well:
    select * from all_tables@katimssql;
    But this doesn't:
    create table alltables_mssql as
    select * from all_tables@katimssql;
    Output:
    Error report:
    SQL Error: ORA-00604: error occurred at recursive SQL level 1
    ORA-02047: cannot join the distributed transaction in progress
    ORA-06512: at "SYS.HS$_DDTF_SQLTABLES", line 58
    ORA-06512: at line 1
    Does anyone know the solution of this?
    Thanks in advance,
    Kata
    Details:
    Oracle Database 11g Express Edition Release 11.2.0.2.0
    Microsoft SQL Server 2008 (SP2) - 10.0.4000.0 (X64)
    ODBC Driver: SQL Server Native Client 11.0 (32 bit)
    initkatimssql.ora:
    HS_FDS_CONNECT_INFO=katimssql
    HS_FDS_TRACE_LEVEL = ON
    HS_TRANSACTION_MODEL = READ_ONLY_AUTOCOMMIT
    I tried these, none of them worked, the error message is the same.
    HS_FDS_TRACE_LEVEL = off
    HS_TRANSACTION_MODEL = SINGLE_SITE
    HS_TRANSACTION_MODEL = READ_ONLY_AUTOCOMMIT
    HS_TRANSACTION_MODEL = READ_ONLY

    Hi Kata,
    this won't work as the ALL_TABLES is not a table that exists in your SQl Server  - instead it is a "mimicked" table. This means the gateway will check if you have on your SQL Server a table called all_tables and when there's no table it will start an internal mechanism to check out what sort of tables exist in your SQL Server database. So the gateway is starting internally another transaction to get details from the foreign database and DG4ODBC can't participate in distributed transactions at all. Instead of using all_tables you have to use a real SQL Server table like SQ Server sys.objects or sys.tables.
    - Klaus

  • Weblogic 5.1, Distributed Transaction and Oracle Database Link

    We are planning to add a new functionality to run in Weblogic server and it
    needs to update tables in two different Oracle databases. Since we are using
    Weblogic 5.1 and it is unrealistic to upgrade to 6.1 in short term, we have
    to deal with the fact that distributed transaction is not supported by JTS
    on 5.1.
    One workaround we can think of is to utilize Oracle database link. Instead
    of having two connection pools, the application talks to only one database
    and access the tables on the other ones through Oracle database link.
    Therefore, when a session bean tries to update two tables on database 1 in
    one transaction, one of the tables is just a link to the other database. We
    hope that even though distributed transaction is not supported by JTS in
    Weblogic 5.1, but since it is supported by Orable, it would work.
    Do you think the above workaround would work? Does anyone have experience on
    something like that?
    Thanks in advance,
    David Chen
    [email protected]

    Hi. You should be able to use any JDBC driver with WebLogic 5.1.
    It may be the JVM that complains, if you use too old a JVM...
    Joe Weinstein at BEA Systems

  • Problem in Distributed transaction with Oracle 8.1.7 and Weblogic 7.0

              Hi,
              I am using two unmanaged weblogic 7.0 servers and oracle 8.1.7 enterprise edition.
              I am using oracle.jdbc.xa.client.OracleXADataSource for creating connection pool
              in weblogic. The pool gets created fine but when connection it is getting used
              it throws up following error.
              java.sql.SQLException: ORA-02044: transaction manager login denied: transaction
              in progress
              ORA-06512: at "SYS.JAVA_XA", line 0
              ORA-06512: at line 1
              at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:168)
              at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:208)
              at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:543)
              at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1405)
              at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:822)
              at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:1446)
              at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:1371)
              at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1900)
              at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:363)
              at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:407)
              at oracle.jdbc.xa.client.OracleXAResource.start(OracleXAResource.java:171)
              at weblogic.jdbc.jta.VendorXAResource.start(VendorXAResource.java:41)
              at weblogic.jdbc.jta.DataSource.start(DataSource.java:569)
              I don't know what is causing this problem.Please send me the pointers.
              Regards,
              Vikash
              

    ID is a NUMBER and id.toString() is not a number, for
    example it ca be a null reference.
    well we tryed also this version :
    ps.setLong(1, id.longValue());
    moreover the exception wasn't thrown for the value of id :56 but was thrown for the value of id : 88. Hence I think it is a case of something other than my code.
    michal

  • Distributed Transactions in Oracle

    I have a SP which has explicit commit but it fails in DTC with the following error:
    ORA-02089: COMMIT is not allowed in a subordinate session
    The functionality that I want to achieve is the Oracle procedure should have commit / rollback when its done and also should praticipate in the DTC.
    Iam using .NET transactionscope.

    Hi,
    You want the procedure to commit regardless of whether the distrib txn commits or rolls back? If you want to do that you'll want to declare the stored procedure with PRAGMA AUTONOMOUS_TRANSACTION
    I dont see a way, or reason to, have the procedure under BOTH local txn control and distrib txn control.
    Hope it helps,
    Greg

  • Unable to full text index the contents in Oracle 11g UCM

    Hi,
    I am new to the Oracle UCM 11g.
    i am unable to full text index the content files that are check-in into the Oracle UCM.
    I have added the below entries in config.cfg file:
    SearchIndexerEngineName=OracleTextSearch
    IndexerDatabaseProviderName= SystemDatabase
    AdditionalEscapeChars=-;#
    While performing the indexing operation using Repository Manager only, metadata of the content files are indexed, but full text is not getting indexed.
    What is missing here in Oracle UCM for not fulltext indexing the contents? What configurations do i need to do for this so that i can search perform the full text search on the Contents in Oracle UCM?
    Thanks in Advance
    Dipesh

    Hi Srinath,
    Collection rebuild cycle runs perfectly fine. After enabling tracing for Indexer and systemdatabse, i got the below info in the log:
    "Finished rebuilding the search index with a total of 123 files successfully indexed. A total of 0 files had a full text index."
    The below is the details of the activeindex.hda:
    <?hda version="11gR1-11.1.1.3.0-idcprod1-100505T121221" jcharset=UTF8 encoding=utf-8?>
    @Properties LocalData
    UseImplicitZonedSecurityField=true
    blFieldTypes=
    ActiveIndex=index1
    blDateFormat=M/d{yy}{ h:mm[:ss]{ a}}!mAM,PM!tGMT+05:30
    @end
    @ResultSet SearchCollections
    7
    sCollectionID
    sDescription
    sVerityLocale
    sProfile
    sLocation
    sFlag
    sUrlScript
    TestHost
    !csSearchDefaultSearchCollection
    English-US
    local
    index1
    enabled
    <$URL$>
    @end
    Is it possible that OracleTestSearch Component is missing in Oracle UCM?
    Thanks
    Dipesh

  • ORA-00603 by using transactions. Unable to enlist in distributed transactio

    I have a test application built with odp.net which does batches of inserts. The program might call a method that inserts 1000 rows ten times. I want all of these to be in one transaction so if I want to rollback I can restart the whole procedure. So I started a transaction and enlisted each connection to use it.
    This seems to work OK for a while, but maybe after 5-10 calls to my batch-insert method I receive an ORA-00603 exception. In some rare cases I also get "Unable to enlist connection in distributed transaction."
    Can someone help me or shed some light in how to get this to work?
    From alert.log:
    Incident details in: d:\app\exkatr\diag\rdbms\testdb\testdb\incident\incdir_63768\testdb_ora_8848_i63768.trc
    Errors in file d:\app\exkatr\diag\rdbms\testdb\testdb\incident\incdir_63768\testdb_ora_8848_i63768.trc:
    ORA-00603: ORACLE server session terminated by fatal error
    ORA-00600: internal error code, arguments: [ktcirs:hds], [0x01AF68078], [0x006F10BF0], [0x021728078], [], [], [], [], [], [], [], []
    ORA-00600: internal error code, arguments: [ktcirs:hds], [0x01AF68078], [0x006F10BF0], [0x021728078], [], [], [], [], [], [], [], []
    ORA-00600: internal error code, arguments: [ktcirs:hds], [0x01AF68078], [0x006F10BF0], [0x021728078], [], [], [], [], [], [], [], []I tried running tkprof on the trc file but it didn't do anything. The generated file only looks like this:
    TKPROF: Release 11.1.0.7.0 - Production on On Jul 21 11:40:37 2010
    Copyright (c) 1982, 2007, Oracle.  All rights reserved.
    Trace file: d:\app\exkatr\diag\rdbms\testdb\testdb\incident\incdir_63768\testdb_ora_8848_i63768.trc
    Sort options: default
    count    = number of times OCI procedure was executed
    cpu      = cpu time in seconds executing
    elapsed  = elapsed time in seconds executing
    disk     = number of physical reads of buffers from disk
    query    = number of buffers gotten for consistent read
    current  = number of buffers gotten in current mode (usually for update)
    rows     = number of rows processed by the fetch or execute call
    Trace file: d:\app\exkatr\diag\rdbms\testdb\testdb\incident\incdir_63768\testdb_ora_8848_i63768.trc
    Trace file compatibility: 10.01.00
    Sort options: default
           0  session in tracefile.
           0  user  SQL statements in trace file.
           0  internal SQL statements in trace file.
           0  SQL statements in trace file.
           0  unique SQL statements in trace file.
        7741  lines in trace file.
           0  elapsed seconds in trace file.

    Have a look at Bug 8539335 (or 7510712)

  • OLE DB provider 'MSDAORA' was unable to begin a distributed transaction

    Hello!
    I have following problem:
    When I create a linked Server in MSSQL-Server 2000 with "Microsoft OLE DB Provider for Oracle" (MSDAORA) to Oracle 9.2i and try to create a transaction, i get following error message:
    The operation could not be performed because the OLE DB provider 'MSDAORA' was unable to begin a distributed transaction.
    OLE DB error trace [OLE/DB Provider 'MSDAORA' ITransactionJoin::JoinTransaction returned 0x8004d01b].
    I also tried to use the "Oracle Provider for OLE DB", but with this provider i could even not get a connection to the Oracle Server. Error Message:
    Error 7302: Could not create an instance of OLE DB provider 'OraOLEDB.Oracle'. OLE DB error trace [Non-interface error: CoCreate of DSO for OraOLEDB.Oracle returned 0x80040154].
    Can anybody help me?
    (sorry for my bad english)

    I don't know if this is much help, but I came across this on the MS site:
    http://support.microsoft.com/kb/280106
    Message 9
    Error 7391: The operation could not be performed because the OLE DB provider 'MSDAORA' does not support distributed transactions. OLE DB error trace [OLE/DB Provider 'MSDAORA' ITransactionJoin::JoinTransaction returned 0x8004d01b]
    Verify that the OCI versions are registered correctly as described earlier in this article.
    Note If the registry entries are all correct, the MtxOCI.dll file is loaded. If the MtxOCI.dll file is not loaded, you cannot perform distributed transactions against Oracle by using Microsoft OLE DB Provider for Oracle or by using Microsoft ODBC Driver for Oracle. If you are using a third-party provider and you receive Error 7391, verify that the OLE DB provider that you are using supports distributed transactions. If the OLE DB provider does support distributed transactions, verify that the Microsoft Distributed Transaction Coordinator (MSDTC) is running.

  • Does Oracle 8.1.5 with weblogic 6.1 sp2 suppports Distributed Transactions ---A really night Mare

              Which version of jdbc thin driver should i use to achieve distributed transaction
              with oracle 8.1.5 in weblogic 6.1 sp2
              right now if iam using the driver classes provided in weblogic.jar iam gettig the
              following Exception
              AccountBean.ejbCreate( id = accountId, initial balance = $ 3000.0)
              java.sql.SQLException: XA error: XAER_RMERR : A resource manager error has occured
              in the transaction branch start(
              ) failed on resource 'OracleXAPool' Unexpected error during start for XAResource
              'OracleXAPool': null
              at weblogic.jdbc.jta.DataSource.enlist(DataSource.java:1044)
              at weblogic.jdbc.jta.DataSource.refreshXAConnAndEnlist(DataSource.java:1010)
              at weblogic.jdbc.jta.Connection.getXAConn(Connection.java:148)
              at weblogic.jdbc.jta.Connection.prepareStatement(Connection.java:226)
              at weblogic.jdbc.rmi.internal.ConnectionImpl.prepareStatement(ConnectionImpl.java:135)
              at weblogic.jdbc.rmi.SerialConnection.prepareStatement(SerialConnection.java:76)
              at examples.ejb.basic.beanManaged.AccountBean.ejbCreate(Unknown Source)
              at examples.ejb.basic.beanManaged.AccountBean_g1748h_Impl.ejbCreate(AccountBean_g1748h_Impl.java:172)
              at java.lang.reflect.Method.invoke(Native Method)
              at weblogic.ejb20.manager.DBManager.create(DBManager.java:492)
              at weblogic.ejb20.manager.DBManager.remoteCreate(DBManager.java:462)
              at weblogic.ejb20.internal.EntityEJBHome.create(EntityEJBHome.java:190)
              at examples.ejb.basic.beanManaged.AccountBean_g1748h_HomeImpl.create(AccountBean_g1748h_HomeImpl.java:76)
              at examples.ejb.basic.beanManaged.AccountBean_g1748h_HomeImpl_WLSkel.invoke(Unknown
              Source)
              at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:288)
              at weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerRef.java:93)
              at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:257)
              at weblogic.rmi.internal.BasicServerRef.dispatch(BasicServerRef.java:158)
              at weblogic.rmi.internal.ServerRequest.sendOneWayRaw(ServerRequest.java:92)
              at weblogic.rmi.internal.ServerRequest.sendReceive(ServerRequest.java:112)
              at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:253)
              at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:220)
              at weblogic.rmi.internal.ProxyStub.invoke(ProxyStub.java:35)
              at $Proxy126.create(Unknown Source)
              at examples.wtc.atmi.simpapp.ToupperBean.putMessage(ToupperBean.java:194)
              at examples.wtc.atmi.simpapp.ToupperBean_8roqg7_EOImpl.putMessage(ToupperBean_8roqg7_EOImpl.java:284)
              at examples.wtc.atmi.simpapp.ToupperBean_8roqg7_EOImpl_WLSkel.invoke(Unknown
              Source)
              at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:288)
              at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:257)
              at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:22)
              at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:137)
              at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
              Regards
              Ranga Rao
              

              Oracle Server 8.1.5 does not provide support for 2PC.
              Full XA support is provided from version 8.1.7.
              Sergi
              "Lawrence" <[email protected]> wrote:
              >
              >Ranga,
              >Please use classes12.zip for this.If you still find problem, please let
              >me know.
              >Thanks
              >Lawrence
              >
              >"Ranga Rao" <[email protected]> wrote:
              >>
              >>
              >>Which version of jdbc thin driver should i use to achieve distributed transaction
              >>with oracle 8.1.5 in weblogic 6.1 sp2
              >>
              >>right now if iam using the driver classes provided in weblogic.jar iam
              >gettig
              >>the
              >>following Exception
              >>
              >>////////////////////////////////////////////////////////////////////////////////////////////
              >>AccountBean.ejbCreate( id = accountId, initial balance = $ 3000.0)
              >>java.sql.SQLException: XA error: XAER_RMERR : A resource manager error
              >has
              >>occured
              >>in the transaction branch start(
              >>) failed on resource 'OracleXAPool' Unexpected error during start for XAResource
              >>'OracleXAPool': null
              >> at weblogic.jdbc.jta.DataSource.enlist(DataSource.java:1044)
              >> at weblogic.jdbc.jta.DataSource.refreshXAConnAndEnlist(DataSource.java:1010)
              >> at weblogic.jdbc.jta.Connection.getXAConn(Connection.java:148)
              >> at weblogic.jdbc.jta.Connection.prepareStatement(Connection.java:226)
              >> at weblogic.jdbc.rmi.internal.ConnectionImpl.prepareStatement(ConnectionImpl.java:135)
              >> at weblogic.jdbc.rmi.SerialConnection.prepareStatement(SerialConnection.java:76)
              >> at examples.ejb.basic.beanManaged.AccountBean.ejbCreate(Unknown
              >>Source)
              >> at examples.ejb.basic.beanManaged.AccountBean_g1748h_Impl.ejbCreate(AccountBean_g1748h_Impl.java:172)
              >> at java.lang.reflect.Method.invoke(Native Method)
              >> at weblogic.ejb20.manager.DBManager.create(DBManager.java:492)
              >> at weblogic.ejb20.manager.DBManager.remoteCreate(DBManager.java:462)
              >> at weblogic.ejb20.internal.EntityEJBHome.create(EntityEJBHome.java:190)
              >> at examples.ejb.basic.beanManaged.AccountBean_g1748h_HomeImpl.create(AccountBean_g1748h_HomeImpl.java:76)
              >> at examples.ejb.basic.beanManaged.AccountBean_g1748h_HomeImpl_WLSkel.invoke(Unknown
              >>Source)
              >> at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:288)
              >> at weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerRef.java:93)
              >> at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:257)
              >> at weblogic.rmi.internal.BasicServerRef.dispatch(BasicServerRef.java:158)
              >> at weblogic.rmi.internal.ServerRequest.sendOneWayRaw(ServerRequest.java:92)
              >> at weblogic.rmi.internal.ServerRequest.sendReceive(ServerRequest.java:112)
              >> at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:253)
              >> at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:220)
              >> at weblogic.rmi.internal.ProxyStub.invoke(ProxyStub.java:35)
              >> at $Proxy126.create(Unknown Source)
              >> at examples.wtc.atmi.simpapp.ToupperBean.putMessage(ToupperBean.java:194)
              >> at examples.wtc.atmi.simpapp.ToupperBean_8roqg7_EOImpl.putMessage(ToupperBean_8roqg7_EOImpl.java:284)
              >> at examples.wtc.atmi.simpapp.ToupperBean_8roqg7_EOImpl_WLSkel.invoke(Unknown
              >>Source)
              >> at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:288)
              >> at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:257)
              >> at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:22)
              >> at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:137)
              >> at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
              >>/////////////////////////////////////////////////////////////////////////////////
              >>
              >>Regards
              >>Ranga Rao
              >>
              >>
              >
              

  • Distributed transactions and connection pooling

    Hi,
    We have a problem with the enlistment of connections in distributed transactions.
    The following very simple C# program does not work correctly (a simple form with one button and a class hosted in COM+). If you put a breakpoint on "cnOraTx.Close();" you will see that the inserted record is already visible in the database although the transaction has not commited yet.
    If you comment out the lines between //START and //END everything works as expected.
    Also, if we use "Pooling=false" in the connection string, everything works fine again, but since we are writing a web application, we really need the connection pooling.
    We are using ODP.NET 9.2.0.2.102 (I also tried with the ODP.NET 9.2.0.4.0 BETA) and an oracle 8.1.7 database.
    Best Regards,
    Piet
    private void button1_Click(object sender, System.EventArgs e)
    //When commenting the following lines the connection is enlisted in the distributed transaction
    //START
    OracleConnection cnOraTx;
    cnOraTx = new Oracle.DataAccess.Client.OracleConnection("Data Source=ECOMP532;User ID=USER;Password=PWD");
    cnOraTx.Open();
    cnOraTx.Close();
    cnOraTx.Dispose();
    //END
    OpenOraTransConn obj = new OpenOraTransConn();
    obj.Connect();
    //This class is going to be hosted within COM+
    [Transaction(TransactionOption.Required)]
    public class OpenOraTransConn: ServicedComponent
    private OracleConnection cnOraTx;
    private OracleCommand cmd;
    internal void Connect()
    cnOraTx = new OracleConnection("Data Source=ECOMP532;User ID=USER;Password=PWD");          
    cnOraTx.Open();
    cmd = new OracleCommand();
    cmd.Connection = cnOraTx;
    cmd.CommandText = "INSERT INTO SYSADM.PERSON (PE_KEY) VALUES(130000)";
    cmd.ExecuteNonQuery();
    cnOraTx.Close();
    cnOraTx.Dispose();
    ContextUtil.SetComplete();

    Hello:
    We are experiencing the exact same problem. INSERT, UPDATE or DELETE statements that should roll back because an exception is being thrown from inside our ServicedComponent-derived class (which is set to TransactionOption.Required and uses AutoComplete) are not -- and instead are being committed to the database.
    Were you able to figure out why this is happening, and what can be done to get around it? We too were able to avoid the problem by setting Pooling=False to our connect string, but for a variety of reasons we want to use connection pooling ...!

  • Too many distributed transactions

    I am programming an application with JDeveloper 10g and ADF Framework. It is a application that only queries data (no modifications). I created ViewObjects based on sql queries and an application module.
    The problem is that is I execute that application for some time, I get the following error:
    java.sql.SQLException: ORA-02042: too many distributed transactions
         at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:189)
         at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:242)
         at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:554)
         at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java)
         at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:888)
         at oracle.jdbc.driver.OracleStatement.doExecuteQuery(OracleStatement.java:2346)
         at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2660)
         at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:457)
         at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:387)
         at oracle.jbo.server.QueryCollection.buildResultSet(QueryCollection.java:665)
    As it is a query only program, i do not need transactions. How can fix this?
    Thanks in advance

    Hi,
    this is information from metalink:
    The ORA-2042 indicates that you should increase the parameter
    distributed_transactions.
    The ORA-2063 indicates that this must be done at the remote
    database.
    Explanation
    If the distributed transaction table is full on either side of
    the database link you get the error ORA-2042:
    ORA-02042: "too many distributed transactions"
    Cause: the distributed transaction table is full,
    because too many distributed transactions are active.
    Action: increase the INIT.ORA "distributed_transactions" or
    run fewer transactions.
    If you are sure you don't have too many concurrent
    distributed transactions, this indicates an internal
    error and support should be notified.
    Instance shutdown/restart would be a workaround.
    When the error is generated at the remote database it is
    accompanied with an ORA-2063. In this case the parameter
    distributed_transactions must be increased at the remote
    database.
    If there is no ORA-2063 the parameter distributed_transactions
    must be increased at the local database.

  • SQL Anywhere 12 (12.0.1.4155) using EF : Unable to enlist transaction; DTC may be down

    What may be causing this error??
    Sometimes the transactions runs fine, and other times I get this error message.
    Database.SqlQuery<int>("select dba.getnextid()");
    NativeError: -803
    Message: Unable to enlist transaction; DTC may be down
    Source: SQL Anywhere .NET Data Provider
    StackTrace:
    at iAnywhere.Data.SQLAnywhere.SAException.CheckException(Int32 idEx)
       at iAnywhere.Data.SQLAnywhere.DurableResourceManager.Enlist(SAInternalConnection conn, Transaction tran)
       at iAnywhere.Data.SQLAnywhere.SAInternalConnection.Enlist(Transaction tran)
       at iAnywhere.Data.SQLAnywhere.SAConnection._EnlistTransaction(Transaction tran)
       at iAnywhere.Data.SQLAnywhere.SAConnection.EnlistTransaction(Transaction transaction)
       at System.Data.EntityClient.EntityConnection.EnlistTransaction(Transaction transaction)
    Can't seem to figure out how to resolve this issue, nor what's causing it.

    Enabling the MSDTC service solved it.  (Distributed Transaction Coordinator)

Maybe you are looking for

  • Hp Officejet x32 /software for Windows Vista

    I have an Officejet 6210 All-in-One.  My computer (2009) came loaded with both Windows XP Professional and VostaBusiness (32 bit).   I only used the XP Prof, until support ended, then switched to Vista.  Disk that came with my printer does not includ

  • Procurement of finished goods

    All, We have a scenario of procuring finished goods into Finished S location and from there directly do the PGI to customers in SD . This scenario we are not treating as a third party scenario , which shud be actually . In this case what will be the

  • How can I get C3PO's working in the Cross Platform Client

    Hi! I need to know if it is possible to use C3PO's in the GroupWise 7 Cross Platform Client? If not, is there some method documented to achieve the same functionality? Thanks, Chris

  • Oracle Help search feature doesn't work with RoboHelp generated output

    I am using RoboHelp HTML, Version 10 on Windows 7.  I am able to generate Oracle Help output and integrate it with my Java application.  When I do this, the Content and Index tabs work fine, but the Search feature does not. Regardless of what search

  • Contribute 6.5 + Contribute Publishing Server

    Does CPS get installed when you install Contribute 6.5 on a server?  I can't find the CPS 1.11 installer ANYWHERE!