<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Glavs Blog : Transactions</title><link>http://weblogs.asp.net/pglavich/archive/tags/Transactions/default.aspx</link><description>Tags: Transactions</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>WCF Atomic Transactions - GUI Configuration</title><link>http://weblogs.asp.net/pglavich/archive/2007/04/12/wcf-atomic-transactions-gui-configuration.aspx</link><pubDate>Thu, 12 Apr 2007 12:28:45 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:2217931</guid><dc:creator>Glav</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/pglavich/rsscomments.aspx?PostID=2217931</wfw:commentRss><comments>http://weblogs.asp.net/pglavich/archive/2007/04/12/wcf-atomic-transactions-gui-configuration.aspx#comments</comments><description>&lt;p&gt;If you play with WCF and would like an easy, graphical way to enable and configure basic options of the the WS-Atomic transaction support of WCF, you can do the following:&lt;/p&gt; &lt;p&gt;(Note: I did this recently as I had to rebuild a new laptop so I thought I'd mention it here for the benefit of anyone else).&lt;/p&gt; &lt;p&gt;I am running this within Vista, although it should be "similar" for other OS flavours.&lt;/p&gt; &lt;p&gt;1. Install the .Net 3.0 (Vista) SDK.&lt;/p&gt; &lt;p&gt;2. As an administrative user, go to a .Net command prompt and navigate to "&lt;font face="Courier New" size="2"&gt;C:\Program Files\Microsoft SDKs\Windows\v6.0\Bin&lt;/font&gt;"&lt;/p&gt; &lt;p&gt;3. Type &lt;font face="Courier New" size="2"&gt;'regasm /codebase wsatui.dll'&lt;/font&gt;&lt;/p&gt; &lt;p&gt;4. Now load up the Component Services management console. You can do this by going to &lt;font face="Courier New" size="2"&gt;'Start --&amp;gt; Run --&amp;gt; MMC'&lt;/font&gt;&lt;/p&gt; &lt;p&gt;5. Once the MMC console is up, select &lt;font face="cour" size="2"&gt;'&lt;font face="Courier New"&gt;File --&amp;gt; Add/Remove Snap-In --&amp;gt; Component Services'&lt;/font&gt;&lt;/font&gt;. Cick &lt;font face="Courier New" size="2"&gt;'Add'&lt;/font&gt; button, then click &lt;font face="Courier New" size="2"&gt;OK&lt;/font&gt;.&lt;/p&gt; &lt;p&gt;6. Expand out the tree until you find the &lt;font face="Courier New" size="2"&gt;'Local DTC'&lt;/font&gt; node as shown below, right click on it and select &lt;font face="Courier New" size="2"&gt;'Properties'&lt;/font&gt;:&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.theglavs.com/article_Images/WCFAtomicTransactionsGUIConfiguration_13AC0/image03.png" atomicselection="true"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="391" src="http://www.theglavs.com/article_Images/WCFAtomicTransactionsGUIConfiguration_13AC0/image0_thumb1.png" width="367" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;7. Select the &lt;font face="Courier New" size="2"&gt;'WS-AT&lt;/font&gt;' tab and there you have all your WS-Atomic Transaction settings. (&lt;em&gt;Note that I dont have the DTC access allowed at the moment so the options are greyed out&lt;/em&gt;).&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.theglavs.com/article_Images/WCFAtomicTransactionsGUIConfiguration_13AC0/image09.png" atomicselection="true"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="495" src="http://www.theglavs.com/article_Images/WCFAtomicTransactionsGUIConfiguration_13AC0/image0_thumb5.png" width="433" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=2217931" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/pglavich/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/pglavich/archive/tags/Vista/default.aspx">Vista</category><category domain="http://weblogs.asp.net/pglavich/archive/tags/WCF/default.aspx">WCF</category><category domain="http://weblogs.asp.net/pglavich/archive/tags/Architecture/default.aspx">Architecture</category><category domain="http://weblogs.asp.net/pglavich/archive/tags/Windows/default.aspx">Windows</category><category domain="http://weblogs.asp.net/pglavich/archive/tags/Transactions/default.aspx">Transactions</category></item><item><title>WCF Masterclass with Juval Lowy</title><link>http://weblogs.asp.net/pglavich/archive/2007/02/07/wcf-masterclass-with-juval-lowy.aspx</link><pubDate>Wed, 07 Feb 2007 13:39:26 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:1572651</guid><dc:creator>Glav</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/pglavich/rsscomments.aspx?PostID=1572651</wfw:commentRss><comments>http://weblogs.asp.net/pglavich/archive/2007/02/07/wcf-masterclass-with-juval-lowy.aspx#comments</comments><description>                     &lt;div class=Section1&gt;  &lt;p class=MsoNormal&gt;I have been lucky enough to be attending a WCF Masterclass this week taught by &lt;a href="http://www.idesign.net/idesign/DesktopDefault.aspx?tabindex=3&amp;amp;tabid=5"&gt;Juval Lowy&lt;/a&gt; and organised by &lt;a href="http://www.readify.net/"&gt;readify&lt;/a&gt;. Its an awesome course and I am learning an incredible amount about &lt;a href="http://wcf.netfx3.com/"&gt;WCF&lt;/a&gt; (&lt;a href="http://wcf.netfx3.com/"&gt;Windows Communication Foundation&lt;/a&gt;). You know you&amp;#8217;re on a good course when not only do you learn a lot about the specific topic of the course, but I am also picking up an incredible amount of useful tips and code along the way, not strictly tied to WCF.&lt;/p&gt;    &lt;p class=MsoNormal&gt;For example, I never knew that Juval created and delivered a set of transactional objects for use as a Volatile Resource Manager. By this I mean, that an integer is transactional, a DictionaryList is transactional, a string is transactional, a List, queue and Array are transactional, and these objects can participate in full fledged transactions, whether using the Lightweight transaction manager, Kernel Transaction Manager, Distributed Transaction Co-ordinator or other derivative.&lt;/p&gt;    &lt;p class=MsoNormal&gt;For example:&lt;/p&gt;    &lt;p class=MsoNormal&gt;&lt;span style='font-family:"Courier New"'&gt;TransactionalArray&amp;lt;int&amp;gt; numbers = new TransactionalArray&amp;lt;int&amp;gt;(3);&lt;/span&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;span style='font-family:"Courier New"'&gt;numbers[0] = 1;&lt;/span&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;span style='font-family:"Courier New"'&gt;numbers[1] = 2;&lt;/span&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;span style='font-family:"Courier New"'&gt;numbers[2] = 3;&lt;/span&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;span style='font-family:"Courier New"'&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;span style='font-family:"Courier New"'&gt;using (TransactionScope scope = new TransactionScope() )&lt;/span&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;span style='font-family:"Courier New"'&gt;{&lt;/span&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;span style='font-family:"Courier New"'&gt;&amp;nbsp; numbers[0] = 99;&lt;/span&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;span style='font-family:"Courier New"'&gt;&amp;nbsp; numbers[1] =88;&lt;/span&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;span style='font-family:"Courier New"'&gt;&amp;nbsp; numbers[2] =77;&lt;/span&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;span style='font-family:"Courier New"'&gt;}&lt;/span&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;span style='font-family:"Courier New"'&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;span style='font-family:"Courier New";color:#00B050'&gt;// numbers[2] == 3 at this point as we did not Complete/Commit the transaction before it exited the scope.&lt;/span&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;span style='font-family:"Courier New"'&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;span style='font-family:"Courier New"'&gt;TransactionalArray&amp;lt;int&amp;gt; numbers = new TransactionalArray&amp;lt;int&amp;gt;(3);&lt;/span&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;span style='font-family:"Courier New"'&gt;numbers[0] = 0;&lt;/span&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;span style='font-family:"Courier New"'&gt;numbers[1] = 0;&lt;/span&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;span style='font-family:"Courier New"'&gt;numbers[2] = 0;&lt;/span&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;span style='font-family:"Courier New"'&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;span style='font-family:"Courier New"'&gt;using (TransactionScope scope = new TransactionScope() )&lt;/span&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;span style='font-family:"Courier New"'&gt;{&lt;/span&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;span style='font-family:"Courier New"'&gt;&amp;nbsp; numbers[0] = 99;&lt;/span&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;span style='font-family:"Courier New"'&gt;&amp;nbsp; numbers[1] =88;&lt;/span&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;span style='font-family:"Courier New"'&gt;&amp;nbsp; numbers[2] =77;&lt;/span&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;span style='font-family:"Courier New"'&gt;&amp;nbsp; scope.Complete();&lt;/span&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;span style='font-family:"Courier New"'&gt;}&lt;/span&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;span style='font-family:"Courier New"'&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;span style='font-family:"Courier New";color:#00B050'&gt;// numbers[2] == 77 at this point as we DID Complete/Commit the transaction before it exited the scope.&lt;/span&gt;&lt;/p&gt;    &lt;p class=MsoNormal&gt;Apparently Juval released this stuff way back in late 2005 (and is on MSDN somewhere). I just had no idea, and its a super cool implementation of transacted objected. Again, these guys fully participate in all manner of promotable transactions. Juval has included transactable generic versions of all the collections. You can grab it from &lt;a href="http://www.idesign.net/idesign/DesktopDefault.aspx?tabindex=5&amp;amp;tabid=11"&gt;this page&lt;/a&gt;, Just look for Volatile Resource Managers.&lt;/p&gt;    &lt;p class=MsoNormal&gt;&lt;/p&gt;    &lt;/div&gt;    &lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=1572651" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/pglavich/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/pglavich/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/pglavich/archive/tags/WCF/default.aspx">WCF</category><category domain="http://weblogs.asp.net/pglavich/archive/tags/Transactions/default.aspx">Transactions</category><category domain="http://weblogs.asp.net/pglavich/archive/tags/Generics/default.aspx">Generics</category></item></channel></rss>