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?
ThanxHello,
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,
kjHi,
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 -
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_ONLYHi 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
DipeshHi 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. -
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 advanceHi,
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. -
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
-
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!