Here is the .NET
interview questions on how DTC is implemented using COM+.
Following are the steps to implement COM + in .NET:-
- “EnterpriseService” namespace has all the classes by which we can implement DTC in .NET. You have to add reference “EnterpriseService” namespace.
- You class must derive from “Serviced Component” object.
- Then you have to define your class with the transaction attribute
(For all transaction attribute look the down question)
[Transaction (TransactionOption.RequiresNew) ]
After the class level, transaction type is defined. Its time to define at the method level the AutoComplete attribute. Autocomplete attribute says that if no exception is thrown then mark its part of the transaction as being okay. This helps cut down on the amount of code required. If the implementation sets AutoComplete to false, or omits it all together, then we would need to manage the transaction manually. To manually, control the transaction you will need to use the ContextUtil class and its static members. Following is small snippet of ContextUtil: -
public void SampleFunction()
{
try
{
// Do something to a database
// ...
// Everything okay so far
Commit the transaction
ContextUtil.SetComplete();
}
catch(Exception)
{
// Something went wrong Abort
and Rollback the Transaction.
ContextUtil.SetAbort();
}
}
- Component derived from “ServicedComponent” should be strong named as they run under COM+.
- Once the classes are compiled using the string name. Register the Component in COM+ services using regsvcs c:\DllPath\TransactionComponent.dll
- You can see that the component is registered using the COM+ explorer.