Using Oracle and MTS

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?
Who is Participating?

[Webinar] Streamline your web hosting managementRegister Today

fgregoireConnect With a Mentor Commented:
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.
that dll ships with oracle and I have it if you need it.
SubhasundarAuthor Commented:
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?
The new generation of project management tools

With’s project management tool, you can see what everyone on your team is working in a single glance. Its intuitive dashboards are customizable, so you can create systems that work for you.

SubhasundarAuthor Commented:
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.
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?
SubhasundarAuthor Commented:
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".
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.
Hi RayLeong!

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

What doesn't work?

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.
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.
All Courses

From novice to tech pro — start learning today.