guys... i' like to reopen this issue here! how do i get distributed transactions to work in my application with ASP.Net/VB.Net/ORACLE??Thanks!! Sham akaboolean... be practical/be straight... true/false?!
I am experiencing a similar problem as the ones mentioned in this thread.
Specifications:
W2K-SP3,
MTS objects
Oracle 8i
Microsoft ODBC for Oracle version 2.573.9001.00
MDAC 2.7RTM
I get the following message from the ODBC driver when running queries from my ASP application:
[Microsoft][ODBC driver for Oracle]Driver not capable
Note: I only get this message when calling the mts component from my ASP page. When calling it from a Win32 application or running the query in Oracles ODBC test application I get no errors.
I am pretty lost and am in a shortage of time before having to deliver this application. Anybody know the answer to this problem?
The Oracle Services for MTS allow customers to use Oracle databases as resource managers in MTS-coordinated transactions, providing strong integration between Oracle solutions and MTS. The Oracle Services for MTS act as a proxy for the Oracle database to the MTS Distributed Transaction Coordinator. As a result, these services provide client-side connection pooling with MTS and allow COM components that leverage Oracle to participate in MTS transactions. In addition, the Oracle Services for MTS can operate with Oracle databases running on any operating system, given that the services themselves are run on Windows.
I had downloaded the latest release of the OraMTS... (Oracle9i Release 2 Services for MTS 9.2.0.1.1) and the problems seem to have been sorted out... but then you might have to have a 9i client to go along with it...
Guess you can actually give it a go... Sham akaboolean... be practical/be straight... true/false?!
1) Upgraded to client9i: Problem not solved.
2) Changed the "Disable MTS support" on the Oracle ODBC driver settings: Different error message:
[Oracle][ODBC]MTS support not available, could not load ORAMTS.DLL. Problem not solved.
3) Looked at the Component settings in MTS. Transaction support was set to "Requires new". I tried changing this to "Supported" and VOILA: Everything worked.
newDAL.ExecuteInsertUpdate("update authors set contract=1"
newDAL.ExecuteInsertUpdate("update titles set royalty1=11"
ContextUtil.SetComplete();
}
catch (Exception e)
{
ContextUtil.SetAbort();
throw e;
}
finally
{
}
}
This code works fine as long as I am using SQL Server, but When I change the connection string to connect to Oracle9i, the page no longer supports transactions.
I will be grateful, If you can provide some help on this issue.
Sujay... you'd maybe care to look at my post in this same thread on Mar 2, 2003?? guess that would help... dont you swear if it didnt... Sham akaboolean... be practical/be straight... true/false?!
and yeah.... do remember that your dataAccessComponent must use the Oracle Data Provider for .Net! Sham akaboolean... be practical/be straight... true/false?!
hi boolean,
I am using C# with oracle 9i. I want to use System.Data.OracleClient. I want to use Transaction=RequiresNew and ContextUtilSetcomplete and setabort methods. But with OracleClient when ever i enable "transaction=RequiresNew" ,I get an error saying "Failed to initialize distributed transaction" However there is no problem in any other scenario(W/O transaction attributes)
If you have faced this error,Please provide some help
Thanks in advance
Vivek Marwaha
We run 6 MTS 2.0 packages on a Win NT server with MDAC 2.5. When our Oracle db was upgrade from 7 to 8, we found that the neither the MS nor Oracle drivers worked with MTS 2.0. So we now run an ORACLE 8 db with MS ofr Oracle 7.3 drivers in NT. This works fine but you do lose some granularity in error reporting.
We are moving to WIN2k and found that we needed to go to 8.1.7.3.2 minimum with our drivers before we were problem free. These drivers requrie win2k and do not operate well in Win NT. Our win 2K config is Oracle 8.1.7.3.4, MDAC 2.5 or 2.7 (we are in the process of upgrading), and COM+. This also works fine. We have had some success in using native Oracle drivers instead of the Microsoft drivers for improved performance on some transactions so we tend to run a mixture of the two.
We are using Windows 2000 Server, Oracle 8.1.7 client and com+. MSDTCORA test ran successfully. When we use supported transactions in the component, application works fine.
If we change the components transaction to required, then we get the below error.
"Method of object failed". -2147430328.
We encountered a problem yesterday with our MTS components and had similar error mentioned in this thread. This thread was helpful in eliminating few options. Finally after 4-5 hours of gruelling work under pressure from superiors we were able to resolve the problem.
Posting the solution so it may help others
Error : [Microsoft][ODBC driver for Oracle]Failure in DTC: not able to validate open information
Cause : Error thrown by Oracle. The passwords for the schema were to expire in 29 days and it was throwing an error.
Our interpretation : Oracle allowed the component to login as a valid user, but then sent an error about the password expire. MTS confused and threw WIERD ERROR ( Very annoying )
Solution : Requested DBA to remove the grace period error on the ORacle side... Ta da... It worked like a charm.....
Hope our excercise help poor souls later hit by this.
Thanks for your reply. I checked the Oracle DB, password grace period option was not checked. I would like to add one more information here....
We are four developers using Windows 2000, COM+, IIS and oracle client 8.1.7. Oracle server is 9.0.1
The same application works in two machines(1 and 2) and it's not working in the other two(3 and 4). We checked all the configurations. When i changed required to supported transaction in 3 and 4 machines, then the application works fine.
If i set the transaction to required, the i get the below error. "Method of object failed". -2147430328.
What could be the reason. Eagerly waiting for ur reply.
Few options suggestion.
a) Attempt to connect to Oracle with similar parameters that is utilized by COM object, using TOAD / TORA. These utilities intercept any errors that is sent across from Oracle.
b) We have similar configuration and I would suggest check connection pooling on oracle.
c) last resort, reinstall Oracle client.
d) Attempt to connect to another instance of Oracle on a separate server, just to isolate the problem.
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.