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….


A Simpler TransactionScope

In .Net 3.5 I can write a transactional code block as follows:transacted(()=> { using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); SqlCommand command1 = new SqlCommand(commandString1, connection); command1.ExecuteNonQuery(); SqlCommand command2 = new SqlCommand(commandString2, connection); command2.ExecuteNonQuery(); } }); No need for using and no need to remember to call Complete at the end of the block….


Flowing or propagating transactions in .Net

System.Transactions transactions are bounded to the appdomain. Which means that if you make in-appdomain calls from inside a TransactionScope, those calls will share the transaction. This also means that if you need to make a call outside the current appdomain, or outside the process, you will need to “flow” the transaction. To flow a System.Transactions…