Results 1 to 3 of 3

Thread: COM+ Transaction problem

  1. #1

    Thread Starter
    Hyperactive Member
    Join Date
    Mar 2001
    Posts
    416

    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.

  2. #2
    Frenzied Member yrwyddfa's Avatar
    Join Date
    Aug 2001
    Location
    England
    Posts
    1,253

    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

  3. #3
    Frenzied Member yrwyddfa's Avatar
    Join Date
    Aug 2001
    Location
    England
    Posts
    1,253

    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
  •  



Click Here to Expand Forum to Full Width