|
-
Nov 17th, 2005, 02:31 AM
#1
Thread Starter
Hyperactive Member
COM+ Transaction problem
Hi,
I'm using VB.NET to write COM+ component, with the <AutoComplete(True)> attribute applied to one of the method.
The Transaction of this component is set to "Required".
When I run it in my development machine, which is WinXP, it works well without problem.
Then I deploy the component to W2K3 server, then I got the error
"An error occurred while enlisting in a distributed transaction". This error occur no matter which method in the COM I'm calling.
I've search the web for answer, and most of them suggest that the DTC should be turn on. However, I've checked both COM+ server and SQL Server, the DTC service is up and running.
I guess it should be some setting problem, but can't figure out where it is.
Any one know how to solve this problem? Or I need declare Transaction explicitly using ADO.NET?
Thx for your help.
-
Dec 8th, 2005, 05:32 AM
#2
Frenzied Member
Re: COM+ Transaction problem
Under Win2k3 try this:
(i) Go to component services\Computers
(ii) Right click on My Computer to get Properties
(iii) Go to the MSDTC tab
(iv) Make sure Network transactions are ticked (I tick all the boxes, actually)
Let me know if it works.
"As far as the laws of mathematics refer to reality, they are not certain; and as far as they are certain, they do not refer to reality." - Albert Einstein
It's turtles! And it's all the way down
-
Dec 8th, 2005, 05:36 AM
#3
Frenzied Member
Re: COM+ Transaction problem
I suppose I should offer an explanation . . .
When you mark a component as 'Required' or similar every method call will enlist any applicable providers into a transaction. So if you have a SQL Server referenced in a function call (highly likely) that SQL Server will be enlisted, as will the file system, and the source-code itself.
Win2k3, by default, prevents MSDTC from enlisting providers across the network - for obvious reasons I won't go into here - but the basic premise is that MS-RPC (which MSDTC is derived from) is not a very secure subsystem, so MS lock it down by default.
What I suggested to you is to navigate to the tickbox that allows you to override the defauly MS settings regardin enlisting providers across the network.
"As far as the laws of mathematics refer to reality, they are not certain; and as far as they are certain, they do not refer to reality." - Albert Einstein
It's turtles! And it's all the way down
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|