System.Transactions and Allow Inbound/Outbound DTC Settings

If you do distributed transactions across the network, you know about Allow Inbound and Allow Outbound security settings for DTC (available by running dcomcnfg or by opening Component Services). The help describes these settings as: Allow Inbound: Select this check box to allow a remote computer to flow transactions to the local computer. Typically, this…


Intro for Microsoft Azure .Net Service Bus

Clemens Vasters gives a great introduction to Microsoft Azure .Net Service Bus and its 4 feature areas: Naming, Registry, Connectivity, and Eventing. Find it at,guid,92d78bee-2cfd-4a29-95ab-c5abb9b905e7.aspx


Atbroker.exe application error – CTRL-ALT-END in a remote session

I use remote desktop daily. The Atbroker.exe application error followed by black screen seemed to be gone for a while. Now it is back. The only solution that I know of and which works most of the times is “CTRL-ALT-END” (the equivalent of “CTRL-ALT-DEL” for remote sessions) followed by ESC. When it doesn’t work, I…


When not to use transactions and where you can’t use transactions

Transactions are great when everyone plays in. You group a set of activities together under a transaction and you start executing them. If anything bad happens along the way or something doesn’t go as planned, invoke rollback and all is taking care of automatically by the infrastructure: everything is undone and the app returns to…


MSDTC and COM+ Configuration Tool in Vista

To access the MSDTC and COM+ configuration tool in Windows Vista, also known as Component Services MMC, you have the following options: 1.       Run “dcomcnfg” 2.       Or run: %SystemRoot%\System32\comexp.msc 3.       Or if you prefer, you can add a shortcut to %SystemRoot%\System32\comexp.msc in Control Panel   If you have UAC on and you want to do…


Exception Handling without catch(Exception)

The design guidelines for exception handling are quite clear on avoiding “catch all” and/or avoiding catching exceptions you can’t handle. But there are cases when you really need to know if the try block completed successfully or not, and possibly take some action.   One way one could achieve this without breaking the guideline is…


Working with CMD and Long Path Names

I like using the command prompt for a lot of things and working with long (or very long) path names is something that is common these days. Fortunately, you can customize cmd by using “prompt”. Do a “prompt /?” in a command window  to see all the options. I like it simple and I use:…


How to Use System.Data with System.Transactions and Maintain Atomicity and Data Consistency

The Bug I call it a bug. Initially I was persuaded to believe it was a feature; later I was “convinced” that it is now a matter of app compat and it can’t be changed anymore.   Let’s look at the following code:   SqlConnection connection1 = new SqlConnection(connectionString);   using(TransactionScope txScope = new TransactionScope())…


Limitation of TransactionScope (and using)

If you read the documentation for TransactionScope, you will find: “If no exception occurs within the transaction scope […], then the transaction in which the scope participates is allowed to proceed. If an exception does occur within the transaction scope, the transaction in which it participates will be rolled back.” Later the doc says: “When…


Avoiding Transaction Promotion with Multiple Connections – Improvements in System.Data and SQL Server 2008

Great news! The new updates added to System.Data and SQL Server 2008 finally allow multiple Open/Close connections to the same SQL Server without promoting the transaction to MSDTC. This was by far the most requested feature for the System.Transactions/System.Data/SQL Server combination. There is no more the need to write workarounds like ConnectionScope to avoid promotions….