Using Oracle and MTS

Posted on 2000-03-27
Last Modified: 2010-05-18
I created an ActiveX component (dll) for inserting and updating data in an oracle server(7.3)through ODBC driver(compatible with MTS). I used ADODB. Command object for doin' so. I registered that component in MTS (residing on an IIS web server) and called that object from an ASP. I get the error message:
"failed to enlist on calling object's transaction" at the point I make a statement in the active x component.
I searched MSDN for that, and it tells that I should run"TestOracleXaConfig" program to ensure that I can successfully connect to the oracle server without using MTS.
I ran that one on the MTS server, and saw that it fails to load XA73.dll. Ihope XA73.dll is required for oracle 7.3 for exchange of data using XA protocol, but I could not find one in the server( I should say that the server is the MTS, IIS and the Database server, all in one M/C). can any one tell me who provides(ships) this Dll, Oracle or MTS, and a possible solution to my problem?
Question by:Subhasundar
  • 3
  • 3
  • 2
  • +1
LVL 28

Expert Comment

ID: 2661380
that dll ships with oracle and I have it if you need it.

Author Comment

ID: 2663805
Thank you very much for the info. Infact, we have moved far from that.This XA73.dll is used if we use Microsoft ODBC for Oracle. We have recently installed Oracle 8i and using Oracle ODBC driver and we now have our Oracle MTS services up and running.But now the problem is that this MTS service can't talk with Microsoft DTC.
What is the probable cause of this error?

Author Comment

ID: 2664529
Let me detail it.
We are trying to talk with oracle 8i databse through MTS component.We are using microsoft provided ODBC driver manager version(3.51) and ODBC driver for oracle (ver 8.0.1) provided with oracle 8i.
we are getting the error message:

Microsoft OLE DB Provider for ODBC Drivers error '8004d00a'

[Oracle][ODBC]Failed to enlist global transaction with DTC
Documentation about setting up MTS- ORACLE connection in MSDN details all about oracle 7.3 and 8.0, but not with 8i version.
We have followed the instructions provided by oracle 8i manuals which gives a detail of talking to MTS.
Still we are getting the above error.
Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

LVL 28

Expert Comment

ID: 2665104
so you were able to finally modify your code to work with MTS and you installed the component into MTS successfully into a package? You included all the objectcontext object code needed? What properties did you set for mtstransactionmode and version compatibility in your project properties of your dll?

Author Comment

ID: 2668683
yaah, I have done all the things that you have asked . I had made a package  and registered my component from MTS management console. I can see all the methods and properties of the object from the manage ment console. moreover, it is also getting instantiated, activated.. the status view says so.
I had binary compatibility in my project and the MTSTransactionmode is "requires transaction".

Accepted Solution

fgregoire earned 200 total points
ID: 2689379
I solved the same problem some weeks ago. But my server database is Oracle 8i and my client too.
Job to do on the server:
- Create the user MTSSYS with a script that are on the Oracle Server in RDBMS Directory.

Job to do on the client computer
- Install MSDTC (come with Option Pack 4 or NT 4)
- Install the client oracle 8i
- Install the patch for ODBC Oracle Driver for version or (Oracle web site)
- Install the patch MTS for Oracle (Oracle web site)
- With the Oracle Server Installation Disk: Install the service MTS for Oracle. With this you will create a service for your Oracle Alias and the user MTSSYS that you have created previously. (See Oracle 8i documentation for more information)
- Always use the new Oracle ODBC Driver
- Never use BeginTrans, CommitTrans or RollbackTrans in our DLL. Use SetComplete and SetAbort from ContextObject of MTS

For more information refer to Oracle 8i documentation not Oracle 7.3.4 or Microsoft.

If this don't work, uninstall your Oracle client 8i from your client and use Oracle Client 7.3.4, it work fine.

Expert Comment

ID: 2852321
Hi fgregoire,

I had some problem with oracle 8.1.5 and MTS. I had followed your instructions above, but i still can't get it to work. I had posted a question titled "Oracle and MTS" on 27 May and would appreciate if you can give me some advice.

Anyone who wishes to attempt the question are welcome.

Expert Comment

ID: 2858159
Hi RayLeong!

If you have problem with Oracle 8.1.5 and MTS, do you have a error message?

What doesn't work?


Expert Comment

ID: 2858202
No, it just aborted nicely without rolling back what i insert into the database or the message queue. Anyway i am the purposely place a incorrect select statement to simulate an error.

Expert Comment

ID: 2858303
No, it just aborted nicely without rolling back what i insert into the database or the message queue. Anyway i am the purposely place a incorrect select statement to simulate an error.

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Article by: Martin
Here are a few simple, working, games that you can use as-is or as the basis for your own games. Tic-Tac-Toe This is one of the simplest of all games.   The game allows for a choice of who goes first and keeps track of the number of wins for…
Since upgrading to Office 2013 or higher installing the Smart Indenter addin will fail. This article will explain how to install it so it will work regardless of the Office version installed.
Get people started with the process of using Access VBA to control Excel using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Excel. Using automation, an Access application can laun…
This lesson covers basic error handling code in Microsoft Excel using VBA. This is the first lesson in a 3-part series that uses code to loop through an Excel spreadsheet in VBA and then fix errors, taking advantage of error handling code. This l…

860 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question