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.
| Author |
Topic |
|
vaidyanathanpc
Starting Member
24 Posts |
Posted - 2002-05-28 : 08:34:12
|
| Hi, I have written a procedure as below. I'm connected to a remote server server1 with valid login id and permissions. When I run the procedure, I get the following error. Server: Msg 7391, Level 16, State 1, Procedure procAddMissingAssociates, Line 09The operation could not be performed because the OLE DB provider 'SQLOLEDB' does not support distributed transactions.[OLE/DB provider returned message: Distributed transaction error]MSDTC is enabled on both the server, the local as well as the remote ones.In the example below ASSOCIATE_ID in table2 is a primary key.Please help,ThanksP.C. VaidyanathanCREATE PROCEDURE procAddMissingAssociatesASDECLARE @USERID INTBEGIN SET TRANSACTION ISOLATION LEVEL repeatable read BEGIN DISTRIBUTED TRANSACTION SET XACT_ABORT ON DECLARE MISSING_CURSOR CURSOR FOR SELECT USR_ID FROM SERVER1.DB1.DBO.TABLE1 WHERE USR_ID NOT IN (SELECT COLUMN2 FROM TABLE2) OPEN MISSING_CURSOR FETCH FROM MISSING_CURSOR INTO @USERID WHILE (@@FETCH_STATUS=0) BEGIN INSERT INTO TABLE2 (ASSOCIATE_ID, REDEEM_POINTS, UPDATED_DATE) VALUES (@USERID, 0, GETDATE()) FETCH NEXT FROM MISSING_CURSOR INTO @USERID END CLOSE MISSING_CURSOR DEALLOCATE MISSING_CURSOR COMMIT TRANSACTIONENDGO |
|
|
Kevin Snow
Posting Yak Master
149 Posts |
Posted - 2002-05-28 : 16:41:15
|
| Check whether the BEGIN DISTRIBUTED TRANstatement is necessary-sp_configure 'remote proc trans' Also, is it a read only transaction, or is the DTC trying to coordinate updates?The sp_configure remote proc trans option controls whether calls to remote stored procedures in a local transaction automatically cause the local transaction to be promoted to a distributed transaction managed by MS DTC. The connection-level SET option REMOTE_PROC_TRANSACTIONS can be used to override the server default established by sp_configure remote proc trans. With this option set on, a remote stored procedure call causes a local transaction to be promoted to a distributed transaction. The connection that creates the MS DTC transaction becomes the originator for the transaction. COMMIT TRANSACTION initiates an MS DTC coordinated commit. If the sp_configure remote proc trans option is set on, remote stored procedure calls in local transactions are automatically protected as part of distributed transactions without having to rewrite applications to specifically issue BEGIN DISTRIBUTED TRANSACTION instead of BEGIN TRANSACTION.When a distributed query is executed in a local transaction, the transaction is automatically promoted to a distributed transaction if the target OLE DB data source supports ITransactionLocal. If the target OLE DB data source does not support ITransactionLocal, only read-only operations are allowed in the distributed query.For more information about the distributed transaction environment and process, see the Microsoft Distributed Transaction Coordinator documentation.http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tsqlref/ts_ba-bz_9ar2.asp |
 |
|
|
|
|
|
|
|