<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Abdul Rafay's BizTalk Blog</title>
	<atom:link href="http://abdulrafaysbiztalk.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://abdulrafaysbiztalk.wordpress.com</link>
	<description>My experiences with BizTalk related to architecture, development and performance in my enterprise.</description>
	<lastBuildDate>Thu, 05 Jan 2012 10:24:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='abdulrafaysbiztalk.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://0.gravatar.com/blavatar/277146f8ae3c992a8a4e244d4333224d?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Abdul Rafay's BizTalk Blog</title>
		<link>http://abdulrafaysbiztalk.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://abdulrafaysbiztalk.wordpress.com/osd.xml" title="Abdul Rafay&#039;s BizTalk Blog" />
	<atom:link rel='hub' href='http://abdulrafaysbiztalk.wordpress.com/?pushpress=hub'/>
		<item>
		<title>BizTalk Server MVP 2012</title>
		<link>http://abdulrafaysbiztalk.wordpress.com/2012/01/03/biztalk-server-mvp-2012/</link>
		<comments>http://abdulrafaysbiztalk.wordpress.com/2012/01/03/biztalk-server-mvp-2012/#comments</comments>
		<pubDate>Tue, 03 Jan 2012 18:49:22 +0000</pubDate>
		<dc:creator>Abdul Rafay</dc:creator>
				<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[MVP 2012]]></category>

		<guid isPermaLink="false">https://abdulrafaysbiztalk.wordpress.com/?p=494</guid>
		<description><![CDATA[So another year starts with a great news from Microsoft. I would like to thank Microsoft, my fellow MVPs, my MVP Lead-Ruari Plint, community members and my wife. Thank you all for your support without you people this would not be possible. Hope this year brings the same success to me as the previous years. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=abdulrafaysbiztalk.wordpress.com&amp;blog=7351933&amp;post=494&amp;subd=abdulrafaysbiztalk&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>So another year starts with a great news from Microsoft. I would like to thank Microsoft, my fellow MVPs, my MVP Lead-Ruari Plint, community members and my wife. Thank you all for your support without you people this would not be possible.</p>
<p>Hope this year brings the same success to me as the previous years. Happy New Year to everyone.</p>
<p><a href="http://abdulrafaysbiztalk.files.wordpress.com/2012/01/mvp_horizontal_fullcolor.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="MVP_Horizontal_FullColor" src="http://abdulrafaysbiztalk.files.wordpress.com/2012/01/mvp_horizontal_fullcolor_thumb.png?w=244&#038;h=101" alt="MVP_Horizontal_FullColor" width="244" height="101" border="0" /></a></p>
<p>I used to wait for the news on the new year but this time I was really busy and my family reminded me of the award renewal date. So today I just checked my inbox for the email from Microsoft.</p>
<br />Filed under: <a href='http://abdulrafaysbiztalk.wordpress.com/category/biztalk/'>BizTalk</a> Tagged: <a href='http://abdulrafaysbiztalk.wordpress.com/tag/mvp-2012/'>MVP 2012</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/abdulrafaysbiztalk.wordpress.com/494/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/abdulrafaysbiztalk.wordpress.com/494/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/abdulrafaysbiztalk.wordpress.com/494/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/abdulrafaysbiztalk.wordpress.com/494/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/abdulrafaysbiztalk.wordpress.com/494/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/abdulrafaysbiztalk.wordpress.com/494/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/abdulrafaysbiztalk.wordpress.com/494/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/abdulrafaysbiztalk.wordpress.com/494/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/abdulrafaysbiztalk.wordpress.com/494/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/abdulrafaysbiztalk.wordpress.com/494/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/abdulrafaysbiztalk.wordpress.com/494/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/abdulrafaysbiztalk.wordpress.com/494/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/abdulrafaysbiztalk.wordpress.com/494/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/abdulrafaysbiztalk.wordpress.com/494/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=abdulrafaysbiztalk.wordpress.com&amp;blog=7351933&amp;post=494&amp;subd=abdulrafaysbiztalk&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://abdulrafaysbiztalk.wordpress.com/2012/01/03/biztalk-server-mvp-2012/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/308019870f24ca37b6647b4b51296895?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Abdul Rafay</media:title>
		</media:content>

		<media:content url="http://abdulrafaysbiztalk.files.wordpress.com/2012/01/mvp_horizontal_fullcolor_thumb.png" medium="image">
			<media:title type="html">MVP_Horizontal_FullColor</media:title>
		</media:content>
	</item>
		<item>
		<title>BizTalk 2010 Web Console</title>
		<link>http://abdulrafaysbiztalk.wordpress.com/2011/10/01/biztalk-2010-web-console/</link>
		<comments>http://abdulrafaysbiztalk.wordpress.com/2011/10/01/biztalk-2010-web-console/#comments</comments>
		<pubDate>Sat, 01 Oct 2011 22:57:05 +0000</pubDate>
		<dc:creator>Abdul Rafay</dc:creator>
				<category><![CDATA[BizTalk Web Console]]></category>
		<category><![CDATA[BizTalk 2009 Web Console]]></category>
		<category><![CDATA[BizTalk 2010 Web Console]]></category>

		<guid isPermaLink="false">https://abdulrafaysbiztalk.wordpress.com/2011/10/01/biztalk-2010-web-console/</guid>
		<description><![CDATA[I am very glad to announce the BizTalk Web Console version which is published on codeplex (http://btswebconsole.codeplex.com/) for public now. The demand for the web version of the BizTalk Administration console has been around by the community so I decided to develop it. Project Description BizTalk 2010 Web Console allows administrators/operators to perform operations below [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=abdulrafaysbiztalk.wordpress.com&amp;blog=7351933&amp;post=487&amp;subd=abdulrafaysbiztalk&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I am very glad to announce the BizTalk Web Console version which is published on codeplex (<a title="http://btswebconsole.codeplex.com/" href="http://btswebconsole.codeplex.com/">http://btswebconsole.codeplex.com/</a>) for public now.</p>
<p>The demand for the web version of the BizTalk Administration console has been around by the community so I decided to develop it. </p>
<p><strong>Project Description</strong>     <br />BizTalk 2010 Web Console allows administrators/operators to perform operations below from the browser.</p>
<ul>
<li>Stop/Start/Restart Host Instances </li>
<li>View Status of Service Instances by applying queries to the group. </li>
<li>Stop/Start/Unenlist Orchestrations, Send Ports and Send Port Group </li>
<li>Stop/Start Receive Locations </li>
</ul>
<ul>It works on Single/Multi-Server environment and has been tested on BizTalk Server 2009 and BizTalk Server 2010.</ul>
<ul>To deploy the application check the <a href="http://btswebconsole.codeplex.com/documentation" target="_blank">release notes</a> on codeplex.</ul>
<p><strong>Demo </strong></p>
<p><img src="http://abdulrafaysbiztalk.files.wordpress.com/2011/10/demo1.jpg?w=630" /></p>
<p>&#160;</p>
<p><img src="http://abdulrafaysbiztalk.files.wordpress.com/2011/10/demo2.jpg?w=630" /></p>
<p><img src="http://abdulrafaysbiztalk.files.wordpress.com/2011/10/demo3.jpg?w=630" /></p>
<br />Filed under: <a href='http://abdulrafaysbiztalk.wordpress.com/category/biztalk-web-console/'>BizTalk Web Console</a> Tagged: <a href='http://abdulrafaysbiztalk.wordpress.com/tag/biztalk-2009-web-console/'>BizTalk 2009 Web Console</a>, <a href='http://abdulrafaysbiztalk.wordpress.com/tag/biztalk-2010-web-console/'>BizTalk 2010 Web Console</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/abdulrafaysbiztalk.wordpress.com/487/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/abdulrafaysbiztalk.wordpress.com/487/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/abdulrafaysbiztalk.wordpress.com/487/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/abdulrafaysbiztalk.wordpress.com/487/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/abdulrafaysbiztalk.wordpress.com/487/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/abdulrafaysbiztalk.wordpress.com/487/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/abdulrafaysbiztalk.wordpress.com/487/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/abdulrafaysbiztalk.wordpress.com/487/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/abdulrafaysbiztalk.wordpress.com/487/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/abdulrafaysbiztalk.wordpress.com/487/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/abdulrafaysbiztalk.wordpress.com/487/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/abdulrafaysbiztalk.wordpress.com/487/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/abdulrafaysbiztalk.wordpress.com/487/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/abdulrafaysbiztalk.wordpress.com/487/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=abdulrafaysbiztalk.wordpress.com&amp;blog=7351933&amp;post=487&amp;subd=abdulrafaysbiztalk&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://abdulrafaysbiztalk.wordpress.com/2011/10/01/biztalk-2010-web-console/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/308019870f24ca37b6647b4b51296895?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Abdul Rafay</media:title>
		</media:content>

		<media:content url="http://abdulrafaysbiztalk.files.wordpress.com/2011/10/demo1.jpg" medium="image" />

		<media:content url="http://abdulrafaysbiztalk.files.wordpress.com/2011/10/demo2.jpg" medium="image" />

		<media:content url="http://abdulrafaysbiztalk.files.wordpress.com/2011/10/demo3.jpg" medium="image" />
	</item>
		<item>
		<title>Passed BizTalk 2010 Exam (70-595)</title>
		<link>http://abdulrafaysbiztalk.wordpress.com/2011/07/31/passed-biztalk-2010-exam-70-595/</link>
		<comments>http://abdulrafaysbiztalk.wordpress.com/2011/07/31/passed-biztalk-2010-exam-70-595/#comments</comments>
		<pubDate>Sun, 31 Jul 2011 10:14:00 +0000</pubDate>
		<dc:creator>Abdul Rafay</dc:creator>
				<category><![CDATA[BizTalk 2010]]></category>
		<category><![CDATA[BizTalk Server 2010 Exam]]></category>
		<category><![CDATA[MCTS 70-595]]></category>

		<guid isPermaLink="false">https://abdulrafaysbiztalk.wordpress.com/2011/07/31/passed-biztalk-2010-exam-70-595/</guid>
		<description><![CDATA[Yesterday I passed BizTalk 2010 Exam – 70-595 (TS: Developing Business Process and Integration Solutions by Using Microsoft BizTalk Server 2010) which was released on 30 March 2011. The questions were interesting and most of the questions were quite easy and I was able to answer them from my experience. Apart from my professional projects [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=abdulrafaysbiztalk.wordpress.com&amp;blog=7351933&amp;post=475&amp;subd=abdulrafaysbiztalk&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Yesterday I passed BizTalk 2010 Exam – <a href="http://www.microsoft.com/learning/en/us/exam.aspx?id=70-595" target="_blank">70-595 (TS: Developing Business Process and Integration Solutions by Using Microsoft BizTalk Server 2010)</a> which was released on 30 March 2011. The questions were interesting and most of the questions were quite easy and I was able to answer them from my experience. Apart from my professional projects I have learnt a lot from participating in the MSDN forums that is why the exam questions were quite familiar.</p>
<p>Because I read the NDA I can’t tell the level of simplicity <img class="wlEmoticon wlEmoticon-smile" style="border-style:none;" src="http://abdulrafaysbiztalk.files.wordpress.com/2011/07/wlemoticon-smile.png?w=630" alt="Smile" /> Well I prepared a lot for EDI and RFID and I was a bit better than before. For the rest of the sections I didn’t had to prepare as I could answer them easily. In my opinion anyone working for 3+ years can pass the exam.</p>
<p>I have passed BizTalk 2006 and BizTalk 2006 R2 previously but they were retired on 30 June 2011.</p>
<br />Filed under: <a href='http://abdulrafaysbiztalk.wordpress.com/category/biztalk-2010/'>BizTalk 2010</a> Tagged: <a href='http://abdulrafaysbiztalk.wordpress.com/tag/biztalk-server-2010-exam/'>BizTalk Server 2010 Exam</a>, <a href='http://abdulrafaysbiztalk.wordpress.com/tag/mcts-70-595/'>MCTS 70-595</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/abdulrafaysbiztalk.wordpress.com/475/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/abdulrafaysbiztalk.wordpress.com/475/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/abdulrafaysbiztalk.wordpress.com/475/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/abdulrafaysbiztalk.wordpress.com/475/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/abdulrafaysbiztalk.wordpress.com/475/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/abdulrafaysbiztalk.wordpress.com/475/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/abdulrafaysbiztalk.wordpress.com/475/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/abdulrafaysbiztalk.wordpress.com/475/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/abdulrafaysbiztalk.wordpress.com/475/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/abdulrafaysbiztalk.wordpress.com/475/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/abdulrafaysbiztalk.wordpress.com/475/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/abdulrafaysbiztalk.wordpress.com/475/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/abdulrafaysbiztalk.wordpress.com/475/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/abdulrafaysbiztalk.wordpress.com/475/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=abdulrafaysbiztalk.wordpress.com&amp;blog=7351933&amp;post=475&amp;subd=abdulrafaysbiztalk&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://abdulrafaysbiztalk.wordpress.com/2011/07/31/passed-biztalk-2010-exam-70-595/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/308019870f24ca37b6647b4b51296895?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Abdul Rafay</media:title>
		</media:content>

		<media:content url="http://abdulrafaysbiztalk.files.wordpress.com/2011/07/wlemoticon-smile.png" medium="image">
			<media:title type="html">Smile</media:title>
		</media:content>
	</item>
		<item>
		<title>Passed BizTalk 2006 R2 exam (70-241)</title>
		<link>http://abdulrafaysbiztalk.wordpress.com/2011/05/22/passed-biztalk-2006-r2-exam-70-241/</link>
		<comments>http://abdulrafaysbiztalk.wordpress.com/2011/05/22/passed-biztalk-2006-r2-exam-70-241/#comments</comments>
		<pubDate>Sun, 22 May 2011 17:21:56 +0000</pubDate>
		<dc:creator>Abdul Rafay</dc:creator>
				<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[BizTalk Server 2006 R2 exam]]></category>
		<category><![CDATA[MCTS 70-241]]></category>

		<guid isPermaLink="false">https://abdulrafaysbiztalk.wordpress.com/2011/05/22/passed-biztalk-2006-r2-exam-70-241/</guid>
		<description><![CDATA[I know I am late (probably will be the last) in taking BizTalk 2006 R2 (70-241) exam (Released in October 2009) and will be now retired on June 30 2011 with BizTalk 2006 (70-235) which I passed in June 2008. So I am heads up with BizTalk 2010 (70-595) exam which just released on March [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=abdulrafaysbiztalk.wordpress.com&amp;blog=7351933&amp;post=470&amp;subd=abdulrafaysbiztalk&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I know I am late (probably will be the last) in taking <a href="http://www.microsoft.com/learning/en/us/exam.aspx?ID=70-241&amp;locale=en-us" target="_blank">BizTalk 2006 R2 (70-241)</a> exam (Released in October 2009) and will be now retired on June 30 2011 with <a href="http://www.microsoft.com/learning/en/us/exam.aspx?ID=70-235&amp;locale=en-us" target="_blank">BizTalk 2006 (70-235)</a> which I passed in June 2008. So I am heads up with <a href="http://www.microsoft.com/learning/en/us/exam.aspx?ID=70-595&amp;locale=en-us" target="_blank">BizTalk 2010 (70-595)</a> exam which just released on March 30 2011 and will be taking it next week. Hope to pass that too!</p>
<p>So my passion for BizTalk compelled me to register for BizTalk 2006 R2 exam with BizTalk 2010. Even though it is retiring it was worth taking BizTalk R2 because no one is perfect and I was able to discover my weakness in BizTalk extended capabilities (RFID, AS2, EDI). So when preparing for BizTalk 2010 I am focusing on EDI and RFID which also helped me in BizTalk 2006 R2 exam.</p>
<br />Filed under: <a href='http://abdulrafaysbiztalk.wordpress.com/category/biztalk/'>BizTalk</a> Tagged: <a href='http://abdulrafaysbiztalk.wordpress.com/tag/biztalk-server-2006-r2-exam/'>BizTalk Server 2006 R2 exam</a>, <a href='http://abdulrafaysbiztalk.wordpress.com/tag/mcts-70-241/'>MCTS 70-241</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/abdulrafaysbiztalk.wordpress.com/470/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/abdulrafaysbiztalk.wordpress.com/470/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/abdulrafaysbiztalk.wordpress.com/470/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/abdulrafaysbiztalk.wordpress.com/470/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/abdulrafaysbiztalk.wordpress.com/470/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/abdulrafaysbiztalk.wordpress.com/470/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/abdulrafaysbiztalk.wordpress.com/470/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/abdulrafaysbiztalk.wordpress.com/470/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/abdulrafaysbiztalk.wordpress.com/470/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/abdulrafaysbiztalk.wordpress.com/470/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/abdulrafaysbiztalk.wordpress.com/470/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/abdulrafaysbiztalk.wordpress.com/470/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/abdulrafaysbiztalk.wordpress.com/470/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/abdulrafaysbiztalk.wordpress.com/470/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=abdulrafaysbiztalk.wordpress.com&amp;blog=7351933&amp;post=470&amp;subd=abdulrafaysbiztalk&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://abdulrafaysbiztalk.wordpress.com/2011/05/22/passed-biztalk-2006-r2-exam-70-241/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/308019870f24ca37b6647b4b51296895?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Abdul Rafay</media:title>
		</media:content>
	</item>
		<item>
		<title>MSDTC errors when BizTalk Cluster is destroyed</title>
		<link>http://abdulrafaysbiztalk.wordpress.com/2011/05/15/msdtc-errors-when-biztalk-cluster-is-destroyed/</link>
		<comments>http://abdulrafaysbiztalk.wordpress.com/2011/05/15/msdtc-errors-when-biztalk-cluster-is-destroyed/#comments</comments>
		<pubDate>Sun, 15 May 2011 08:53:35 +0000</pubDate>
		<dc:creator>Abdul Rafay</dc:creator>
				<category><![CDATA[BizTalk 2010]]></category>
		<category><![CDATA[BizTalk Clustering MSDTC errors]]></category>

		<guid isPermaLink="false">https://abdulrafaysbiztalk.wordpress.com/?p=468</guid>
		<description><![CDATA[I was working on clustering BizTalk servers in UAT, the MSDTC service was clustered as resource, ENTSSO with BizTalk host instances. I had to later on to destroy the clusters and make a new cluster with different UAT machines. I had removed the resources (MSDTC, ENTSSO), deleted clustered host instances and then evicted the machines [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=abdulrafaysbiztalk.wordpress.com&amp;blog=7351933&amp;post=468&amp;subd=abdulrafaysbiztalk&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I was working on clustering BizTalk servers in UAT, the MSDTC service was clustered as resource, ENTSSO with BizTalk host instances. I had to later on to destroy the clusters and make a new cluster with different UAT machines. I had removed the resources (MSDTC, ENTSSO), deleted clustered host instances and then evicted the machines and then destroyed the cluster. I was sure everything is cleaned up. One more thing had to be done was to remove the DNS entry from the domain of the cluster. </p>
<p>After that I had to configure single server configuration on the destroyed cluster node. One of the Node had no issues and BizTalk was configured correctly on the other machine I was having MSDTC errors which are quite common and a lot of KB, blog posts and forum topics can be found.</p>
<p>First I tried to remove MSDTC by <a href="http://support.microsoft.com/kb/867520" target="_blank">removing registry entries</a> and then uninstalling and installing the MSDTC. By this I was able to see all the tabs instead of two in the Component Services console. Before I could see only two tabs but after deleting the keys and re-installing MSDTC I could see all the tabs (General, Options, Default Properties, Default protocols, COM Security, MSDTC). When component services management console is opened by the (<strong>dcomcnfg</strong>), I was getting the same errors by accessing the Default Protocols and MSDTC tab. Also noticed that My computer (icon was red). When I tried to open Default Properties tab I was getting the error below.</p>
<p>MSDTC Service    <br />&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;     <br /><strong>There are no more endpoints available from the endpoint mapper.</strong></p>
<p>When I tried to open the MSDTC tab I got the error below and it was still showing MSDTC as a clustered resource. </p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;    <br />Catalog Error     <br />&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;     <br /><strong>An error occurred while processing the last operation.</strong></p>
<p><strong>Error code 8004E00F &#8211; COM+ was unable to talk to the Microsoft Distributed Transaction Coordinator.</strong></p>
<p>When I went to the server manager I wanted to remove the Failover Cluster Manager feature and I got the error below.</p>
<p>[Window Title]    <br />Remove Features Wizard</p>
<p>[Main Instruction]    <br />Cannot remove Failover Clustering</p>
<p>[Content]    <br /><strong>This server is an active node in a failover cluster.&#160; Uninstalling the Failover Clustering feature on this node may impact the availability of clustered services and applications.&#160; It is recommended that you first evict the server from cluster membership.&#160; This can be done through the Failover Cluster Management snap-in by expanding the console tree under Nodes, selecting the node, clicking More Actions, and then clicking Evict.</strong></p>
<p>It is evident that the eviction of the node, removal of the resources and destruction of the clustered was not done cleanly. I didn’t miss anything I guess as the other node was fine after removing the DNS entry from the domain. I found Symon Perriman’s <a href="http://blogs.msdn.com/b/clustering/archive/2010/03/26/9985790.aspx" target="_blank">post</a> mentioning that all the nodes has to be online before evicting the nodes and destroying the cluster.</p>
<p>Well thanks to powershell we can force the node to be removed from the cluster.&#160; </p>
<p><strong><font size="2">cluster.exe node –NodeName /force</font></strong></p>
<p><a href="http://abdulrafaysbiztalk.files.wordpress.com/2011/05/image.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="http://abdulrafaysbiztalk.files.wordpress.com/2011/05/image_thumb.png?w=446&#038;h=223" width="446" height="223" /></a></p>
<p>&#160;</p>
<p>MSDTC is healthy again and I am able to configure BizTalk on this node. Lesson learnt!</p>
<p><a href="http://abdulrafaysbiztalk.files.wordpress.com/2011/05/image1.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;margin:0;" title="image" border="0" alt="image" src="http://abdulrafaysbiztalk.files.wordpress.com/2011/05/image_thumb1.png?w=244&#038;h=228" width="244" height="228" /></a></p>
<br />Filed under: <a href='http://abdulrafaysbiztalk.wordpress.com/category/biztalk-2010/'>BizTalk 2010</a> Tagged: <a href='http://abdulrafaysbiztalk.wordpress.com/tag/biztalk-clustering-msdtc-errors/'>BizTalk Clustering MSDTC errors</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/abdulrafaysbiztalk.wordpress.com/468/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/abdulrafaysbiztalk.wordpress.com/468/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/abdulrafaysbiztalk.wordpress.com/468/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/abdulrafaysbiztalk.wordpress.com/468/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/abdulrafaysbiztalk.wordpress.com/468/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/abdulrafaysbiztalk.wordpress.com/468/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/abdulrafaysbiztalk.wordpress.com/468/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/abdulrafaysbiztalk.wordpress.com/468/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/abdulrafaysbiztalk.wordpress.com/468/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/abdulrafaysbiztalk.wordpress.com/468/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/abdulrafaysbiztalk.wordpress.com/468/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/abdulrafaysbiztalk.wordpress.com/468/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/abdulrafaysbiztalk.wordpress.com/468/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/abdulrafaysbiztalk.wordpress.com/468/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=abdulrafaysbiztalk.wordpress.com&amp;blog=7351933&amp;post=468&amp;subd=abdulrafaysbiztalk&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://abdulrafaysbiztalk.wordpress.com/2011/05/15/msdtc-errors-when-biztalk-cluster-is-destroyed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/308019870f24ca37b6647b4b51296895?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Abdul Rafay</media:title>
		</media:content>

		<media:content url="http://abdulrafaysbiztalk.files.wordpress.com/2011/05/image_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://abdulrafaysbiztalk.files.wordpress.com/2011/05/image_thumb1.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Orchestration not visible in BizTalk Application</title>
		<link>http://abdulrafaysbiztalk.wordpress.com/2011/05/14/orchestration-not-visible-in-biztalk-application/</link>
		<comments>http://abdulrafaysbiztalk.wordpress.com/2011/05/14/orchestration-not-visible-in-biztalk-application/#comments</comments>
		<pubDate>Sat, 14 May 2011 21:18:17 +0000</pubDate>
		<dc:creator>Abdul Rafay</dc:creator>
				<category><![CDATA[BizTalk 2010]]></category>

		<guid isPermaLink="false">https://abdulrafaysbiztalk.wordpress.com/2011/05/14/orchestration-not-visible-in-biztalk-application/</guid>
		<description><![CDATA[I was working on the Dev-Lab02C in BTS2010Labs. I have been using WCF-SQL adapter since BTS 2006 R2, I don’t know the exact reason why I am doing this Lab but for the sake of completion and keep me self satisfied that I don’t miss anything in BTS 2010 before the exam. I want to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=abdulrafaysbiztalk.wordpress.com&amp;blog=7351933&amp;post=463&amp;subd=abdulrafaysbiztalk&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I was working on the Dev-Lab02C in <a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=35c8fb51-a1e3-496e-841a-b48701a80c40" target="_blank">BTS2010Labs</a>. I have been using WCF-SQL adapter since BTS 2006 R2, I don’t know the exact reason why I am doing this Lab but for the sake of completion and keep me self satisfied that I don’t miss anything in BTS 2010 before the exam. I want to go through all of the labs, tutorials, documentation and videos available (won’t do that practically) <img style="border-style:none;" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://abdulrafaysbiztalk.files.wordpress.com/2011/05/wlemoticon-smile.png?w=630" />.</p>
<p>Every BizTalk/.NET developer would be familiar with the Build Action property of each item in VS. With the BizTalk project the artifacts has two options <strong>BTSCompile</strong> and <strong>None </strong>(which are self explanatory). In order to use the WCF SQL adapter metadata has to be generated as I did for this lab. </p>
<p>I renamed the orchestration file and type as it was mentioned in the lab, I didn’t notice the Build Action property. I deployed the projects the orchestration was not appearing in the application. I deleted the application two times, verified the assembly was in the GAC, I checked the resources of the application it had the assembly as a resource so where was the orchestration?</p>
<p>I checked the type of the orchestration, Type modifier everything was fine. I saw the orchestration property it was set to <strong>Content</strong>. This is the first time I have seen this, I thought something new in BTS2010, I clicked the dropdown and there were only two “usual” options without Content. I tried to reproduce this again and again, now I regret that I would have taken a screenshot before changing it.</p>
<p>Well after changing it to BTSCompile I could see the orchestration in the application. Did anyone of you faced the same issue?</p>
<br />Filed under: <a href='http://abdulrafaysbiztalk.wordpress.com/category/biztalk-2010/'>BizTalk 2010</a> Tagged: <a href='http://abdulrafaysbiztalk.wordpress.com/tag/biztalk-2010/'>BizTalk 2010</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/abdulrafaysbiztalk.wordpress.com/463/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/abdulrafaysbiztalk.wordpress.com/463/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/abdulrafaysbiztalk.wordpress.com/463/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/abdulrafaysbiztalk.wordpress.com/463/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/abdulrafaysbiztalk.wordpress.com/463/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/abdulrafaysbiztalk.wordpress.com/463/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/abdulrafaysbiztalk.wordpress.com/463/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/abdulrafaysbiztalk.wordpress.com/463/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/abdulrafaysbiztalk.wordpress.com/463/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/abdulrafaysbiztalk.wordpress.com/463/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/abdulrafaysbiztalk.wordpress.com/463/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/abdulrafaysbiztalk.wordpress.com/463/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/abdulrafaysbiztalk.wordpress.com/463/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/abdulrafaysbiztalk.wordpress.com/463/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=abdulrafaysbiztalk.wordpress.com&amp;blog=7351933&amp;post=463&amp;subd=abdulrafaysbiztalk&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://abdulrafaysbiztalk.wordpress.com/2011/05/14/orchestration-not-visible-in-biztalk-application/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/308019870f24ca37b6647b4b51296895?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Abdul Rafay</media:title>
		</media:content>

		<media:content url="http://abdulrafaysbiztalk.files.wordpress.com/2011/05/wlemoticon-smile.png" medium="image">
			<media:title type="html">Smile</media:title>
		</media:content>
	</item>
		<item>
		<title>BizTalk Server MVP 2011</title>
		<link>http://abdulrafaysbiztalk.wordpress.com/2011/01/01/biztalk-server-mvp-2011/</link>
		<comments>http://abdulrafaysbiztalk.wordpress.com/2011/01/01/biztalk-server-mvp-2011/#comments</comments>
		<pubDate>Sat, 01 Jan 2011 15:40:07 +0000</pubDate>
		<dc:creator>Abdul Rafay</dc:creator>
				<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[BizTalk MVP]]></category>
		<category><![CDATA[MVP 2011]]></category>

		<guid isPermaLink="false">https://abdulrafaysbiztalk.wordpress.com/?p=451</guid>
		<description><![CDATA[Since two years I am getting a great news of being Microsoft’s Most Valuable professional (MVP) on the new year. I thank my peers, community members, fellow MVPs, MVP Lead and Microsoft which honored me and recognized my contributions in BizTalk communities. Last year I gained knowledge, experience and more insight in BizTalk which includes [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=abdulrafaysbiztalk.wordpress.com&amp;blog=7351933&amp;post=451&amp;subd=abdulrafaysbiztalk&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Since two years I am getting a great news of being Microsoft’s Most Valuable professional (MVP) on the new year. I thank my peers, community members, fellow MVPs, MVP Lead and Microsoft which honored me and recognized my contributions in BizTalk communities.</p>
<p>Last year I gained knowledge, experience and more insight in BizTalk which includes SWIFT accelerator, ESB Toolkit, worked with more adapters, developed some pipelines, lots of services etc.. In the beginning of the year I worked as a sharepoint developer/administrator but BizTalk turned out to be my destiny and I got a chance in a financial institution to be with a very good BizTalk team. We delivered successful middleware projects and had effectively used the combination of BizTalk, WCF and Windows Application Fabric technologies to follow the principles of SOA. </p>
<p>Hope I have a more prosperous year and I continue to serve the BizTalk community more effectively with the best of my knowledge and experience.</p>
<p><a href="http://abdulrafaysbiztalk.files.wordpress.com/2011/01/mvp_horizontal_fullcolor.png"><img class="alignnone size-medium wp-image-453" title="MVP_Horizontal_FullColor" src="http://abdulrafaysbiztalk.files.wordpress.com/2011/01/mvp_horizontal_fullcolor.png?w=300&#038;h=121" alt="" width="300" height="121" /></a></p>
<br />Filed under: <a href='http://abdulrafaysbiztalk.wordpress.com/category/biztalk/'>BizTalk</a> Tagged: <a href='http://abdulrafaysbiztalk.wordpress.com/tag/biztalk-mvp/'>BizTalk MVP</a>, <a href='http://abdulrafaysbiztalk.wordpress.com/tag/mvp-2011/'>MVP 2011</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/abdulrafaysbiztalk.wordpress.com/451/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/abdulrafaysbiztalk.wordpress.com/451/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/abdulrafaysbiztalk.wordpress.com/451/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/abdulrafaysbiztalk.wordpress.com/451/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/abdulrafaysbiztalk.wordpress.com/451/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/abdulrafaysbiztalk.wordpress.com/451/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/abdulrafaysbiztalk.wordpress.com/451/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/abdulrafaysbiztalk.wordpress.com/451/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/abdulrafaysbiztalk.wordpress.com/451/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/abdulrafaysbiztalk.wordpress.com/451/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/abdulrafaysbiztalk.wordpress.com/451/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/abdulrafaysbiztalk.wordpress.com/451/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/abdulrafaysbiztalk.wordpress.com/451/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/abdulrafaysbiztalk.wordpress.com/451/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=abdulrafaysbiztalk.wordpress.com&amp;blog=7351933&amp;post=451&amp;subd=abdulrafaysbiztalk&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://abdulrafaysbiztalk.wordpress.com/2011/01/01/biztalk-server-mvp-2011/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/308019870f24ca37b6647b4b51296895?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Abdul Rafay</media:title>
		</media:content>

		<media:content url="http://abdulrafaysbiztalk.files.wordpress.com/2011/01/mvp_horizontal_fullcolor.png?w=300" medium="image">
			<media:title type="html">MVP_Horizontal_FullColor</media:title>
		</media:content>
	</item>
		<item>
		<title>Using IIS Warm-Up module to Load SSO &amp; Configuration data</title>
		<link>http://abdulrafaysbiztalk.wordpress.com/2010/12/06/using-iis-warm-up-module-to-load-sso-configuration-data/</link>
		<comments>http://abdulrafaysbiztalk.wordpress.com/2010/12/06/using-iis-warm-up-module-to-load-sso-configuration-data/#comments</comments>
		<pubDate>Mon, 06 Dec 2010 06:34:18 +0000</pubDate>
		<dc:creator>Abdul Rafay</dc:creator>
				<category><![CDATA[AppFabric]]></category>
		<category><![CDATA[BizTalk 2010]]></category>
		<category><![CDATA[IIS Warm-Up Module]]></category>
		<category><![CDATA[Windows Server AppFabric]]></category>

		<guid isPermaLink="false">https://abdulrafaysbiztalk.wordpress.com/?p=445</guid>
		<description><![CDATA[When the host instances/IIS is restarted or the application pools are recycled all the pre-loading execution is done on the first hit due to which the first hit of the web service can be really slow. Already in the BizTalk environment if the Host Instances are restarted/IIS Reset the first service hit is very slow. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=abdulrafaysbiztalk.wordpress.com&amp;blog=7351933&amp;post=445&amp;subd=abdulrafaysbiztalk&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>When the host instances/IIS is restarted or the application pools are recycled all the pre-loading execution is done on the first hit due to which the first hit of the web service can be really slow. Already in the BizTalk environment if the Host Instances are restarted/IIS Reset the first service hit is very slow.</p>
<p>Now you can leverage with the capabilities of ISS Warm Up module to run a pre-loading script. You can put all the code which is required to run your services. The loading of the SSO &amp; configuration data into Windows AppFabric Cache can be a good candidate to get the benefit from IIS Warm Up module.</p>
<p>Let’s see what it has to offer and how it works.</p>
<h3>Advantages:</h3>
<p>1- With the IIS Application Warm-Up module, initialization occurs before the IIS application pool informs the WAS that it is ready to receive requests from the network. This means that even when the first request comes in the Warm Up module would have started executing.</p>
<p>2- During application pool recycling, the worker process that is shutting down continues to process requests until the new worker process has finished the warm-up stage and reported to the WAS that it is ready to receive requests. The WAS then shuts down the old worker process.</p>
<h3>Installing the IIS Warm Up module:</h3>
<p>You can download the IIS Module from <a href="http://www.iis.net/download/applicationwarmup">here</a>. Download the package and run it. Open the IIS manager and in any of the site/applications feature tab you will be able to see the <strong>Application Warm-Up</strong>.</p>
<div><a href="http://abdulrafaysbiztalk.files.wordpress.com/2010/12/warmupconfigured.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="WarmUpConfigured" src="http://abdulrafaysbiztalk.files.wordpress.com/2010/12/warmupconfigured_thumb.png?w=513&#038;h=185" border="0" alt="WarmUpConfigured" width="513" height="185" /></a></div>
<p><a href="http://abdulrafaysbiztalk.files.wordpress.com/2010/12/warmupconfigured.png"> </p>
<p></a></p>
<h3>Create, deploy and configure the Warm Up application:</h3>
<p>I had to call two functions that Load all the SSO data and the Configuration data from a Sharepoint List into WAF Cache. I created a new ASP.NET project (<strong>WarmUpApp</strong>) and add the reference to the assembly containing the preloading methods and called them in the <strong>Page_Load</strong> event.</p>
<p>Deployed the application to the site in which my other WCF/BizTalk Orchestrations exposes as WCF services are running. Since my site and all the applications running under it run under the same application pool I will have the application deployed in this site.</p>
<p>Next create the application in the IIS.</p>
<p><a href="http://abdulrafaysbiztalk.files.wordpress.com/2010/12/warmupapp.png"><img style="padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="WarmUpApp" src="http://abdulrafaysbiztalk.files.wordpress.com/2010/12/warmupapp_thumb.png?w=526&#038;h=254" border="0" alt="WarmUpApp" width="526" height="254" /></a></p>
<p>After deploying the application it should be configured to be called from the warm up module when the Application Pool recycles/IIS resets.</p>
<p>1- Go to the application and in the features tab double-click the <strong>Application Warm-Up</strong> module.</p>
<p>2- Right Click the page and click Add Request or in the actions tab click Add Request.</p>
<p>3- Add the application URL relative to the <strong>application</strong> root. The page is on the root of application “WarmUpApp” so I will give the page path “/WarmUp.aspx”. Leave the status codes and the Request context parameter as it is.</p>
<p><a href="http://abdulrafaysbiztalk.files.wordpress.com/2010/12/addrequest.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="AddRequest" src="http://abdulrafaysbiztalk.files.wordpress.com/2010/12/addrequest_thumb.png?w=319&#038;h=288" border="0" alt="AddRequest" width="319" height="288" /></a></p>
<ul>
<li><strong>Status code(s)</strong>. You can define status code(s) that you expect in the response. If the response is outside the defined range, the IIS Application Warm-Up module logs this in the Application Eventlog and continues with the next request.</li>
<li><strong>Request context parameter</strong>. You can define a string that will be added to the request as server variable; this lets you check for this request variable in your application code, which in turn lets you distinguish requests that were sent from the Warm-Up module from regular requests.</li>
<li><strong>Request send mode</strong>. You can send requests either synchronously or asynchronously. The Warm-Up module processes requests by first sending all asynchronous requests (using separate threads) and then sending synchronous requests. The Warm-Up module waits for the responses from each synchronous request before it sends the next request. The Warm-Up module then waits for responses from outstanding asynchronous requests before returning control to the server.</li>
</ul>
<p>Next Right click the request and click settings or Click settings from the actions pane. Click on the checkboxes <strong>Enable Application Warm-Up </strong>and <strong>Start Application pool “X” when the service restarts</strong> options. You will be able to see the applications that are running under this application pool.</p>
<p><a href="http://abdulrafaysbiztalk.files.wordpress.com/2010/12/warmupsettings.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="WarmupSettings" src="http://abdulrafaysbiztalk.files.wordpress.com/2010/12/warmupsettings_thumb.png?w=325&#038;h=297" border="0" alt="WarmupSettings" width="325" height="297" /></a></p>
<p>That’s what is needed to deploy &amp; configure the module for IIS Warm-UP module. I have put some logging in the Event Log to see when I manually recycle the application pool or run the iisreset command the warm up module is executed successfully.</p>
<p><a href="http://abdulrafaysbiztalk.files.wordpress.com/2010/12/iisreset.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="IISreset" src="http://abdulrafaysbiztalk.files.wordpress.com/2010/12/iisreset_thumb.png?w=644&#038;h=160" border="0" alt="IISreset" width="644" height="160" /></a></p>
<p>I restarted the cluster to empty the cache contents and after resetting run the Get-CacheStatistics command to see if the script populated the cache successfully.</p>
<div><a href="http://abdulrafaysbiztalk.files.wordpress.com/2010/12/cachestatistics1.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="CacheStatistics" src="http://abdulrafaysbiztalk.files.wordpress.com/2010/12/cachestatistics_thumb1.png?w=527&#038;h=263" border="0" alt="CacheStatistics" width="527" height="263" /></a></div>
<p><a href="http://abdulrafaysbiztalk.files.wordpress.com/2010/12/cachestatistics1.png"> </p>
<p></a></p>
<h3>How does it help in the BizTalk Middleware scenario?</h3>
<p>The orchestrations in BizTalk which are exposed as a WCF Service and the WCF services will benefit from the IIS Warm-Up module. When the application pool recycles/ IIS Resets the IIS Warm-Up module will run my “<a href="http://abdulrafaysbiztalk.wordpress.com/2010/12/01/using-windows-server-appfabric-caching-for-storing-sso-configuration-data/"><strong>Storing SSO &amp; Configuration data into WAF Cache</strong></a>” module. As I have mentioned in my previous post that by using WAF Cache it has no effect of restarting the host instances or even resetting the IIS. When the Distributed cache service is restarted the cache is cleared during that the services will retrieve data from the sources and will be populating the cache. Thus, a performance hit. In that situation recycling the pool manually or if the recycling interval is about to elapse the warm-up module will re-populate the cache.</p>
<p>Restarting the cache cluster manually would be rare but the cache is based on TTL (Time To Live) and will be expired after some time. I would use the warm-up module to re-populate the cache after it is expired. Therefore I will keep the TTL value (in seconds) in the cache configuration equal to the Application pool recycling interval (in minutes).</p>
<p>I still have to test this on UAT and measure the statistics but theoretically and ideally when the first service request comes in my SSO and Configuration data will already be in the cache so with WAF Caching and this Warm-Up module my applications will find their keys from the cache.</p>
<p>In my required scenario the administrators were asking that if the credentials changed/added in SSO or Sharepoint configuration list they would stop IIS and receive locations update SSO/Sharepoint List and start IIS. In this situation the cache would be re-populated in the WAF Cache Cluster.</p>
<p>You can feel free to put in any pre-configuration data in the warm up module and avoid them being loaded when the first hit comes in.</p>
<div id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:3d858872-43da-45cf-85dc-e36f756b12af" class="wlWriterEditableSmartContent" style="display:inline;float:none;margin:0;padding:0;">Technorati Tags: <a rel="tag" href="http://technorati.com/tags/IIS+Warm-Up+Module">IIS Warm-Up Module</a>,<a rel="tag" href="http://technorati.com/tags/Windows+Application+Fabric+Cache">Windows Application Fabric Cache</a>,<a rel="tag" href="http://technorati.com/tags/BizTalk+2010">BizTalk 2010</a></div>
<br />Filed under: <a href='http://abdulrafaysbiztalk.wordpress.com/category/appfabric/'>AppFabric</a>, <a href='http://abdulrafaysbiztalk.wordpress.com/category/biztalk-2010/'>BizTalk 2010</a> Tagged: <a href='http://abdulrafaysbiztalk.wordpress.com/tag/biztalk-2010/'>BizTalk 2010</a>, <a href='http://abdulrafaysbiztalk.wordpress.com/tag/iis-warm-up-module/'>IIS Warm-Up Module</a>, <a href='http://abdulrafaysbiztalk.wordpress.com/tag/windows-server-appfabric/'>Windows Server AppFabric</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/abdulrafaysbiztalk.wordpress.com/445/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/abdulrafaysbiztalk.wordpress.com/445/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/abdulrafaysbiztalk.wordpress.com/445/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/abdulrafaysbiztalk.wordpress.com/445/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/abdulrafaysbiztalk.wordpress.com/445/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/abdulrafaysbiztalk.wordpress.com/445/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/abdulrafaysbiztalk.wordpress.com/445/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/abdulrafaysbiztalk.wordpress.com/445/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/abdulrafaysbiztalk.wordpress.com/445/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/abdulrafaysbiztalk.wordpress.com/445/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/abdulrafaysbiztalk.wordpress.com/445/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/abdulrafaysbiztalk.wordpress.com/445/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/abdulrafaysbiztalk.wordpress.com/445/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/abdulrafaysbiztalk.wordpress.com/445/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=abdulrafaysbiztalk.wordpress.com&amp;blog=7351933&amp;post=445&amp;subd=abdulrafaysbiztalk&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://abdulrafaysbiztalk.wordpress.com/2010/12/06/using-iis-warm-up-module-to-load-sso-configuration-data/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/308019870f24ca37b6647b4b51296895?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Abdul Rafay</media:title>
		</media:content>

		<media:content url="http://abdulrafaysbiztalk.files.wordpress.com/2010/12/warmupconfigured_thumb.png" medium="image">
			<media:title type="html">WarmUpConfigured</media:title>
		</media:content>

		<media:content url="http://abdulrafaysbiztalk.files.wordpress.com/2010/12/warmupapp_thumb.png" medium="image">
			<media:title type="html">WarmUpApp</media:title>
		</media:content>

		<media:content url="http://abdulrafaysbiztalk.files.wordpress.com/2010/12/addrequest_thumb.png" medium="image">
			<media:title type="html">AddRequest</media:title>
		</media:content>

		<media:content url="http://abdulrafaysbiztalk.files.wordpress.com/2010/12/warmupsettings_thumb.png" medium="image">
			<media:title type="html">WarmupSettings</media:title>
		</media:content>

		<media:content url="http://abdulrafaysbiztalk.files.wordpress.com/2010/12/iisreset_thumb.png" medium="image">
			<media:title type="html">IISreset</media:title>
		</media:content>

		<media:content url="http://abdulrafaysbiztalk.files.wordpress.com/2010/12/cachestatistics_thumb1.png" medium="image">
			<media:title type="html">CacheStatistics</media:title>
		</media:content>
	</item>
		<item>
		<title>Using Windows Server AppFabric Caching for Storing SSO &amp; Configuration data</title>
		<link>http://abdulrafaysbiztalk.wordpress.com/2010/12/01/using-windows-server-appfabric-caching-for-storing-sso-configuration-data/</link>
		<comments>http://abdulrafaysbiztalk.wordpress.com/2010/12/01/using-windows-server-appfabric-caching-for-storing-sso-configuration-data/#comments</comments>
		<pubDate>Wed, 01 Dec 2010 18:09:59 +0000</pubDate>
		<dc:creator>Abdul Rafay</dc:creator>
				<category><![CDATA[AppFabric]]></category>
		<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[BizTalk Development]]></category>
		<category><![CDATA[SOA]]></category>
		<category><![CDATA[Caching]]></category>
		<category><![CDATA[SSO]]></category>
		<category><![CDATA[Windows Server AppFabric]]></category>

		<guid isPermaLink="false">https://abdulrafaysbiztalk.wordpress.com/?p=394</guid>
		<description><![CDATA[Storing SSO data in cache can be very useful in a low latency scenario. Performance of services can also be improved by caching configuration data such as a Status Codes table (which has business level exception status codes and descriptions). Using cache in SOA and BPM solutions is not new neither storing SSO data in [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=abdulrafaysbiztalk.wordpress.com&amp;blog=7351933&amp;post=394&amp;subd=abdulrafaysbiztalk&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Storing SSO data in cache can be very useful in a low latency scenario. Performance of services can also be improved by caching configuration data such as a Status Codes table (which has business level exception status codes and descriptions).</p>
<p>Using cache in SOA and BPM solutions is not new neither storing SSO data in the cache. You can read <a href="http://msdn.microsoft.com/en-us/library/aa561067(v=BTS.70).aspx">Using SSO Efficiently in the Service Oriented Solution</a> and <a href="http://msdn.microsoft.com/en-us/library/aa559641(v=BTS.70).aspx">Business Process Management Solution</a>.</p>
<h3>Problems with Enterprise Library Caching:</h3>
<p>Before AppFabric we could use Enterprise Library caching which had scalability and synchronization problems which means that it was a single server in memory cache which would not be an option with BizTalk running in a Farm and it would cause inconsistency. The other problem is in-process residing of cache in BizTalk Host instances. If the host instances are restarted it means that the cache would load again and causing the cache to populate. The other problem would be if there was a change in the source data the cache would have to be refreshed either by the time interval specified or by enforcement by restarting the host instances. Restarting the host instance can be a heavy operation for the services running and is not an option in production environment. If the cache would be refreshed after a specific time interval it is fine for a single server but in a multi-server environment it can create inconsistency of data for a specific period of time. Consider the refresh interval is 5 minutes on both servers. On Server A the cache will be refreshed after 3 minutes but on Server B it will be after 15 Seconds. In this scenario Server A will be running with the old data for 3 minutes. Windows Server AppFabric has solved this issue and now we can leverage with the features of the technology and incorporate it with BizTalk.</p>
<h3>Windows AppFabric Cache features and advantages:</h3>
<p>The best would be to go through <a href="http://msdn.microsoft.com/library/cc645013.aspx">this</a> article to have an understanding of the architecture and benefits of the caching features. Here is an excerpt of features from this article.</p>
<ul>
<li>Caches any serializable CLR object and provides access through simple cache APIs.</li>
<li>Supports enterprise scale: tens to hundreds of computers.</li>
<li>Configurable to run as a service accessed over the network</li>
<li>Supports dynamic scaling-out by adding new nodes.</li>
<li>Backup copy provides high availability.</li>
<li>Automatic load balancing.</li>
<li>Integration with administration and monitoring tools such as PowerShell, Event Tracing for Windows, System Center, etc.</li>
<li>Provides seamless integration with ASP.NET to be able to cache session data in without having to write it to source databases. It can also be used as a cache for application data to be able to cache application data across the entire Web farm.</li>
<li>Follows the cache-aside architecture (also known as Explicit Caching) for V1. That is, you must decide explicitly which objects to put/remove in your applications and the cache does not synchronize with any source database automatically.</li>
</ul>
<p>Let’s see now how the problems of previous caching techniques can be solved by Windows AppFabric. For this first we need to understand our requirements because there are a lot of variations of AppFabric caching host and client. You need to analyze which caching hosting options would fit into your scenario and what client you would be writing for your caching. The overview of them is given below.</p>
<h3>Windows AppFabric Host Configurations:</h3>
<p>On one or more servers the AppFabric Cache service will be running as a Windows service. The servers should be clustered and when using with BizTalk I would install and configure AppFabric on all of my BizTalk Server machines and configure the Cache Cluster. Of course if you have a shortage of servers like us <img class="wlEmoticon wlEmoticon-smile" style="border-style:none;" src="http://abdulrafaysbiztalk.files.wordpress.com/2010/12/wlemoticon-smile.png?w=630" alt="Smile" />  then you have to use the existing BizTalk servers but if you can make dedicated cache servers for large cache data you can.</p>
<p>In BizTalk as we will not be storing services data but only SSO data and some configuration data which we get from a Sharepoint List then configuring the existing BizTalk Server clusters for AppFabric caching is a good idea.</p>
<p>You have to follow the <a href="http://msdn.microsoft.com/en-us/library/ee790960.aspx">installation and configuration guide</a> on how to make a cluster and where to store the configuration data of the cluster. The configuration data can be stored in XML file stored on a shared folder or in SQL Server database I have chosen the latter one. Here is the physical architecture diagram of a cache cluster.</p>
<p><a href="http://abdulrafaysbiztalk.files.wordpress.com/2010/12/architecturecache.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="ArchitectureCache" src="http://abdulrafaysbiztalk.files.wordpress.com/2010/12/architecturecache_thumb.png?w=579&#038;h=354" border="0" alt="ArchitectureCache" width="579" height="354" /></a></p>
<h4>1- Partitioned Cache:</h4>
<p>I will be assuming that you are familiar with the <a href="http://msdn.microsoft.com/library/cc645013.aspx">logical hierarchy</a> of the AppFabric cache. If the caching is configured on a cluster of servers and named cache is defined on each of the servers then the<strong> regions</strong> can be distributed among the servers and therefore providing availability or scalability.</p>
<h5>a) Scalability:</h5>
<p>The cache item would reside in one of the regions of the cache and that region can reside on any one of the cache cluster node. The region is guaranteed to reside on one server and the partition cannot be further distributed among the cluster. Therefore all the items residing in one region will reside in one cluster node. Defining region is optional when you add an item to the cache therefore the cache service itself will load balance the region and assign keys to the regions it has created internally on any server. There is a routing layer on the cache level which routes the put and get operations to the relevant cluster node having the key.</p>
<h5>b) Availability:</h5>
<p>In the availability scenario the cluster nodes can be defined as secondary and one node can be the primary node thus all the nodes having a copy of the cache items. If the primary node fails when a put or get operation is called for the cache one of the secondary nodes becomes the primary node and the applications continue accessing the cache.</p>
<p>It doesn’t matter on which node the get and put operations are called the routing layer of the cache determines the primary node and routes the request to it. The primary node is responsible for the synchronization of data as the data is updated in this node. When the item is accessed or updated it updates itself and then sends the operation to all the secondary nodes to update themselves. It then waits for an acknowledgment from the secondary nodes. When the acknowledgments are received from each node it then sends the acknowledgment of success of operation back to the client.</p>
<h4>2- Local Cache:</h4>
<p>If there is no need for availability and scalability the local cache host can be configured just as on my development machine I will have a local cache. This will have the cache in one server therefore will be fast as there will be no network hops and deserialization of data. For this when configuring the AppFabric you will have the new AppFabric cluster without having any other nodes joined with them. For making a multi-server cluster you can install AppFabric on another machine and cluster by selecting the <strong>Join Existing Cluster</strong> option in the configuration wizard and apply the appropriate settings. It still depends upon the client on which server it is accessing cache.</p>
<h3>AppFabric Cache Clients:</h3>
<p>There are two types of clients that can be configured in AppFabric.</p>
<h4>1- Routing Client:</h4>
<p>The routing client will have its own mechanism to keep track and management of the cached objects. It should know on which server the region resides and which key is placed in which region. We will not be using this in the middleware since we are just storing the SSO and Configuration data in the cache but it can be used by services or mainly by web applications depending upon the requirements.</p>
<h4>2- Simple Client:</h4>
<p>The Simple client is not aware about the locations of regions in the cluster. Therefore they just try to access the object in the cache in their respective region (if they are using regions). The cache routing mechanism itself takes care of routing but it depends if the cache cluster is configured for <strong>Scalability</strong> or <strong>Availability</strong>. Their routing mechanism is defined above in the host configurations section.</p>
<h3>Implementation:</h3>
<p>After having some basic concepts about architecture, usage and advantages I am using the AppFabric cache with the Local Cache host configuration and a base client.</p>
<p>For the host you have to install AppFabric and configure the AppFabric caching services. The first configuration would be to store the configuration (which is SQL Database in my case can be a shared XML File). Second configuration would be to add to an existing cluster or to create a new one. I will have another blog post for this but it’s pretty simple and one can follow the AF <a href="http://msdn.microsoft.com/en-us/library/ee790960.aspx">installation and configuration</a>.</p>
<p>Now it’s time to write the client which would be BizTalk. We have a Common project which is referenced by each service for using common functionality like to read the configuration data/getting status code etc. Therefore in the same common project I will be writing the client code. I have provided the <a href="http://abdulrafaysbiztalk.wordpress.com/downloads/" target="_blank">sample</a> for download in the widget which is free from our organization helper functions so it can be used on a BizTalk machine having SSO and Caching configured.</p>
<p>The client can have the configurations in a configuration file or have the configurations <a href="http://msdn.microsoft.com/en-us/library/ee790816.aspx">programmatically</a>. I will be using a configuration file and will not require recompiling when changing hosting environments. These settings can be stored into machine.config or BTSNTSvc.exe.config. I will not be explaining the configuration file as it is self explanatory with comments. Feel free to copy and modify it according to your needs as it has all the configuration sections with all the parameters.</p>
<div id="scid:9D7513F9-C04C-4721-824A-2B34F0212519:cf90223d-2a27-44d2-bfce-407dd9730d28" class="wlWriterSmartContent" style="display:inline;float:none;margin:0;padding:0;">
<pre style="background-color:white;width:589px;word-wrap:break-word;white-space:pre-wrap;height:381px;overflow:auto;">
<div><span style="color:#0000ff;">&lt;?</span><span style="color:#ff00ff;">xml version="1.0" encoding="utf-8" </span><span style="color:#0000ff;">?&gt;</span><span style="color:#000000;">
</span><span style="color:#0000ff;">&lt;</span><span style="color:#800000;">configuration</span><span style="color:#0000ff;">&gt;</span><span style="color:#000000;">
  </span><span style="color:#008000;">&lt;!--</span><span style="color:#008000;">configSections must be the FIRST element </span><span style="color:#008000;">--&gt;</span><span style="color:#000000;">
  </span><span style="color:#0000ff;">&lt;</span><span style="color:#800000;">configSections</span><span style="color:#0000ff;">&gt;</span><span style="color:#000000;">
    </span><span style="color:#008000;">&lt;!--</span><span style="color:#008000;"> required to read the &lt;dataCacheClient&gt; element </span><span style="color:#008000;">--&gt;</span><span style="color:#000000;">
    </span><span style="color:#008000;">&lt;!--</span><span style="color:#008000;">
    Cache Client Setting

    1- Client time-out (milliseconds)
    The requestTimeout attribute in the dataCacheClient element. We do not recommend specifying a value less than 10000 (10 seconds). Default value is 15000.

    2- Channel open time-out (milliseconds)
    The channelOpenTimeout attribute in the dataCacheClient element. This value can be set to 0 in order to immediately handle any network problems. For more information, see Configuring Cache Client Timeouts (Windows Server AppFabric Caching). The default value is 3000.

    3- Maximum number of connections to the server
    The maxConnectionsToServer attribute in the dataCacheClient element. The default value is 1.
    </span><span style="color:#008000;">--&gt;</span><span style="color:#000000;">
    </span><span style="color:#0000ff;">&lt;</span><span style="color:#800000;">section </span><span style="color:#ff0000;">name</span><span style="color:#0000ff;">="dataCacheClient"</span><span style="color:#ff0000;">
       type</span><span style="color:#0000ff;">="Microsoft.ApplicationServer.Caching.DataCacheClientSection,
            Microsoft.ApplicationServer.Caching.Core, Version=1.0.0.0,
            Culture=neutral, PublicKeyToken=31bf3856ad364e35"</span><span style="color:#ff0000;">
       allowLocation</span><span style="color:#0000ff;">="true"</span><span style="color:#ff0000;">
       allowDefinition</span><span style="color:#0000ff;">="Everywhere"</span><span style="color:#0000ff;">/&gt;</span><span style="color:#000000;">
  </span><span style="color:#0000ff;">&lt;/</span><span style="color:#800000;">configSections</span><span style="color:#0000ff;">&gt;</span><span style="color:#000000;">
  </span><span style="color:#0000ff;">&lt;</span><span style="color:#800000;">dataCacheClient</span><span style="color:#0000ff;">&gt;</span><span style="color:#000000;">
    </span><span style="color:#008000;">&lt;!--</span><span style="color:#008000;"> (optional) specify local cache Remove in a multi-server farm </span><span style="color:#008000;">--&gt;</span><span style="color:#000000;">
    </span><span style="color:#008000;">&lt;!--</span><span style="color:#008000;"> Local Cache Settings

    1- Local cache enabled
        The isEnabled attribute in the localCache element. Values may be true or false. The localCache element may also be missing to indicate that it is disabled.

    2- Local cache invalidation method
        The sync attribute in the localCache element. Use the TimeoutBased value to indicate a time-out value should be used. Use NotificationBased to indicate cache notifications should also be used.

    3- Local cache time-out (seconds)
        The ttlValue attribute in the localCache element.

    4- Specific cache notifications poll interval (seconds)
        (optional) Specified by the pollInterval attribute of the clientNotification element. The clientNotification element is a child of the dataCacheClient element, and not a child of the localCache element. If not specified, a value of 300 seconds will be used.

    5- Maximum locally-cached object count
        (optional) Specified by the objectCount attribute in the localCache element. Triggers when eviction on the local cache should start; it will then attempt to remove 20 percent of the least recently used locally cached objects. If not specified, the default value of 10,000 objects is used.
        The ObjectCount
    </span><span style="color:#008000;">--&gt;</span><span style="color:#000000;">
    </span><span style="color:#0000ff;">&lt;</span><span style="color:#800000;">localCache
       </span><span style="color:#ff0000;">isEnabled</span><span style="color:#0000ff;">="true"</span><span style="color:#ff0000;">
       sync</span><span style="color:#0000ff;">="TimeoutBased"</span><span style="color:#ff0000;">
       objectCount</span><span style="color:#0000ff;">="100000"</span><span style="color:#ff0000;">
       ttlValue</span><span style="color:#0000ff;">="3000"</span><span style="color:#ff0000;"> </span><span style="color:#0000ff;">/&gt;</span><span style="color:#000000;">
    </span><span style="color:#008000;">&lt;!--</span><span style="color:#008000;">(optional) specify cache notifications poll interval </span><span style="color:#008000;">--&gt;</span><span style="color:#000000;">
    </span><span style="color:#008000;">&lt;!--</span><span style="color:#008000;"> Client Notification Settings

    1- Specific cache notifications poll interval (seconds)
        Specified by the pollInterval attribute of the clientNotification element. If not specified, a value of 300 seconds will be used.

    2- Maximum queue length
        The maxQueueLength attribute of the clientNotification element. If not specified, the default value is 10000.

    </span><span style="color:#008000;">--&gt;</span><span style="color:#000000;">
    </span><span style="color:#008000;">&lt;!--</span><span style="color:#008000;"> &lt;clientNotification pollInterval="300" /&gt; </span><span style="color:#008000;">--&gt;</span><span style="color:#000000;">
    </span><span style="color:#0000ff;">&lt;</span><span style="color:#800000;">hosts</span><span style="color:#0000ff;">&gt;</span><span style="color:#000000;">
      </span><span style="color:#008000;">&lt;!--</span><span style="color:#008000;"> Cache Host Settings

         1- Cache server name
         The name attribute of the host element.

         2- Cache port number
         The cachePort attribute of the host element.
     </span><span style="color:#008000;">--&gt;</span><span style="color:#000000;">
      </span><span style="color:#0000ff;">&lt;</span><span style="color:#800000;">host
       </span><span style="color:#ff0000;">name</span><span style="color:#0000ff;">="D001MWWS3"</span><span style="color:#ff0000;">
       cachePort</span><span style="color:#0000ff;">="22233"</span><span style="color:#0000ff;">/&gt;</span><span style="color:#000000;">
      </span><span style="color:#008000;">&lt;!--</span><span style="color:#008000;"> In a Mult-Server Environment add the second Server OR More for caching
      &lt;host
            name="CacheServer2"
            cachePort="22233"/&gt;
      </span><span style="color:#008000;">--&gt;</span><span style="color:#000000;">
      </span><span style="color:#008000;">&lt;!--</span><span style="color:#008000;"> Security Settings
      1- Mode
        The mode attribute of the securityProperties element. Possible values include Transport and None. The default value is Transport.

      2- Protection level
        The protectionLevel attribute of the securityProperties element. Possible values include None, Sign, and EncryptAndSign. The default value is EncryptAndSign.

      </span><span style="color:#008000;">--&gt;</span><span style="color:#000000;">

      </span><span style="color:#008000;">&lt;!--</span><span style="color:#008000;">  &lt;securityProperties mode="Transport" protectionLevel="EncryptAndSign" /&gt; </span><span style="color:#008000;">--&gt;</span><span style="color:#000000;">

      </span><span style="color:#008000;">&lt;!--</span><span style="color:#008000;"> Transport Settings
      Connection buffer size (bytes)
 The connectionBufferSize attribute of the transportProperties element.
 The ConnectionBufferSize property of the DataCacheTransportProperties class. This is then assigned to the TransportProperties property of the DataCacheFactoryConfiguration class.

Maximum buffer pool size (bytes)
 The maxBufferPoolSize attribute of the transportProperties element.
 The MaxBufferPoolSize property of the DataCacheTransportProperties class.

Maximum buffer size (bytes)
 The maxBufferSize attribute of the transportProperties element.
 The MaxBufferSize property of the DataCacheTransportProperties class.

Maximum output delay (milliseconds)
 The maxOutputDelay attribute of the transportProperties element.
 The MaxOutputDelay property of the DataCacheTransportProperties class.

Channel initialization timeout (milliseconds)
 The channelInitializationTimeout attribute of the transportProperties element.
 The ChannelInitializationTimeout property of the DataCacheTransportProperties class.

Receive timeout (milliseconds)
 The receiveTimeout attribute of the transportProperties element.
 The ReceiveTimeout property of the DataCacheTransportProperties class.
      </span><span style="color:#008000;">--&gt;</span><span style="color:#000000;">
      </span><span style="color:#008000;">&lt;!--</span><span style="color:#008000;"> &lt;transportProperties connectionBufferSize="131072" maxBufferPoolSize="268435456"
                           maxBufferSize="8388608" maxOutputDelay="2" channelInitializationTimeout="60000"
                           receiveTimeout="600000"/&gt;      </span><span style="color:#008000;">--&gt;</span><span style="color:#000000;">
    </span><span style="color:#0000ff;">&lt;/</span><span style="color:#800000;">hosts</span><span style="color:#0000ff;">&gt;</span><span style="color:#000000;">
  </span><span style="color:#0000ff;">&lt;/</span><span style="color:#800000;">dataCacheClient</span><span style="color:#0000ff;">&gt;</span><span style="color:#000000;">
</span><span style="color:#0000ff;">&lt;/</span><span style="color:#800000;">configuration</span><span style="color:#0000ff;">&gt;</span><span style="color:#000000;">
</span></div>
</pre>
<p><!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --></p>
</div>
<h4>Get all the data from SSO:</h4>
<p>The below code snippet of the function retrieves all the keys from all applications from SSO. I have used it in the CacheManager project where you can find it in the SSOConfigManager class.</p>
<div id="scid:9D7513F9-C04C-4721-824A-2B34F0212519:b678a4e1-9948-4fcf-b824-c867f95ce48a" class="wlWriterSmartContent" style="display:inline;float:none;margin:0;padding:0;">
<pre style="background-color:white;width:589px;word-wrap:break-word;white-space:pre-wrap;height:381px;overflow:auto;">
<div><span style="color:#808080;">///</span><span style="color:#008000;"> </span><span style="color:#808080;">&lt;summary&gt;</span><span style="color:#008000;">

</span><span style="color:#808080;">///</span><span style="color:#008000;"> Returns list of applications in SSO database.

</span><span style="color:#808080;">///</span><span style="color:#008000;"> </span><span style="color:#808080;">&lt;/summary&gt;</span><span style="color:#008000;">

</span><span style="color:#808080;">///</span><span style="color:#008000;"> </span><span style="color:#808080;">&lt;returns&gt;</span><span style="color:#008000;">Dictionary of application name as key and description as value.</span><span style="color:#808080;">&lt;/returns&gt;</span><span style="color:#808080;">
</span><span style="color:#000000;">
</span><span style="color:#0000ff;">public</span><span style="color:#000000;"> </span><span style="color:#0000ff;">static</span><span style="color:#000000;"> IDictionary</span><span style="color:#000000;">&lt;</span><span style="color:#0000ff;">string</span><span style="color:#000000;">, </span><span style="color:#0000ff;">string</span><span style="color:#000000;">&gt;</span><span style="color:#000000;"> GetApplications()

{

ISSOMapper ssoMapper </span><span style="color:#000000;">=</span><span style="color:#000000;"> </span><span style="color:#0000ff;">new</span><span style="color:#000000;"> ISSOMapper();

AffiliateApplicationType appTypes </span><span style="color:#000000;">=</span><span style="color:#000000;"> AffiliateApplicationType.ConfigStore;

IPropertyBag propBag </span><span style="color:#000000;">=</span><span style="color:#000000;"> (IPropertyBag)ssoMapper;

</span><span style="color:#0000ff;">uint</span><span style="color:#000000;"> appFilterFlagMask </span><span style="color:#000000;">=</span><span style="color:#000000;"> SSOFlag.SSO_FLAG_APP_FILTER_BY_TYPE;

</span><span style="color:#0000ff;">uint</span><span style="color:#000000;"> appFilterFlags </span><span style="color:#000000;">=</span><span style="color:#000000;"> (</span><span style="color:#0000ff;">uint</span><span style="color:#000000;">)appTypes;

</span><span style="color:#0000ff;">object</span><span style="color:#000000;"> appFilterFlagsObj </span><span style="color:#000000;">=</span><span style="color:#000000;"> (</span><span style="color:#0000ff;">object</span><span style="color:#000000;">)appFilterFlags;

</span><span style="color:#0000ff;">object</span><span style="color:#000000;"> appFilterFlagMaskObj </span><span style="color:#000000;">=</span><span style="color:#000000;"> (</span><span style="color:#0000ff;">object</span><span style="color:#000000;">)appFilterFlagMask;

propBag.Write(</span><span style="color:#800000;">"</span><span style="color:#800000;">AppFilterFlags</span><span style="color:#800000;">"</span><span style="color:#000000;">, </span><span style="color:#0000ff;">ref</span><span style="color:#000000;"> appFilterFlagsObj);

propBag.Write(</span><span style="color:#800000;">"</span><span style="color:#800000;">AppFilterFlagMask</span><span style="color:#800000;">"</span><span style="color:#000000;">, </span><span style="color:#0000ff;">ref</span><span style="color:#000000;"> appFilterFlagMaskObj);

</span><span style="color:#0000ff;">string</span><span style="color:#000000;">[] apps </span><span style="color:#000000;">=</span><span style="color:#000000;"> </span><span style="color:#0000ff;">null</span><span style="color:#000000;">;

</span><span style="color:#0000ff;">string</span><span style="color:#000000;">[] descs </span><span style="color:#000000;">=</span><span style="color:#000000;"> </span><span style="color:#0000ff;">null</span><span style="color:#000000;">;

</span><span style="color:#0000ff;">string</span><span style="color:#000000;">[] contacts </span><span style="color:#000000;">=</span><span style="color:#000000;"> </span><span style="color:#0000ff;">null</span><span style="color:#000000;">;

ssoMapper.GetApplications(</span><span style="color:#0000ff;">out</span><span style="color:#000000;"> apps, </span><span style="color:#0000ff;">out</span><span style="color:#000000;"> descs, </span><span style="color:#0000ff;">out</span><span style="color:#000000;"> contacts);

Dictionary</span><span style="color:#000000;">&lt;</span><span style="color:#0000ff;">string</span><span style="color:#000000;">, </span><span style="color:#0000ff;">string</span><span style="color:#000000;">&gt;</span><span style="color:#000000;"> dict1 </span><span style="color:#000000;">=</span><span style="color:#000000;"> </span><span style="color:#0000ff;">new</span><span style="color:#000000;"> Dictionary</span><span style="color:#000000;">&lt;</span><span style="color:#0000ff;">string</span><span style="color:#000000;">, </span><span style="color:#0000ff;">string</span><span style="color:#000000;">&gt;</span><span style="color:#000000;">(apps.Length);

</span><span style="color:#0000ff;">for</span><span style="color:#000000;"> (</span><span style="color:#0000ff;">int</span><span style="color:#000000;"> i </span><span style="color:#000000;">=</span><span style="color:#000000;"> </span><span style="color:#800080;">0</span><span style="color:#000000;">; i </span><span style="color:#000000;">&lt;</span><span style="color:#000000;"> apps.Length; </span><span style="color:#000000;">++</span><span style="color:#000000;">i)

{

</span><span style="color:#0000ff;">if</span><span style="color:#000000;"> (</span><span style="color:#000000;">!</span><span style="color:#000000;">apps[i].StartsWith(</span><span style="color:#800000;">"</span><span style="color:#800000;">{</span><span style="color:#800000;">"</span><span style="color:#000000;">))

dict1.Add(apps[i], descs[i]);

}

</span><span style="color:#0000ff;">return</span><span style="color:#000000;"> dict1;

}

</span></div>
</pre>
<p><!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --></p>
</div>
<h4>Creating and managing cache:</h4>
<p>Before we perform operations on the cache we have to make sure the cache we are going to use is created. There are some power shell command lines for the administration of AppFabric Cache. There is also a <a href="http://mdcadmintool.codeplex.com/">useful GUI based tool</a> for cache management. I would recommend downloading it in case the UAT and Production server administrator is not you. I would continue with both power shell command lines and the tools.</p>
<h5>1- Create the cache:</h5>
<p>There is always a Default cache which you don’t need to create. I am creating a cache named MWConfigurationCache for storing my middleware configuration data by running the <strong>New-Cache</strong> command. You can then run the Get-CacheClusterHealth command to see its health.</p>
<p><a href="http://abdulrafaysbiztalk.files.wordpress.com/2010/12/cachecreation.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="CacheCreation" src="http://abdulrafaysbiztalk.files.wordpress.com/2010/12/cachecreation_thumb.png?w=644&#038;h=321" border="0" alt="CacheCreation" width="644" height="321" /></a></p>
<h5>
2- Management:</h5>
<p>Some commands will be handy during development. For a full list refer to <a href="http://msdn.microsoft.com/en-us/library/ff921020.aspx">AppFabric Caching Deployment and Management Guide</a><strong>. </strong></p>
<p><strong>1- </strong><strong> </strong>First is the <strong>Get-CacheStatistics </strong>from which you can see how many items, regions and request are being made to the cache. You can also see the cache size in bytes.</p>
<p><a href="http://abdulrafaysbiztalk.files.wordpress.com/2010/12/cachestatistics.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="CacheStatistics" src="http://abdulrafaysbiztalk.files.wordpress.com/2010/12/cachestatistics_thumb.png?w=644&#038;h=321" border="0" alt="CacheStatistics" width="644" height="321" /></a></p>
<p><strong></p>
<p>2- </strong>The <strong>Get-CacheConfig</strong> command which gives the following output.</p>
<p><a href="http://abdulrafaysbiztalk.files.wordpress.com/2010/12/cacheconfig.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="CacheConfig" src="http://abdulrafaysbiztalk.files.wordpress.com/2010/12/cacheconfig_thumb.png?w=644&#038;h=321" border="0" alt="CacheConfig" width="644" height="321" /></a> </p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="19%" valign="top"><strong>Setting</strong></td>
<td width="80%" valign="top"><strong>Description</strong></td>
</tr>
<tr>
<td width="19%" valign="top">CacheName</td>
<td width="80%" valign="top">The name of the cache.</td>
</tr>
<tr>
<td width="19%" valign="top">TimeToLive</td>
<td width="80%" valign="top">The default time that items reside in the cache before expiring.</td>
</tr>
<tr>
<td width="19%" valign="top">CacheType</td>
<td width="80%" valign="top">The type of cache. This is always Partitioned.</td>
</tr>
<tr>
<td width="19%" valign="top">Secondaries</td>
<td width="80%" valign="top">A value of 1 indicates that the cache uses the high availability feature.</td>
</tr>
<tr>
<td width="19%" valign="top">IsExpirable</td>
<td width="80%" valign="top">Indicates whether objects in the cache can expire.</td>
</tr>
<tr>
<td width="19%" valign="top">EvictionType</td>
<td width="80%" valign="top">Specifies an eviction type of Least-Recently-Used (LRU) or None.</td>
</tr>
<tr>
<td width="19%" valign="top">NotificationsEnabled</td>
<td width="80%" valign="top">Indicates whether notifications are enabled for this cache.</td>
</tr>
</tbody>
</table>
<p><strong></p>
<p>3- </strong>You can see all the cache that exists on the cluster by <strong>Get-Cache</strong> command.</p>
<p><a href="http://abdulrafaysbiztalk.files.wordpress.com/2010/12/getcache.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="GetCache" src="http://abdulrafaysbiztalk.files.wordpress.com/2010/12/getcache_thumb.png?w=644&#038;h=264" border="0" alt="GetCache" width="644" height="264" /></a></p>
<p><strong></p>
<p>4- </strong>Stop and Start the cluster from Stop-CacheCluster and Start-CacheCluster commands respectively.</p>
<p><a href="http://abdulrafaysbiztalk.files.wordpress.com/2010/12/stopcluster.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="StopCluster" src="http://abdulrafaysbiztalk.files.wordpress.com/2010/12/stopcluster_thumb.png?w=644&#038;h=126" border="0" alt="StopCluster" width="644" height="126" /></a></p>
<p><a href="http://abdulrafaysbiztalk.files.wordpress.com/2010/12/startcluster.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="StartCluster" src="http://abdulrafaysbiztalk.files.wordpress.com/2010/12/startcluster_thumb.png?w=644&#038;h=137" border="0" alt="StartCluster" width="644" height="137" /></a></p>
<p><strong></p>
<p>Note</strong>: Starting and Stopping the cluster clears the cache here is the sequence of commands first we can see from the stats that the cache has 3 items after stopping and starting the cache has no items. This can be useful when your source item has been updated and you want to reflect this in your cache. This would require some down time.</p>
<p><a href="http://abdulrafaysbiztalk.files.wordpress.com/2010/12/refreshedcache.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="RefreshedCache" src="http://abdulrafaysbiztalk.files.wordpress.com/2010/12/refreshedcache_thumb.png?w=591&#038;h=484" border="0" alt="RefreshedCache" width="591" height="484" /></a></p>
<h4>
Inserting and retrieving Items:</h4>
<p>There are a lot of variations in the API of the AppFabric caching. I would recommend to go through them <a href="http://msdn.microsoft.com/en-us/library/ee790858.aspx">here</a>. In your middleware if you wish to read/write shared data between services then do consider the <a href="http://msdn.microsoft.com/en-us/library/ee790915.aspx">concurrency models</a>. You can also have <a href="http://msdn.microsoft.com/en-us/library/ee790835.aspx">tags</a> with keys and tags can be used to group items with your cache.</p>
<p>I am using the basic cache methods of Put and Get.</p>
<p>You can see the code below where I am getting all the key/value from all applications from SSO and adding them to cache. The Put method updates items if they already exists in cache or adds them. There is also and Add method which gives an exception if the item already exists.</p>
<div id="scid:9D7513F9-C04C-4721-824A-2B34F0212519:acf449e8-3eaf-4177-b010-7317ccc2fae8" class="wlWriterSmartContent" style="display:inline;float:none;margin:0;padding:0;">
<pre style="background-color:white;width:589px;word-wrap:break-word;white-space:pre-wrap;height:381px;overflow:auto;">
<div><span style="color:#0000ff;">public</span><span style="color:#000000;"> </span><span style="color:#0000ff;">void</span><span style="color:#000000;"> PopulateCacheFromSSO()
        {
            IDictionary</span><span style="color:#000000;">&lt;</span><span style="color:#0000ff;">string</span><span style="color:#000000;">, </span><span style="color:#0000ff;">string</span><span style="color:#000000;">&gt;</span><span style="color:#000000;"> apps </span><span style="color:#000000;">=</span><span style="color:#000000;"> SSOConfigManager.GetApplications();

            </span><span style="color:#0000ff;">foreach</span><span style="color:#000000;"> (</span><span style="color:#0000ff;">string</span><span style="color:#000000;"> appName </span><span style="color:#0000ff;">in</span><span style="color:#000000;"> apps.Keys)
            {
                </span><span style="color:#0000ff;">string</span><span style="color:#000000;"> appUserAcct, appAdminAcct, description, contactInfo;

                HybridDictionary properties </span><span style="color:#000000;">=</span><span style="color:#000000;"> SSOConfigManager.GetConfigProperties(appName, </span><span style="color:#0000ff;">out</span><span style="color:#000000;"> description, </span><span style="color:#0000ff;">out</span><span style="color:#000000;"> contactInfo, </span><span style="color:#0000ff;">out</span><span style="color:#000000;"> appUserAcct, </span><span style="color:#0000ff;">out</span><span style="color:#000000;"> appAdminAcct);

                System.Diagnostics.EventLog.WriteEntry(</span><span style="color:#800000;">"</span><span style="color:#800000;">SSO Application Name</span><span style="color:#800000;">"</span><span style="color:#000000;">, </span><span style="color:#800000;">"</span><span style="color:#800000;">Name = </span><span style="color:#800000;">"</span><span style="color:#000000;"> </span><span style="color:#000000;">+</span><span style="color:#000000;"> appName);

                </span><span style="color:#0000ff;">foreach</span><span style="color:#000000;"> (DictionaryEntry appProperties </span><span style="color:#0000ff;">in</span><span style="color:#000000;"> properties)
                {
                    System.Diagnostics.EventLog.WriteEntry(</span><span style="color:#800000;">"</span><span style="color:#800000;">SSO Application enteries</span><span style="color:#800000;">"</span><span style="color:#000000;">, </span><span style="color:#800000;">"</span><span style="color:#800000;">Key = </span><span style="color:#800000;">"</span><span style="color:#000000;"> </span><span style="color:#000000;">+</span><span style="color:#000000;"> appProperties.Key.ToString() </span><span style="color:#000000;">+</span><span style="color:#000000;"> </span><span style="color:#800000;">"</span><span style="color:#800000;"> , </span><span style="color:#800000;">"</span><span style="color:#000000;"> </span><span style="color:#000000;">+</span><span style="color:#000000;"> </span><span style="color:#800000;">"</span><span style="color:#800000;">Value = </span><span style="color:#800000;">"</span><span style="color:#000000;"> </span><span style="color:#000000;">+</span><span style="color:#000000;"> appProperties.Value.ToString());
                    PutInCache(appName, appProperties.Key.ToString(), appProperties.Value.ToString());
                }
            }
        }

</span><span style="color:#0000ff;">public</span><span style="color:#000000;"> </span><span style="color:#0000ff;">void</span><span style="color:#000000;"> PutInCache(</span><span style="color:#0000ff;">string</span><span style="color:#000000;"> category, </span><span style="color:#0000ff;">string</span><span style="color:#000000;"> key, </span><span style="color:#0000ff;">string</span><span style="color:#000000;"> value)
        {
            DataCacheItemVersion itemVersion;

            </span><span style="color:#0000ff;">if</span><span style="color:#000000;"> ((itemVersion </span><span style="color:#000000;">=</span><span style="color:#000000;"> configCache.Put(category </span><span style="color:#000000;">+</span><span style="color:#000000;"> </span><span style="color:#800000;">"</span><span style="color:#800000;">_</span><span style="color:#800000;">"</span><span style="color:#000000;"> </span><span style="color:#000000;">+</span><span style="color:#000000;"> key, value)) </span><span style="color:#000000;">!=</span><span style="color:#000000;"> </span><span style="color:#0000ff;">null</span><span style="color:#000000;">)
                System.Diagnostics.EventLog.WriteEntry(</span><span style="color:#800000;">"</span><span style="color:#800000;">Cache Item Added</span><span style="color:#800000;">"</span><span style="color:#000000;">, </span><span style="color:#800000;">"</span><span style="color:#800000;">Key = </span><span style="color:#800000;">"</span><span style="color:#000000;"> </span><span style="color:#000000;">+</span><span style="color:#000000;"> key);
            </span><span style="color:#0000ff;">else</span><span style="color:#000000;">
                </span><span style="color:#0000ff;">throw</span><span style="color:#000000;"> </span><span style="color:#0000ff;">new</span><span style="color:#000000;"> Exception(</span><span style="color:#800000;">"</span><span style="color:#800000;">Cache Item not added</span><span style="color:#800000;">"</span><span style="color:#000000;">);
        }</span></div>
</pre>
<p><!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --></p>
</div>
<p>After running the code you can run the Get-CacheStatistics command to see if the items are added to the cache. Now it’s time to retrieve and item from the cache which you added. The code below gets the items from the cache.</p>
<div id="scid:9D7513F9-C04C-4721-824A-2B34F0212519:e597f35f-5744-417f-8561-816849c07a7f" class="wlWriterEditableSmartContent" style="display:inline;float:none;margin:0;padding:0;">
<pre style="width:589px;height:200px;background-color:white;white-space:pre-wrap;word-wrap:break-word;overflow:auto;">
<div><span style="color:#0000ff;">public</span><span style="color:#000000;"> </span><span style="color:#0000ff;">string</span><span style="color:#000000;"> GetFromCache(</span><span style="color:#0000ff;">string</span><span style="color:#000000;"> category, </span><span style="color:#0000ff;">string</span><span style="color:#000000;"> key)
        {
            </span><span style="color:#0000ff;">string</span><span style="color:#000000;"> item;

            </span><span style="color:#0000ff;">if</span><span style="color:#000000;"> ((item </span><span style="color:#000000;">=</span><span style="color:#000000;"> (</span><span style="color:#0000ff;">string</span><span style="color:#000000;">)configCache.Get(category </span><span style="color:#000000;">+</span><span style="color:#000000;"> </span><span style="color:#800000;">"</span><span style="color:#800000;">_</span><span style="color:#800000;">"</span><span style="color:#000000;"> </span><span style="color:#000000;">+</span><span style="color:#000000;"> key)) </span><span style="color:#000000;">!=</span><span style="color:#000000;"> </span><span style="color:#0000ff;">null</span><span style="color:#000000;">)
                System.Diagnostics.EventLog.WriteEntry(</span><span style="color:#800000;">"</span><span style="color:#800000;">Cache Item Retrieved</span><span style="color:#800000;">"</span><span style="color:#000000;">, </span><span style="color:#800000;">"</span><span style="color:#800000;">Key = </span><span style="color:#800000;">"</span><span style="color:#000000;"> </span><span style="color:#000000;">+</span><span style="color:#000000;"> key);
            </span><span style="color:#0000ff;">else</span><span style="color:#000000;">
                </span><span style="color:#0000ff;">throw</span><span style="color:#000000;"> </span><span style="color:#0000ff;">new</span><span style="color:#000000;"> Exception(</span><span style="color:#800000;">"</span><span style="color:#800000;">Cache item could not be found</span><span style="color:#800000;">"</span><span style="color:#000000;">);

            </span><span style="color:#0000ff;">return</span><span style="color:#000000;"> item;
        }</span></div>
</pre>
<p><!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --></p>
</div>
<p>Try to retrieve the values from the cache after the TTL time configured in the configuration file. You will find that the cache has expired. Also run the Get-CacheStatistics from power shell, see what you find.</p>
<p>Some troubles which I had and would be common to any developer are below.</p>
<p>ErrorCode&lt;ERRCA0017&gt;:SubStatus&lt;ES0007&gt;:There is a temporary failure. Please retry later. (The request failed because the server is in throttled state.)</p>
<p>If you get the error above it means nothing I couldn’t figure it out neither the guys on <a href="http://social.msdn.microsoft.com/Forums/en-US/velocity/thread/110fc93a-5392-4944-bc1d-d1c1086b226a/">MSDN</a> I just reset the IIS and this will go away. You will notice in the Task Manager that the w3wp process is taking too much memory.</p>
<p>The type or namespace name &#8216;ApplicationServer&#8217; does not exist in the namespace &#8216;Microsoft&#8217; (are you missing an assembly reference?)</p>
<p>If you are getting the error above may be you have not set the target framework 3.5/4. The second thing which I had is that I was adding references to Microsoft.ApplicationServer.Caching.Client and Microsoft.ApplicationServer.Caching.Core assemblies from C:\Windows\SysNative\AppFabric path. It simply didn’t work and the error persisted. I then added the reference from the GAC (I have no explanation for this). You can find the references in the <a href="http://abdulrafaysbiztalk.wordpress.com/downloads/" target="_blank">sample</a>.</p>
<h3><strong>Did the above solve my middleware problems?</strong></h3>
<p>I had to find a solution to the problems which I had from the enterprise library.</p>
<p>1- Availability and Scalability is solved by architecture of the AppFabric cache.</p>
<p>2- If you want to reflect changes immediately in the cache as a result of the update in the source restart the cluster services without restarting the BizTalk host instances. I mentioned that there would be a downtime it means that you don’t need to stop the host instances just stop the receive locations so that no request is entertained by BizTalk.</p>
<p>3- If you don’t need the downtime there can be another trick. Create a new cache of same configuration but with a different name. In the BTSNTSvc.exe.config or machine.config file I assume that you have kept the name of the cache in the appSettings section. This means that you will be retrieving it at runtime. Change it to the new cache which you created.</p>
<p>4- If you can wait till the cache gets expired it’s the best thing the cache will get the fresh data from the source and in the multi-server environment of BizTalk each BizTalk node will have a consistent identical copy of the cache. Great!</p>
<h3><strong>Security Considerations:</strong></h3>
<p>Without security considerations this article is incomplete and a BizTalk guy reading this cannot compromise the security over the SSO data. Of course if security is not considered with caching the SSO data can be overridden by any client who has access to the cache. As the cache will be clustered, clear text data in the network can also be sniffed.</p>
<p>In AppFabric cache cluster the communication between the client and the server supports Encryption and Signing.</p>
<p>A windows account must be added which has access to the cache cluster. This account must be used by the client application to access the cache cluster. In the BizTalk scenario we would add users such as BizTalk application Users (under which host instances run) and SSO Administrator/Affiliated administrator. This is done by <strong>Grant-CacheAllowedClientAccount</strong> command from power shell.</p>
<h5>Cluster Security options :</h5>
<p>After allowing access to the users you have to configure the server and client for security.</p>
<p>For enabling security option to the server you have to use <strong>Set-CacheClusterSecurity</strong> command from power shell.</p>
<p><a href="http://abdulrafaysbiztalk.files.wordpress.com/2010/12/clustersecurity.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="ClusterSecurity" src="http://abdulrafaysbiztalk.files.wordpress.com/2010/12/clustersecurity_thumb.png?w=644&#038;h=263" border="0" alt="ClusterSecurity" width="644" height="263" /></a></p>
<h4>Client Security options:</h4>
<p>For client you can do it programmatically and in the configuration file locate the security properties tag.</p>
<p>&lt;securityProperties mode=&#8221;Transport&#8221; protectionLevel=&#8221;EncryptAndSign&#8221; /&gt;</p>
<p>There is a table from <a href="http://msdn.microsoft.com/en-us/library/ff718179.aspx">Security Model (Windows Server AppFabric Caching)</a><strong> </strong>where the matrix of the combination of the cluster and client security options is given. The combination of client and cluster security options will work or not is explained in the following table.<strong> </strong></p>
<table border="1" cellspacing="0" cellpadding="0" width="747">
<tbody>
<tr>
<td width="113" valign="top"><span style="font-size:xx-small;">Client Settings</span></td>
<td width="137" valign="top"><span style="font-size:xx-small;">Mode=None, ProtectionLevel=Any</span></td>
<td width="148" valign="top"><span style="font-size:xx-small;">Mode=Transport, ProtectionLevel=None</span></td>
<td width="143" valign="top"><span style="font-size:xx-small;">Mode=Transport, ProtectionLevel=Sign</span></td>
<td width="204" valign="top"><span style="font-size:xx-small;">Mode=Transport, ProtectionLevel=EncryptAndSign</span></td>
</tr>
<tr>
<td width="113" valign="top"><span style="font-size:xx-small;">None, Any</span></td>
<td width="137" valign="top"><span style="font-size:xx-small;">Pass</span></td>
<td width="148" valign="top"><span style="font-size:xx-small;">Fail</span></td>
<td width="143" valign="top"><span style="font-size:xx-small;">Fail</span></td>
<td width="204" valign="top"><span style="font-size:xx-small;">Fail</span></td>
</tr>
<tr>
<td width="113" valign="top"><span style="font-size:xx-small;">Transport, None</span></td>
<td width="137" valign="top"><span style="font-size:xx-small;">Fail</span></td>
<td width="148" valign="top"><span style="font-size:xx-small;">Pass</span></td>
<td width="143" valign="top"><span style="font-size:xx-small;">Fail</span></td>
<td width="204" valign="top"><span style="font-size:xx-small;">Fail</span></td>
</tr>
<tr>
<td width="113" valign="top"><span style="font-size:xx-small;">Transport, Sign</span></td>
<td width="137" valign="top"><span style="font-size:xx-small;">Fail</span></td>
<td width="148" valign="top"><span style="font-size:xx-small;">Pass</span></td>
<td width="143" valign="top"><span style="font-size:xx-small;">Pass</span></td>
<td width="204" valign="top"><span style="font-size:xx-small;">Fail</span></td>
</tr>
<tr>
<td width="113" valign="top"><span style="font-size:xx-small;">Transport, EncryptAndSign</span></td>
<td width="137" valign="top"><span style="font-size:xx-small;">Fail</span></td>
<td width="148" valign="top"><span style="font-size:xx-small;">Pass</span></td>
<td width="143" valign="top"><span style="font-size:xx-small;">Pass</span></td>
<td width="204" valign="top"><span style="font-size:xx-small;">Pass</span></td>
</tr>
</tbody>
</table>
<br />Filed under: <a href='http://abdulrafaysbiztalk.wordpress.com/category/appfabric/'>AppFabric</a>, <a href='http://abdulrafaysbiztalk.wordpress.com/category/biztalk/'>BizTalk</a>, <a href='http://abdulrafaysbiztalk.wordpress.com/category/biztalk-development/'>BizTalk Development</a>, <a href='http://abdulrafaysbiztalk.wordpress.com/category/soa/'>SOA</a> Tagged: <a href='http://abdulrafaysbiztalk.wordpress.com/tag/caching/'>Caching</a>, <a href='http://abdulrafaysbiztalk.wordpress.com/tag/sso/'>SSO</a>, <a href='http://abdulrafaysbiztalk.wordpress.com/tag/windows-server-appfabric/'>Windows Server AppFabric</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/abdulrafaysbiztalk.wordpress.com/394/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/abdulrafaysbiztalk.wordpress.com/394/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/abdulrafaysbiztalk.wordpress.com/394/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/abdulrafaysbiztalk.wordpress.com/394/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/abdulrafaysbiztalk.wordpress.com/394/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/abdulrafaysbiztalk.wordpress.com/394/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/abdulrafaysbiztalk.wordpress.com/394/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/abdulrafaysbiztalk.wordpress.com/394/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/abdulrafaysbiztalk.wordpress.com/394/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/abdulrafaysbiztalk.wordpress.com/394/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/abdulrafaysbiztalk.wordpress.com/394/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/abdulrafaysbiztalk.wordpress.com/394/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/abdulrafaysbiztalk.wordpress.com/394/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/abdulrafaysbiztalk.wordpress.com/394/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=abdulrafaysbiztalk.wordpress.com&amp;blog=7351933&amp;post=394&amp;subd=abdulrafaysbiztalk&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://abdulrafaysbiztalk.wordpress.com/2010/12/01/using-windows-server-appfabric-caching-for-storing-sso-configuration-data/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/308019870f24ca37b6647b4b51296895?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Abdul Rafay</media:title>
		</media:content>

		<media:content url="http://abdulrafaysbiztalk.files.wordpress.com/2010/12/wlemoticon-smile.png" medium="image">
			<media:title type="html">Smile</media:title>
		</media:content>

		<media:content url="http://abdulrafaysbiztalk.files.wordpress.com/2010/12/architecturecache_thumb.png" medium="image">
			<media:title type="html">ArchitectureCache</media:title>
		</media:content>

		<media:content url="http://abdulrafaysbiztalk.files.wordpress.com/2010/12/cachecreation_thumb.png" medium="image">
			<media:title type="html">CacheCreation</media:title>
		</media:content>

		<media:content url="http://abdulrafaysbiztalk.files.wordpress.com/2010/12/cachestatistics_thumb.png" medium="image">
			<media:title type="html">CacheStatistics</media:title>
		</media:content>

		<media:content url="http://abdulrafaysbiztalk.files.wordpress.com/2010/12/cacheconfig_thumb.png" medium="image">
			<media:title type="html">CacheConfig</media:title>
		</media:content>

		<media:content url="http://abdulrafaysbiztalk.files.wordpress.com/2010/12/getcache_thumb.png" medium="image">
			<media:title type="html">GetCache</media:title>
		</media:content>

		<media:content url="http://abdulrafaysbiztalk.files.wordpress.com/2010/12/stopcluster_thumb.png" medium="image">
			<media:title type="html">StopCluster</media:title>
		</media:content>

		<media:content url="http://abdulrafaysbiztalk.files.wordpress.com/2010/12/startcluster_thumb.png" medium="image">
			<media:title type="html">StartCluster</media:title>
		</media:content>

		<media:content url="http://abdulrafaysbiztalk.files.wordpress.com/2010/12/refreshedcache_thumb.png" medium="image">
			<media:title type="html">RefreshedCache</media:title>
		</media:content>

		<media:content url="http://abdulrafaysbiztalk.files.wordpress.com/2010/12/clustersecurity_thumb.png" medium="image">
			<media:title type="html">ClusterSecurity</media:title>
		</media:content>
	</item>
		<item>
		<title>BAM Portal Configuration Error</title>
		<link>http://abdulrafaysbiztalk.wordpress.com/2010/07/07/bam-portal-configuration-error/</link>
		<comments>http://abdulrafaysbiztalk.wordpress.com/2010/07/07/bam-portal-configuration-error/#comments</comments>
		<pubDate>Wed, 07 Jul 2010 09:26:13 +0000</pubDate>
		<dc:creator>Abdul Rafay</dc:creator>
				<category><![CDATA[BizTalk]]></category>

		<guid isPermaLink="false">http://abdulrafaysbiztalk.wordpress.com/?p=378</guid>
		<description><![CDATA[When configuring the BAM portal on a x64 Environment I got this error and I had this previously but somehow forgot what was the fix. Start registering ASP.NET scriptmap (2.0.50727) at W3SVC/2/Root/BAM. Error when validating the IIS path (W3SVC/2/Root/BAM). Error code = 0&#215;80040154 The error indicates that IIS is in 64 bit mode, while this [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=abdulrafaysbiztalk.wordpress.com&amp;blog=7351933&amp;post=378&amp;subd=abdulrafaysbiztalk&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>When configuring the BAM portal on a x64 Environment I got this error and I had this previously but somehow forgot what was the fix.</p>
<p>Start registering ASP.NET scriptmap (2.0.50727) at W3SVC/2/Root/BAM.<br />
Error when validating the IIS path (W3SVC/2/Root/BAM). Error code = 0&#215;80040154<br />
The error indicates that IIS is in 64 bit mode, while this application is a 32 bit application and thus not compatible.<br />
 (Microsoft.BizTalk.Bam.CfgExtHelper.Utility)</p>
<p>To run the 32-Bit version of ASP.NET run the following command</p>
<p><strong>cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1</strong></p>
<p>You can find the commands on this <a href="http://support.microsoft.com/kb/894435">KB article</a>. After running the command set the Enable 32-Bit mode property to true of the application pool under which the BAM applications are running.</p>
<br />Filed under: <a href='http://abdulrafaysbiztalk.wordpress.com/category/biztalk/'>BizTalk</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/abdulrafaysbiztalk.wordpress.com/378/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/abdulrafaysbiztalk.wordpress.com/378/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/abdulrafaysbiztalk.wordpress.com/378/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/abdulrafaysbiztalk.wordpress.com/378/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/abdulrafaysbiztalk.wordpress.com/378/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/abdulrafaysbiztalk.wordpress.com/378/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/abdulrafaysbiztalk.wordpress.com/378/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/abdulrafaysbiztalk.wordpress.com/378/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/abdulrafaysbiztalk.wordpress.com/378/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/abdulrafaysbiztalk.wordpress.com/378/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/abdulrafaysbiztalk.wordpress.com/378/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/abdulrafaysbiztalk.wordpress.com/378/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/abdulrafaysbiztalk.wordpress.com/378/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/abdulrafaysbiztalk.wordpress.com/378/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=abdulrafaysbiztalk.wordpress.com&amp;blog=7351933&amp;post=378&amp;subd=abdulrafaysbiztalk&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://abdulrafaysbiztalk.wordpress.com/2010/07/07/bam-portal-configuration-error/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/308019870f24ca37b6647b4b51296895?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Abdul Rafay</media:title>
		</media:content>
	</item>
	</channel>
</rss>
