Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17


Using Oracle and MTS

Posted on 2000-03-27
Medium Priority
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
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 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.
What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

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 400 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

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

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

If you have ever used Microsoft Word then you know that it has a good spell checker and it may have occurred to you that the ability to check spelling might be a nice piece of functionality to add to certain applications of yours. Well the code that…
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…
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…
Suggested Courses

670 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