Please start any new threads on our new site at https://forums.sqlteam.com. We've got lots of great SQL Server experts to answer whatever question you can come up with.

 All Forums
 SQL Server 2000 Forums
 Import/Export (DTS) and Replication (2000)
 Error: MSDTC service not available

Author  Topic 

Zathras
Starting Member

28 Posts

Posted - 2004-05-27 : 21:56:19
I wrote a VB app to create and execute a package which uploads 2 DBF file tables on my desktop to my SQL Server on the network. The SQL server has MSDTC service running (as confirmed in the server's EM, the EM on my computer for that server, and the server's task list).

When I use the line in my app:
oStep.JoinTransactionIfPresent = False
the package executes just fins, it uploads about 4,000 records to the 2 matching tables.

But when I use:
oStep.JoinTransactionIfPresent = True
then the package fails on the .Execute method with the error message (the mesage is IMMEDIATE btw, no timeout going on):
-2147220368, The Microsoft Distributed Transaction Coordinator (MSDTC service) is not available.

I thought maybe there was a port problem, so I downloaded a port scanner and it found port 3372 fine, the description was "TIP 2", I don't know what that means.

Any idea why my application can't find the MSDTC service?

tkizer
Almighty SQL Goddess

38200 Posts

Posted - 2004-05-28 : 12:40:24
I think the VB app needs to run on the database server. Test it out there and see if it works first.

Tara
Go to Top of Page

nr
SQLTeam MVY

12543 Posts

Posted - 2004-05-29 : 21:44:56
Is it windows 2003? That has dtc disabled by default and you have to install it - enterprise manager can still think it's running ok.
DTS is a client application so if you are trying to use it to maintain distributed transactions (never a good idea) you will probably need to have dtc running on the client machine.

==========================================
Cursors are useful if you don't know sql.
DTS can be used in a similar way.
Beer is not cold and it isn't fizzy.
Go to Top of Page

Zathras
Starting Member

28 Posts

Posted - 2004-05-30 : 03:56:33
The DB server is a Windows 2000 server.

My application is meantt o just use the DTC applicaiton to pump the data from the end user's destkop (which doesn't have SQL server installed) to the SQL server (becuase the 2 source DBFs names and locaitons may very. That's the point of the application: to upload a specified DBF fiel to the DB server. But it sounds like I shouldn't be doing this.

I've done soemthing similar to this before when I wrote an applicaiton to transfer data fromt he Server DB to the user's MDB file, but I couldn't figure out a way to transfer without creating a linked server to the MDB file, but the user's can't do that, and the MDB file varies greatly. SO I made my app read each fields and put it in a new recordset with is then added tot eh MDB connection. This process requires 2 ADO connections in my VB app and is rather slow. SO I was investigateing this DTS to speed it up. In my new app it works very fst, but I couldn't put in in a transaction. Now it sound like I canld reqistribute the DTS controls either though.

Maybe I am going in the wrong direction. What is the best way to pump mass data fromt he SQL server to an aribrtary MDB file so I can program that into my client app?
Go to Top of Page

nr
SQLTeam MVY

12543 Posts

Posted - 2004-05-30 : 05:58:21
The fastest and probably simplest way would be to create a text file (csv) from the data - copy it to the server and then bulk insert it.
This has the advantage that the database does not need to be available until the bulk insert so everything else can be done at any time.

==========================================
Cursors are useful if you don't know sql.
DTS can be used in a similar way.
Beer is not cold and it isn't fizzy.
Go to Top of Page
   

- Advertisement -