<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Neil Johnson - a rock 'n roll nerd....</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/neiljohn/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/neiljohn/feed.xml</link>
    <description>Mostly Exchange Server and Office 365, but probably some other stuff too...</description>
    <lastBuildDate>Thu, 28 Apr 2016 05:24:33 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Windows Phone 8.1 Developer Preview Now – For Free!</title>
      <link>https://docs.microsoft.com/archive/blogs/neiljohn/windows-phone-8-1-developer-preview-now-for-free</link>
      <pubDate>Tue, 29 Apr 2014 03:06:09 GMT</pubDate>
      <dc:creator><![CDATA[Neil Johnson [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/neiljohn/2014/04/29/windows-phone-8-1-developer-preview-now-for-free/</guid>
      <description><![CDATA[If you have a Windows Phone 8 device, you can get your hands on the new Windows Phone 8.1 preview...]]></description>
      <content:encoded><![CDATA[<p><span style="color:#333333;font-family:Segoe UI;font-size:10pt;"><a name="Notice" />If you have a Windows Phone 8 device, you can get your hands on the new Windows Phone 8.1 preview for free if you sign up for a developer account.
</span></p><p><span style="color:#333333;font-family:Segoe UI;font-size:10pt;">Use the following instructions to update your device!
</span></p><p><span style="color:#333333;font-family:Segoe UI;font-size:18pt;">Important notes
</span></p><p><span style="color:#666666;font-family:Segoe UI;font-size:10pt;">There are a few key items that you must understand before you update your phone: 
</span></p><ul><li><span style="color:#666666;font-family:Segoe UI;font-size:10pt;">After you install a preview update, <strong>you may void any warranty from your mobile operator and OEM</strong>.
</span></li><li><span style="color:#666666;font-family:Segoe UI;font-size:10pt;">A preview update <strong>only includes the Microsoft portion of the update</strong>; mobile operator and OEM driver updates will be available when the official update for your phone is available.
</span></li><li><span style="color:#666666;font-family:Segoe UI;font-size:10pt;"><strong>You cannot revert or return to a prior operating system release version after</strong> you have updated your phone to a preview update. We will move you forward to a &quot;released state,&quot; but we cannot take you back to a prior &quot;released state.&quot;
</span></li><li><span style="color:#666666;font-family:Segoe UI;font-size:10pt;">This process will take <strong>between 30-90 minutes</strong> (depending on network bandwidth) during which your phone will not be usable, please schedule accordingly 
</span></li><li><span style="color:#666666;font-family:Segoe UI;font-size:10pt;">Make sure you <strong>plug your phone into a charger</strong> or are <strong>fully charged</strong> before starting
</span></li></ul><p>
 </p><p><span style="font-family:Segoe UI;font-size:18pt;">Sign up for a Developer Preview Account
</span></p><p><span style="font-family:Segoe UI;font-size:12pt;"><em>Note: Perform these steps on any computer, these do not have to be done on your Windows Phone
</em></span></p><div><table style="border-collapse:collapse;" border="0"><colgroup><col style="width:303px;" /><col style="width:274px;" /></colgroup><tbody valign="top"><tr><td style="padding-left:7px;padding-right:7px;border-top:solid #b4c6e7 0.5pt;border-left:solid #b4c6e7 0.5pt;border-bottom:solid #8eaadb 1.5pt;border-right:solid #b4c6e7 0.5pt;"><p><span style="font-family:Segoe UI;"><strong>Description</strong></span></p></td><td style="padding-left:7px;padding-right:7px;border-top:solid #b4c6e7 0.5pt;border-left:none;border-bottom:solid #8eaadb 1.5pt;border-right:solid #b4c6e7 0.5pt;"><p><span style="font-family:Segoe UI;"><strong>Screenshot</strong></span></p></td></tr><tr><td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid #b4c6e7 0.5pt;border-bottom:solid #b4c6e7 0.5pt;border-right:solid #b4c6e7 0.5pt;"><p><span style="font-family:Segoe UI;">Register as a developer with App Studio – Free, and create apps to run on your own Windows Phones
</span></p><p>
 </p><p><a href="https://appstudio.windowsphone.com/?stay=1"><span style="font-family:Segoe UI;">https://appstudio.windowsphone.com/?stay=1</span></a><span style="font-family:Segoe UI;">
							</span></p><p>
 </p><p><span style="font-family:Segoe UI;">Click &quot;Start New Project&quot;
</span></p></td><td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid #b4c6e7 0.5pt;border-right:solid #b4c6e7 0.5pt;"><p style="text-align:center;"><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/54/67/metablogapi/042914_1010_WindowsPhon1.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-67-metablogapi/042914_5F00_1010_5F00_WindowsPhon1.png" alt=" " /></p></td></tr><tr><td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid #b4c6e7 0.5pt;border-bottom:solid #b4c6e7 0.5pt;border-right:solid #b4c6e7 0.5pt;"><p><span style="font-family:Segoe UI;">Sign-in with the same Microsoft account that is registered on the Windows Phone you wish to upgrade
</span></p><p>
 </p><p><span style="font-family:Segoe UI;">Agree to the access request</span></p></td><td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid #b4c6e7 0.5pt;border-right:solid #b4c6e7 0.5pt;"><p style="text-align:center;"><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/54/67/metablogapi/042914_1010_WindowsPhon2.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-67-metablogapi/042914_5F00_1010_5F00_WindowsPhon2.png" alt=" " /></p></td></tr><tr><td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid #b4c6e7 0.5pt;border-bottom:solid #b4c6e7 0.5pt;border-right:solid #b4c6e7 0.5pt;"><p><span style="font-family:Segoe UI;">Agree to the Windows Phone App Studio Agreement.
</span></p><p>
 </p><p><span style="font-family:Segoe UI;">Click Register</span></p></td><td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid #b4c6e7 0.5pt;border-right:solid #b4c6e7 0.5pt;"><p style="text-align:center;"><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/54/67/metablogapi/042914_1010_WindowsPhon3.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-67-metablogapi/042914_5F00_1010_5F00_WindowsPhon3.png" alt=" " /></p></td></tr><tr><td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid #b4c6e7 0.5pt;border-bottom:solid #b4c6e7 0.5pt;border-right:solid #b4c6e7 0.5pt;"><p><span style="font-family:Segoe UI;">You do not need to proceed any further at this stage, you should be prompted with a request to select a template for your first application.
</span></p><p>
 </p><p><span style="font-family:Segoe UI;">You should also receive an email that welcomes you as a Windows Phone app developer.
</span></p><p>
 </p><p><span style="font-family:Segoe UI;">Feel free to develop some apps, but you do not need to do so to get access to the Windows Phone 8.1 developer preview… simply progress to the next steps below </span><span style="font-family:Wingdings;">J</span></p></td><td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid #b4c6e7 0.5pt;border-right:solid #b4c6e7 0.5pt;"> </td></tr></tbody></table></div><p>
 </p><p>
 </p><p><span style="font-family:Segoe UI;font-size:18pt;">Install Preview for Developers onto Your Windows Phone Device
</span></p><p><span style="font-family:Segoe UI;"><span style="font-size:12pt;"><em>Note: Perform these steps on your Windows Phone</em></span><span style="font-size:18pt;">
			</span></span></p><div><table style="border-collapse:collapse;" border="0"><colgroup><col style="width:312px;" /><col style="width:261px;" /></colgroup><tbody valign="top"><tr><td style="padding-left:7px;padding-right:7px;border-top:solid #b4c6e7 0.5pt;border-left:solid #b4c6e7 0.5pt;border-bottom:solid #8eaadb 1.5pt;border-right:solid #b4c6e7 0.5pt;"><p><span style="font-family:Segoe UI;"><strong>Description</strong></span></p></td><td style="padding-left:7px;padding-right:7px;border-top:solid #b4c6e7 0.5pt;border-left:none;border-bottom:solid #8eaadb 1.5pt;border-right:solid #b4c6e7 0.5pt;"><p><span style="font-family:Segoe UI;"><strong>Screenshot</strong></span></p></td></tr><tr><td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid #b4c6e7 0.5pt;border-bottom:solid #b4c6e7 0.5pt;border-right:solid #b4c6e7 0.5pt;"><p><span style="font-family:Segoe UI;">Download the Windows Phone 8.1 update package on the Windows Phone you wish to upgrade
</span></p><p>
 </p><p><a href="https://www.windowsphone.com/en-gb/store/app/preview-for-developers/178ac8a1-6519-4a0b-960c-038393741e96"><span style="font-family:Segoe UI;">https://www.windowsphone.com/en-gb/store/app/preview-for-developers/178ac8a1-6519-4a0b-960c-038393741e96</span></a><span style="font-family:Segoe UI;">
							</span></p><p>
 </p><p><span style="font-family:Segoe UI;">Or search the Microsoft Store for &quot;Preview for Developers&quot;
</span></p><p>
 </p><p><span style="font-family:Segoe UI;">Install the application</span></p></td><td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid #b4c6e7 0.5pt;border-right:solid #b4c6e7 0.5pt;"><p><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/54/67/metablogapi/042914_1010_WindowsPhon4.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-67-metablogapi/042914_5F00_1010_5F00_WindowsPhon4.png" alt=" " /></p></td></tr><tr><td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid #b4c6e7 0.5pt;border-bottom:solid #b4c6e7 0.5pt;border-right:solid #b4c6e7 0.5pt;"><p><span style="font-family:Segoe UI;">Launch the &quot;Preview for Developers&quot; application.
</span></p><p>
 </p><p><span style="font-family:Segoe UI;">Click &quot;Next&quot;</span></p></td><td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid #b4c6e7 0.5pt;border-right:solid #b4c6e7 0.5pt;"><p><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/54/67/metablogapi/042914_1010_WindowsPhon5.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-67-metablogapi/042914_5F00_1010_5F00_WindowsPhon5.png" alt=" " /></p></td></tr><tr><td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid #b4c6e7 0.5pt;border-bottom:solid #b4c6e7 0.5pt;border-right:solid #b4c6e7 0.5pt;"><p><span style="font-family:Segoe UI;">Accept Terms and Conditions</span></p></td><td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid #b4c6e7 0.5pt;border-right:solid #b4c6e7 0.5pt;"><p><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/54/67/metablogapi/042914_1010_WindowsPhon6.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-67-metablogapi/042914_5F00_1010_5F00_WindowsPhon6.png" alt=" " /></p></td></tr><tr><td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid #b4c6e7 0.5pt;border-bottom:solid #b4c6e7 0.5pt;border-right:solid #b4c6e7 0.5pt;"><p><span style="font-family:Segoe UI;">Login with the Microsoft Account (MSA) that you previously registered as a developed account and is the same MSA that is registered on this device.</span></p></td><td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid #b4c6e7 0.5pt;border-right:solid #b4c6e7 0.5pt;"><p><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/54/67/metablogapi/042914_1010_WindowsPhon7.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-67-metablogapi/042914_5F00_1010_5F00_WindowsPhon7.png" alt=" " /></p></td></tr><tr><td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid #b4c6e7 0.5pt;border-bottom:solid #b4c6e7 0.5pt;border-right:solid #b4c6e7 0.5pt;"><p><span style="font-family:Segoe UI;">Check the &quot;Enable Preview for Developers&quot; checkbox and click done…</span></p></td><td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid #b4c6e7 0.5pt;border-right:solid #b4c6e7 0.5pt;"><p><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/54/67/metablogapi/042914_1010_WindowsPhon8.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-67-metablogapi/042914_5F00_1010_5F00_WindowsPhon8.png" alt=" " /></p></td></tr><tr><td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid #b4c6e7 0.5pt;border-bottom:solid #b4c6e7 0.5pt;border-right:solid #b4c6e7 0.5pt;"><p><span style="font-family:Segoe UI;">You should see the following screenshot if all has gone well </span><span style="font-family:Wingdings;">J</span></p></td><td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid #b4c6e7 0.5pt;border-right:solid #b4c6e7 0.5pt;"><p><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/54/67/metablogapi/042914_1010_WindowsPhon9.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-67-metablogapi/042914_5F00_1010_5F00_WindowsPhon9.png" alt=" " /></p></td></tr><tr><td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid #b4c6e7 0.5pt;border-bottom:solid #b4c6e7 0.5pt;border-right:solid #b4c6e7 0.5pt;"><p><span style="font-family:Segoe UI;">Open the <strong>settings</strong> app on your Windows Phone Device,  Open <strong>Phone Update</strong> and tap <strong>Check for Updates
</strong></span></p><p>
 </p><p><span style="font-family:Segoe UI;">Note:  You may have to go through this process a number of times as updates are applied.  Follow each updates instructions and after each one, check back on the <strong>Phone Update</strong> app until your phone reports that it is up to date.</span></p></td><td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid #b4c6e7 0.5pt;border-right:solid #b4c6e7 0.5pt;"><p><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/54/67/metablogapi/042914_1010_WindowsPhon10.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-67-metablogapi/042914_5F00_1010_5F00_WindowsPhon10.png" alt=" " /></p></td></tr></tbody></table></div><p>
 </p><p><span style="font-family:Segoe UI;font-size:18pt;">More information on Windows Phone 8.1
</span></p><p><a href="https://www.windowsphone.com/en-us/features-8-1"><span style="font-family:Segoe UI;">https://www.windowsphone.com/en-us/features-8-1</span></a><span style="font-family:Segoe UI;">
		</span></p>]]></content:encoded>
    </item>
    <item>
      <title>Retiring the Microsoft Master certifications and training</title>
      <link>https://docs.microsoft.com/archive/blogs/neiljohn/retiring-the-microsoft-master-certifications-and-training</link>
      <pubDate>Fri, 30 Aug 2013 23:58:53 GMT</pubDate>
      <dc:creator><![CDATA[Neil Johnson [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/neiljohn/2013/08/30/retiring-the-microsoft-master-certifications-and-training/</guid>
      <description><![CDATA[I received this extremely sad news this morning.  I have been a part of the MCM/MCSM community for 5...]]></description>
      <content:encoded><![CDATA[<p>I received this extremely sad news this morning.  I have been a part of the MCM/MCSM community for 5 years now and have made many friends, both attending and instructing at MCSM:Messaging.  I am sure I am not the only one, but I will certainly miss this community and the many friends that I have made.
</p><h1>Termination E-mail Message in Full
</h1><p><span style="color:#7030a0"><em>We are contacting you to let you know we are making a change to the Microsoft Certified Master, Microsoft Certified Solutions Master, and Microsoft Certified Architect certifications. As technology changes so do Microsoft certifications and as such, we are continuing to evolve the Microsoft certification program. Microsoft will no longer offer Masters and Architect level training rotations and will be retiring the Masters level certification exams as of October 1, 2013. The IT industry is changing rapidly and we will continue to evaluate the certification and training needs of the industry to determine if there's a different certification needed for the pinnacle of our program.
</em></span></p><p><span style="color:#7030a0"><em>As a Microsoft Certified Master, Microsoft Certified Solutions Master, or Microsoft Certified Architect, you have earned one of the highest certifications available through the Microsoft Certification program. Although individuals will no longer be able to earn these certifications, you will continue to hold the credential and you will not be required to recertify your credential in the future. You will continue to have access to the logos through the MCP site, and your certifications will continue to show in the appropriate section of your transcript, according to Microsoft technology retirement dates. If you are a Charter Member, you will continue to hold the Charter Member designation on your transcript. 
</em></span></p><p><span style="color:#7030a0"><em>Also as a Microsoft Certified Master, Microsoft Certified Solutions Master, or Microsoft Certified Architect, you are a member of an exclusive, highly technical community and you've told us this community is one of the biggest benefits of your certification. We encourage you to stay connected with your peers through the main community distribution lists. Although we won't be adding more people to this community, you continue to be a valued member of it. Over time, Microsoft plans to transition the distribution lists to the community, and, with your consent, will include your information so that it can continue to be a valuable resource for your ongoing technical discussions.
</em></span></p><p><span style="color:#7030a0"><em>Within the coming weeks, you will receive invitations to an updated community site. This community site will require you to sign in with a <a href="https://signup.live.com/">Microsoft Account</a> and will replace the need for a Microsoft Partner account as is required today. From this site, you will be able to manage service requests for the Masters and Architects communities – such as ordering welcome kits and managing your contact information for the distribution lists and directory - and accessing training rotation and other community content (if applicable). 
</em></span></p><p><span style="color:#7030a0"><em>If you have not ordered your Welcome Kit, the last day to do so is October 31, 2013. To order your Welcome Kit, please contact the Advanced Cert team at <a href="mailto:advcert@microsoft.com">advcert@microsoft.com</a>. 
</em></span></p><p><span style="color:#7030a0"><em>We thank you for your commitment to Microsoft technologies. 
</em></span></p><p>So, there you have it - no more Master - bad times <span style="font-family:Wingdings">L</span></p>]]></content:encoded>
    </item>
    <item>
      <title>Outlook 2007 fails to connect to Outlook Anywhere via NTLM on Vista</title>
      <link>https://docs.microsoft.com/archive/blogs/neiljohn/outlook-2007-fails-to-connect-to-outlook-anywhere-via-ntlm-on-vista</link>
      <pubDate>Tue, 26 Jun 2012 00:47:28 GMT</pubDate>
      <dc:creator><![CDATA[Neil Johnson [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/neiljohn/2012/06/26/outlook-2007-fails-to-connect-to-outlook-anywhere-via-ntlm-on-vista/</guid>
      <description><![CDATA[So, firstly an apology for the lack of posts recently... I always said that if I didn't have...]]></description>
      <content:encoded><![CDATA[<p>So, firstly an apology for the lack of posts recently... I always said that if I didn't have anything interesting or useful to post I just wouldn't post, so that's what happened…
</p><p>Anyway, I have been working with a customer to deploy Outlook Anywhere, we used Greg Taylors awesome <a href="https://www.microsoft.com/en-us/download/details.aspx?id=22723">white paper</a> on this to get UAG to do the necessary publishing and authentication.  This worked fine in my test lab but when we configured in production the clients couldn't connect and received perpetual credential prompts...
</p><p>We did the usual host of troubleshooting (there is plenty of hocus-pocus on internet forums about OA password prompts!) but basically drew a blank… then someone in the project team noticed that their test Windows 7 machine could connect, but the production Vista machines were failing.
</p><p>After some head scratching and searching we came across the following KB article…
</p><p><a href="https://support.microsoft.com/kb/2408187/">https://support.microsoft.com/kb/2408187/</a>
	</p><p><span style="color:black"><em>"Consider the following scenario. You have a computer that is running Windows Vista or Windows Server 2008. You configure the computer to use the RPC over HTTP feature to access certain services. In this scenario, the RPC over HTTP module (Rpchttp.dll) may not work correctly. Therefore, the RPC over HTTP connection does not establish successfully. For example, you cannot sign in to Outlook Anywhere or in to Office Communicator. Additionally, you are prompted to provide your user credentials."
</em></span></p><p>So.. We dutifully downloaded and installed this hotfix which resolved the issue <span style="font-family:Wingdings">J</span>
	</p><p>I wanted to post this here since we don't get to see Vista very often and I was totally unaware of this issue.
</p>]]></content:encoded>
    </item>
    <item>
      <title>Microsoft Exchange Online Migration Performance Guide for Office 365</title>
      <link>https://docs.microsoft.com/archive/blogs/neiljohn/microsoft-exchange-online-migration-performance-guide-for-office-365</link>
      <pubDate>Wed, 11 Apr 2012 06:22:04 GMT</pubDate>
      <dc:creator><![CDATA[Neil Johnson [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/neiljohn/2012/04/11/microsoft-exchange-online-migration-performance-guide-for-office-365/</guid>
      <description><![CDATA[I guess it's pretty obvious by now that I am a bit of a nerd when it comes to Exchange and Outlook...]]></description>
      <content:encoded><![CDATA[<p>I guess it's pretty obvious by now that I am a bit of a nerd when it comes to Exchange and Outlook performance.  One area that has always felt like a black box though is migrating data into Office 365 Exchange Online service.
</p><p>The problem for me was that sometimes I would be able to migrate very quickly and at other times the migration would seem much slower, even though the network availability seemed the same during both times.  This made migration planning extremely difficult since it was difficult to actually understand what the constraints actually were… this obviously leads to projects over and under provisioning migration schedule time which is not a good place to be.
</p><p>There was also much confusion about if Office 365 was throttling some migration types and not others.
</p><p>Well, I am extremely pleased to say that a guide has been released that discusses many of these questions and also finally shows what throttling policies are being applied to which migration mechanisms.
</p><p>This document is a <span style="text-decoration:underline">must read</span> for anyone planning an Office 365 migration to Exchange Online
</p><p><a href="https://community.office365.com/en-us/f/183/t/45466.aspx">https://community.office365.com/en-us/f/183/t/45466.aspx</a>
	</p><p>
 </p>]]></content:encoded>
    </item>
    <item>
      <title>Forcing a full OAB download in Outlook 2011</title>
      <link>https://docs.microsoft.com/archive/blogs/neiljohn/forcing-a-full-oab-download-in-outlook-2011</link>
      <pubDate>Fri, 23 Mar 2012 02:54:12 GMT</pubDate>
      <dc:creator><![CDATA[Neil Johnson [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/neiljohn/2012/03/23/forcing-a-full-oab-download-in-outlook-2011/</guid>
      <description><![CDATA[I want to start this blog by apologising for the lack of posts recently… this is mostly due to me...]]></description>
      <content:encoded><![CDATA[<p>I want to start this blog by apologising for the lack of posts recently… this is mostly due to me not having anything interesting to say and not wanting this blog to be watered down with irrelevant nonsense… that and working on stuff that I can't talk about yet…
</p><p>Anyway, one thing that I can talk about is the Exchange Client Network Bandwidth calculator that was released a few months ago on the Exchange Team Blog
</p><p><a href="https://blogs.technet.com/b/exchange/archive/2012/03/09/exchange-client-network-bandwidth-calculator-beta2.aspx">https://blogs.technet.com/b/exchange/archive/2012/03/09/exchange-client-network-bandwidth-calculator-beta2.aspx</a>
	</p><p>Why do I mention this when the post title clearly talks about Outlook 2011 and Offline Address Book Download?  Well… I have been working with Outlook 2011 this week to derive the network bandwidth formulae required for the calculator and one thing caused me to get stuck... how could I predict OAB download usage for Outlook 2011 when I couldn't see a way to force a full OAB sync?
</p><p>As it turns out you can force a full OAB sync on Outlook 2011, it's just not exposed in the GUI…
</p><p>If we open a terminal and take a look inside <strong>~/Library/Caches/Outlook/Main Identity/1/Download</strong> we can see the OAB.XML file that has been downloaded from our Exchange server.
</p><p><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/54/67/metablogapi/5857.032312_0953_Forcingaful1.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-67-metablogapi/5857.032312_5F00_0953_5F00_Forcingaful1.png" alt=""/>
	</p><p>To trigger a full OAB file download following these steps.
</p><ol><li>Fully exit Outlook 2011
</li><li>Remove the <strong>~/Library/Caches/Outlook/Main Identity</strong> directory
</li><li>Restart Outlook 2011
</li></ol><p><em>NOTE: One thing worth pointing out here is that "Main Identity" refers to the primary account that was configured for Outlook 2011 – if you are working with a different account you need to change the paths accordingly, otherwise you will remove the OAB file from the wrong account!
</em></p><p><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/54/67/metablogapi/8156.032312_0953_Forcingaful2.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-67-metablogapi/8156.032312_5F00_0953_5F00_Forcingaful2.png" alt=""/>
	</p><p>Once this directory has been removed, re-start Outlook 2011 which will re-create the Main Identity directory for you, however it may take up to 15 minutes before the OAB download is triggered.
</p><p>Hopefully this helps someone else out there.
</p><p>
 </p><p>
 </p>]]></content:encoded>
    </item>
    <item>
      <title>Using your iPad, iPhone or Windows Phone with Lync 2010 and Office 365</title>
      <link>https://docs.microsoft.com/archive/blogs/neiljohn/using-your-ipad-iphone-or-windows-phone-with-lync-2010-and-office-365</link>
      <pubDate>Thu, 02 Feb 2012 03:25:03 GMT</pubDate>
      <dc:creator><![CDATA[Neil Johnson [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/neiljohn/2012/02/02/using-your-ipad-iphone-or-windows-phone-with-lync-2010-and-office-365/</guid>
      <description><![CDATA[I have had a few recently from customers wanting to use Lync 2010 Mobile on their shiny mobile...]]></description>
      <content:encoded><![CDATA[<p><span style="font-family:Times New Roman; font-size:12pt">I have had a few recently from customers wanting to use Lync 2010 Mobile on their shiny mobile devices. I thought I would go through the steps here to connect iOS devices, such as iPad and iPhone as well as Windows Phone WP7 devices to Lync Online in Office 365. 
</span></p><h1>Prerequisites 
</h1><p><span style="font-family:Times New Roman; font-size:12pt">This post assumes that you have configured your tenant correctly and have all of the necessary DNS records in place. To check what you should have in pace 
</span></p><ul style="margin-left: 38pt"><li>login to <a href="https://portal.microsoftonline.com">https://portal.microsoftonline.com</a> as tenant administrator 
</li><li>Click on Domains 
</li><li>Click on the Domain you are using for your Lync users 
</li><li>Click on DNS settings 
</li></ul><p><span style="font-size:12pt"><span style="font-family:Times New Roman">Check that each and every one of the DNS records required for Lync is in place and configured correctly. It is not worth continuing unless this has been done (because it won't work! </span><span style="font-family:Wingdings">?</span><span style="font-family:Times New Roman">). 
</span></span></p><p><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/54/67/metablogapi/1004.020212_1124_UsingyouriP1.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-67-metablogapi/1004.020212_5F00_1124_5F00_UsingyouriP1.png" alt=""/><span style="font-family:Times New Roman; font-size:12pt">
		</span></p><h1>iPad and iPhone 
</h1><p><span style="font-family:Times New Roman; font-size:12pt">I am going to use my iPad here but the same approach should work for your iPhone. 
</span></p><p><span style="font-family:Times New Roman; font-size:12pt">First we need to download the Lync 2010 App from the App Store, the easiest way is to search for it in the App store on your device but you can do it via iTunes as well if you need to. 
</span></p><ul><li><a href="https://itunes.apple.com/us/app/microsoft-lync-2010-for-iphone/id484293461?mt=8">Lync 2010 Mobile - iPhone Version</a>
		</li><li><a href="https://itunes.apple.com/us/app/microsoft-lync-2010-for-ipad/id484222449?mt=8">Lync 2010 Mobile - iPad Version</a>
		</li></ul><p><span style="font-family:Times New Roman; font-size:12pt">Once downloaded you should now have the Lync 2010 App icon on your device… 
</span></p><p><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/54/67/metablogapi/6786.020212_1124_UsingyouriP2.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-67-metablogapi/6786.020212_5F00_1124_5F00_UsingyouriP2.png" alt=""/><span style="font-family:Times New Roman; font-size:12pt">
		</span></p><p><span style="font-family:Times New Roman; font-size:12pt">When you first start the app it will ask you to login, you will need to know the following information 
</span></p><ul><li><strong>Sign-in Address</strong>: This is your UserPrincipalName 
</li><li><strong>Password</strong>: Yeah, this is your password <span style="font-family:Wingdings">?</span>
		</li><li><strong>User Name </strong>&lt;Click More Details&gt;: This is your UserPrincipalName 
</li></ul><p><span style="font-family:Times New Roman; font-size:12pt">Your UserPrincipalName (UPN) is usually the same as your email address, but it may not be. This will be the name you use to login to the Office 365 portal with. 
</span></p><p><span style="font-family:Times New Roman; font-size:12pt">Enter the login details at the Sign-in page and tap Sign-in… 
</span></p><p><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/54/67/metablogapi/4571.020212_1124_UsingyouriP3.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-67-metablogapi/4571.020212_5F00_1124_5F00_UsingyouriP3.png" alt=""/><span style="font-family:Times New Roman; font-size:12pt">
		</span></p><p><span style="font-family:Times New Roman; font-size:12pt">Lync will then validate your credentials and attempt to log in… 
</span></p><p><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/54/67/metablogapi/4174.020212_1124_UsingyouriP4.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-67-metablogapi/4174.020212_5F00_1124_5F00_UsingyouriP4.png" alt=""/><span style="font-family:Times New Roman; font-size:12pt">
		</span></p><p><span style="font-size:12pt"><span style="font-family:Times New Roman">Once logged in you should see the contacts page – as you can see I don't have many friends in my lab </span><span style="font-family:Wingdings">?</span><span style="font-family:Times New Roman">
			</span></span></p><p><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/54/67/metablogapi/0218.020212_1124_UsingyouriP5.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-67-metablogapi/0218.020212_5F00_1124_5F00_UsingyouriP5.png" alt=""/><span style="font-family:Times New Roman; font-size:12pt">
		</span></p><p><span style="font-family:Times New Roman; font-size:12pt">There is an info screen for settings and general configuration… 
</span></p><p><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/54/67/metablogapi/0317.020212_1124_UsingyouriP6.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-67-metablogapi/0317.020212_5F00_1124_5F00_UsingyouriP6.png" alt=""/><span style="font-family:Times New Roman; font-size:12pt">
		</span></p><p><span style="font-family:Times New Roman; font-size:12pt">Plus a screen showing your current Chats… 
</span></p><p><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/54/67/metablogapi/6661.020212_1124_UsingyouriP7.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-67-metablogapi/6661.020212_5F00_1124_5F00_UsingyouriP7.png" alt=""/><span style="font-family:Times New Roman; font-size:12pt">
		</span></p><p><span style="font-family:Times New Roman; font-size:12pt">I really just wanted to show how to connect in this post, so I am not going to dig into any of the detailed usage here. 
</span></p><h1>Windows Phone 
</h1><p><span style="font-family:Times New Roman; font-size:12pt">Firstly we need to download the Lync 2010 app from the Windows Phone Marketplace. The easiest way to do this is to search for it on your WP device. Once installed, you should have an icon for Lync 2010 – I have pinned mine to the start screen for easy access and the live tiles. 
</span></p><p><span style="font-size:12pt"><span style="font-family:Times New Roman">Note: WP does not have the ability to take screenshots so I am attempting to do my best with my HTC Mozart and my Cannon DSLR – I will apologise for the quality before we go on </span><span style="font-family:Wingdings">?</span><span style="font-family:Times New Roman">
			</span></span></p><p><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/54/67/metablogapi/8255.020212_1124_UsingyouriP8.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-67-metablogapi/8255.020212_5F00_1124_5F00_UsingyouriP8.jpg" alt=""/><span style="font-family:Times New Roman; font-size:12pt">
		</span></p><p><span style="font-family:Times New Roman; font-size:12pt">On opening Lync 2010 will request your credentials, these are exactly the same as for the iPad and iPhone versions.. 
</span></p><ul><li><strong>Sign-in Address</strong>: This is your UserPrincipalName 
</li><li><strong>Password</strong>: Yeah, this is your password <span style="font-family:Wingdings">?</span>
		</li><li><strong>User name </strong>&lt;Click More Details&gt;: This is your UserPrincipalName 
</li></ul><p><span style="font-family:Times New Roman; font-size:12pt">Your UserPrincipalName (UPN) is usually the same as your email address, but it may not be. This will be the name you use to login to the Office 365 portal with. 
</span></p><p><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/54/67/metablogapi/4035.020212_1124_UsingyouriP9.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-67-metablogapi/4035.020212_5F00_1124_5F00_UsingyouriP9.jpg" alt=""/><span style="font-family:Times New Roman; font-size:12pt">
		</span></p><p><span style="font-family:Times New Roman; font-size:12pt">Tap the circle with a tick inside at the bottom and Lync 2010 will attempt to log you in to Office 365… 
</span></p><p><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/54/67/metablogapi/4061.020212_1124_UsingyouriP10.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-67-metablogapi/4061.020212_5F00_1124_5F00_UsingyouriP10.jpg" alt=""/><span style="font-family:Times New Roman; font-size:12pt">
		</span></p><p><span style="font-family:Times New Roman; font-size:12pt">Once connected for the first time Lync 2010 will run through a few initial start-up screens… 
</span></p><p><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/54/67/metablogapi/3480.020212_1124_UsingyouriP11.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-67-metablogapi/3480.020212_5F00_1124_5F00_UsingyouriP11.jpg" alt=""/><span style="font-family:Times New Roman; font-size:12pt">
		</span></p><p><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/54/67/metablogapi/1323.020212_1124_UsingyouriP12.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-67-metablogapi/1323.020212_5F00_1124_5F00_UsingyouriP12.jpg" alt=""/><span style="font-family:Times New Roman; font-size:12pt">
		</span></p><p><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/54/67/metablogapi/1323.020212_1124_UsingyouriP13.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-67-metablogapi/1323.020212_5F00_1124_5F00_UsingyouriP13.jpg" alt=""/><span style="font-family:Times New Roman; font-size:12pt">
		</span></p><p><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/54/67/metablogapi/8105.020212_1124_UsingyouriP14.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-67-metablogapi/8105.020212_5F00_1124_5F00_UsingyouriP14.jpg" alt=""/><span style="font-family:Times New Roman; font-size:12pt">
		</span></p><p><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/54/67/metablogapi/6064.020212_1124_UsingyouriP15.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-67-metablogapi/6064.020212_5F00_1124_5F00_UsingyouriP15.jpg" alt=""/><span style="font-family:Times New Roman; font-size:12pt">
		</span></p><p><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/54/67/metablogapi/2656.020212_1124_UsingyouriP16.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-67-metablogapi/2656.020212_5F00_1124_5F00_UsingyouriP16.jpg" alt=""/><span style="font-family:Times New Roman; font-size:12pt">
		</span></p><p><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/54/67/metablogapi/1185.020212_1124_UsingyouriP17.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-67-metablogapi/1185.020212_5F00_1124_5F00_UsingyouriP17.jpg" alt=""/><span style="font-family:Times New Roman; font-size:12pt">
		</span></p><h1>Conclusion 
</h1><p><span style="font-family:Times New Roman; font-size:12pt">Hopefully, this post shows that's it's pretty easy to connect your mobile device to Lync 2010 in Microsoft Office 365. The most common causes of connection problems that I see are either incorrect DNS records or ADFS authentication problems (for federated identities obviously!). 
</span></p><p><span style="font-family:Times New Roman; font-size:12pt">I would like to dig into these mobile a clients further but this post is already much longer than I anticipated, so I am going to leave it as just a connection post and do something in the future about the features and functionality that these clients provide.</span></p>]]></content:encoded>
    </item>
    <item>
      <title>Office 365 Proxy Server Exclusion List – Office 365 Service URL’s</title>
      <link>https://docs.microsoft.com/archive/blogs/neiljohn/office-365-proxy-server-exclusion-list-office-365-service-urls</link>
      <pubDate>Thu, 26 Jan 2012 04:46:50 GMT</pubDate>
      <dc:creator><![CDATA[Neil Johnson [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/neiljohn/2012/01/26/office-365-proxy-server-exclusion-list-office-365-service-urls/</guid>
      <description><![CDATA[I am just posting this here since it's a bit of information I regularly provide to customers and I...]]></description>
      <content:encoded><![CDATA[<p><span style="font-family:Times New Roman; font-size:12pt">I am just posting this here since it's a bit of information I regularly provide to customers and I always have trouble remembering where I found it (yes I know I should create a browser bookmark, but I thought I would share!). 
</span></p><p><span style="font-family:Times New Roman; font-size:12pt">When you deploy Office 365 one of the most difficult (and poorly documented) areas is network connectivity for clients and servers on terra firma connecting to the cloud. My recommendation is to bypass your normal internet proxy servers for all Office 365 services to provide the best experience for your earthlings trying to access their cloud based email – this obviously raises the question "Which names do I need to exclude?" and that's where the following TechNet page comes in… 
</span></p><h2>Office 365 URLS and IP Address Ranges
</h2><p><a href="https://onlinehelp.microsoft.com/en-us/office365-enterprises/hh373144.aspx"><span style="font-family:Times New Roman; font-size:12pt">https://onlinehelp.microsoft.com/en-us/office365-enterprises/hh373144.aspx</span></a><span style="font-family:Times New Roman; font-size:12pt">
		</span></p><h2>Exchange Online URLs and IP Address Ranges 
</h2><p><a href="https://technet.microsoft.com/en-us/exchangelabshelp/gg263350"><span style="font-family:Times New Roman; font-size:12pt">https://technet.microsoft.com/en-us/exchangelabshelp/gg263350</span></a><span style="font-family:Times New Roman; font-size:12pt">
		</span></p><h2>RSS Updates for URL and IP Address Range Changes
</h2><p><a href="https://go.microsoft.com/fwlink/?linkid=236301"><span style="font-family:Times New Roman; font-size:12pt">https://go.microsoft.com/fwlink/?linkid=236301</span></a><span style="font-family:Times New Roman; font-size:12pt">
		</span></p><p>
 </p><p><span style="font-family:Times New Roman; font-size:12pt">Exactly how you engineer your bypass list is specific to your network topology and technology.</span></p>]]></content:encoded>
    </item>
    <item>
      <title>Outlook Performance Troubleshooting including Office 365</title>
      <link>https://docs.microsoft.com/archive/blogs/neiljohn/outlook-performance-troubleshooting-including-office-365</link>
      <pubDate>Mon, 23 Jan 2012 03:50:09 GMT</pubDate>
      <dc:creator><![CDATA[Neil Johnson [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/neiljohn/2012/01/23/outlook-performance-troubleshooting-including-office-365/</guid>
      <description><![CDATA[I have been involved in a number of discussions recently regarding Outlook performance...]]></description>
      <content:encoded><![CDATA[<p>I have been involved in a number of discussions recently regarding Outlook performance troubleshooting in the cloud.  Mostly these discussions were in the context of why the customer didn't want to move to the cloud since they figured it would be impossible to troubleshoot Outlook performance afterwards
</p><h2>Discussion Summary: 
</h2><p><em>When we have clients and Exchange on terra firma we can monitor some performance counters such as RPC Average Latency on Exchange and use the Outlook and client performance counters to establish if a poor end user experience is being caused by the Exchange Server, the Network or the Client machine.  If we move the messaging service out to the Office 365 cloud we can no longer monitor RPC Average Latency so we don't know if poor performance at the client is being caused by network or the Exchange server.
</em></p><h2>Outlook Performance
</h2><p>This started me thinking about how to deal with this situation and what items make up the client experience from an Outlook performance perspective.
</p><p>The following items can both have a fairly dramatic effect on Outlook client performance and either could cause the end customer to pick up the phone to support and say that "E-mail is slow". 
</p><ul><li>MAPI RPC Latency
</li><li>Client system performance
</li></ul><p>If we make the assumption that our service is running in the Office 365 cloud, how do we go about determining the actual cause of Outlook performance problems?
</p><h3>MAPI RPC Latency
</h3><p>RPC Latency is made up of two parts
</p><ul><li>Server side RPC processing
</li><li>Round-trip-time Network Latency
</li></ul><p>Network latency is probably the easiest to examine on the surface since we really just need to use ping.exe to find out what our TCP round-trip-time (RTT) value is to the target server.  There is a snag though, as you might expect…
</p><p>Here is the ping response from my Office 365 server…
</p><p><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/54/67/metablogapi/1030.012312_1149_OutlookPerf1.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-67-metablogapi/1030.012312_5F00_1149_5F00_OutlookPerf1.png" alt=""/>
	</p><p>Not exactly useful since ICMP Echo is blocked at the external firewall.  So, if we can't use ping.exe how do we determine our Network RTT latency?  Well, luckily Outlook has us covered here and keeps a track of some stuff that can help us out…
</p><p>In your task tray you should see an Outlook Icon.  If you hold down CTRL + RIGHT CLICK on this icon it will show the Outlook context menu…
</p><p><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/54/67/metablogapi/4571.012312_1149_OutlookPerf2.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-67-metablogapi/4571.012312_5F00_1149_5F00_OutlookPerf2.png" alt=""/>
	</p><p>From the Outlook Context menu select "Connection Status"
</p><p><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/54/67/metablogapi/7612.012312_1149_OutlookPerf3.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-67-metablogapi/7612.012312_5F00_1149_5F00_OutlookPerf3.png" alt=""/>
	</p><p>In the Connection Status dialog box find the columns called <strong>Avg Resp</strong> and <strong>Avg Proc</strong>.  The difference between these two values represents the network latency for each connection.  
</p><p><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/54/67/metablogapi/4075.012312_1149_OutlookPerf4.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-67-metablogapi/4075.012312_5F00_1149_5F00_OutlookPerf4.png" alt=""/>
	</p><p>In this example you can see that I have two logical connections listed as Mail (To see the physical TCP connections use <a href="https://technet.microsoft.com/en-us/sysinternals/bb897437">TCPview</a>).  This is normal for a cached mode Outlook 2007+ client.  One connection is used for item synchronisation and the other is reserved for sending new messages.  This architecture prevents sending a large message from blocking Outlook receiving new items like it did in Outlook 2003.
</p><p>Generally speaking the connection with the larger <em>Req</em> count is for synchronisation which is the one we will use in this example.
</p><ul><li>Avg Resp is 87ms
</li><li>Avg Proc is 10ms
</li></ul><p>This means that my Network RTT time is 77ms and the Server side RPC processing latency is 10ms.
</p><p>In my example this makes perfect sense since I am based in the UK and my mailbox is hosted on Office 365 in North America.  It also shows that my Network and Server latency are within acceptable limits.
</p><p>Generally speaking I use the following recommendations to maintain a good client experience in Cached mode for Outlook 2007 and later.
</p><ul><li>Max Avg Proc Time (Exchange RPC Latency) = 25ms
</li><li>Max Network RTT Time (Network Ping Time) = 300ms
</li><li>Max Avg Resp Time (Exchange RPC Latency + Network Latency) = 325ms
</li></ul><p>Once armed with these values it is possible to direct troubleshooting more specifically.  For example, if Network RTT is high you could look at your network links or firewalls.  If the Avg Proc time is high then a call to Office 365 support might be in order.
</p><p>One final point here is to check the Req/Fail column.  A high value for Fail represents high number of network disconnection events.  If this is combined with a high Avg Proc time it potentially points to a service issue in Office 365, however if Avg Proc is good then it suggests that you may have a network connectivity problem between the client and the service.  A common cause of this is <a href="https://community.office365.com/modg/default.aspx?n=PortExhaustion.aspx">source port exhaustion</a> for environments with more than 2000 users.
</p><h3>Client System Performance
</h3><p>So what happens if the Network and Exchange RPC metrics are all good but the end customer is still experiencing poor Outlook performance?  Since we have ruled out Network and Exchange performance the most likely culprit is the client workstation.
</p><p>So what could be causing Outlook performance problems on the local workstation?
</p><p>For this we need to look at the usual trinity of performance areas within the operating system
</p><ul><li>CPU
</li><li>RAM
</li><li>DISK I/O
</li></ul><p>To take a look at these further I am going to use <a href="https://technet.microsoft.com/en-us/sysinternals/bb896653">Process Explorer</a>.
</p><h4>Client CPU
</h4><p>Outlook is generally not that CPU intensive, however if your CPU is flat out doing other stuff then Outlook will respond slowly.  To check this, open Process Explorer and arrange the table in descending CPU order.
</p><p><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/54/67/metablogapi/8863.012312_1149_OutlookPerf5.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-67-metablogapi/8863.012312_5F00_1149_5F00_OutlookPerf5.png" alt=""/>
	</p><p>We are looking for a few things here.  Firstly what is our System Idle Process value?  This tells us how much CPU time we have spare. Generally speaking if this value is less than 20% the system will feel sluggish.  In my example you can see that I have plenty of CPU time available and so it is unlikely CPU is an issue here.
</p><p>If Outlook appears at or near the top of this list then the most likely culprits are that you have a faulty add-in installed, (try running Outlook in <a href="https://office.microsoft.com/en-us/outlook-help/work-with-office-safe-modes-HP010140792.aspx">safe mode</a>), or that your OST file is damaged (Try running the <a href="https://support.microsoft.com/kb/272227">Inbox Repair Tool</a>).
</p><p>To get a better idea of how Outlook is consuming resources, find OUTLOOK.EXE in the Process list, double click it and then open the Performance Graph tab in the properties dialogue box.
</p><p>This will show some historical values for CPU Usage for the Outlook process.  Even a large Mailbox (mine is 10GB) shouldn't require Outlook to take up a large amount of CPU time.
</p><p><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/54/67/metablogapi/3808.012312_1149_OutlookPerf6.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-67-metablogapi/3808.012312_5F00_1149_5F00_OutlookPerf6.png" alt=""/>
	</p><h4>Client RAM
</h4><p>Insufficient RAM has a number of effects on Outlook.  Firstly the process can be starved of physical RAM and so run slowly; secondly the operating system will have to page large chunks of memory to disk which will cause disk I/O problems.  Since we are going to look at disk I/O in the next section, I will just look at identifying client memory problems here.
</p><p>It is important to realise that Windows will page out an amount of memory to the page file and this both normal and advantageous.  However, where the system has significantly more committed memory than it can accommodate in physical RAM we may run into performance problems as the process accesses its data in virtual memory and instead has to wait for that data to come from disk.  This process is known as hard paging.  A sustained high level (&gt;5) of hard page faults is a strong indicator that there is not enough RAM in the system.
</p><p>Unfortunately Process Explorer can't help us here since it shows a combination of hard and soft paging.  For this task we are going to need to break out Performance Monitor (perfmon.exe).
</p><p>Open, Perfmon and then add in the MEMORY\Page Reads/sec counter.
</p><p><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/54/67/metablogapi/7215.012312_1149_OutlookPerf7.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-67-metablogapi/7215.012312_5F00_1149_5F00_OutlookPerf7.png" alt=""/>
	</p><p>You can see clearly that this system has to retrieve data from the page file frequently.  In fact this is from a virtual machine running Windows 7 and Outlook 2010 in 512MB RAM with a 5GB mailbox.  Almost every single action performed within Outlook triggers a spike in Page Reads/sec.  The user experience is very slow, however if we look at the Exchange Connection status for this client…
</p><p><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/54/67/metablogapi/8272.012312_1149_OutlookPerf8.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-67-metablogapi/8272.012312_5F00_1149_5F00_OutlookPerf8.png" alt=""/>
	</p><ul><li>Avg Resp = 4ms
</li><li>Avg Proc = 0ms
</li></ul><p>This clearly shows that the poor user experience is being driven by the client and not by the server or network and more importantly that a bit of extra RAM is likely to make this customer happy – clever right? <span style="font-family:Wingdings">J</span>
	</p><h3>Client Disk I/O
</h3><p>This is a bit of a soapbox of mine at the moment.  As Exchange professionals we go to great lengths to monitor our messaging service on the basis that we want to provide the best user experience.  However, the reality is that the most likely cause of poor user experience is accessing a large Outlook OST file stored on an underperforming client system.  Over time these OST files generally reach roughly double the size of your mailbox.  If we take Office 365 as an example with a 25GB quota, this means that it's not impossible for a user to have a 50GB OST file on their laptop HDD.  Let's think about that for a minute… we have a 50GB file, with data in it that we need to access quickly – if that was a Word document or Access database most users would accept a minute or two's delay as it was opened and yet we expect Outlook to open it in 5 seconds or we think something is broken <span style="font-family:Wingdings">J</span>
	</p><p>Speedy access to a large OST file access relies on two things…
</p><ul><li>A fast HDD that isn't dealing with too much other stuff
</li><li>A mostly contiguous OST file
</li></ul><h3>HDD Usage
</h3><p>If the hard disk drive is busy doing other things then Outlook in cached mode will perform slowly and deliver a poor user experience.
</p><h4>Physical Disk\Disk Queue Length
</h4><p>This is a measure of how many requests are waiting for the disk.  Ideally the disk queue length should be no more than 1.5-2 times the number of disks that make up the volume.  For most client workstations this means that disk queue length should be &lt;2.  As a general rule don't provide older laptops with 5400rpm HDD's very large mailbox sizes, i.e. don't just give everyone a 25GB mailbox without checking to see if their hardware is going to cope <span style="font-family:Wingdings">J</span>
	</p><h4>Contiguous OST File
</h4><p>Since Outlook makes frequent reads and writes to the OST file it can become very fragmented over time.  A heavily fragmented OST file (&gt;1000 frags/file) can lead to poor Outlook client performance.
</p><p>The easiest way to check and defragment the OST file is via the sysinternals tool <a href="https://technet.microsoft.com/en-us/sysinternals/bb897428">contig.exe</a>.  First close down any applications that may be accessing the OST file, such as Outlook or Lync.
</p><p>To check the OST file for fragmentation use the command
</p><ul><li>Contig.exe –a &lt;path to OST file&gt;
</li></ul><p><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/54/67/metablogapi/4555.012312_1149_OutlookPerf9.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-67-metablogapi/4555.012312_5F00_1149_5F00_OutlookPerf9.png" alt=""/>
	</p><p><strong>Note:</strong>  You must be running <em>contig.exe</em> with elevated privileges to perform defragmentation. 
</p><p>To defragment the OST file use the command.  
</p><ul><li>Contig &lt;path to OST file&gt;
</li></ul><p><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/54/67/metablogapi/3173.012312_1149_OutlookPerf10.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-67-metablogapi/3173.012312_5F00_1149_5F00_OutlookPerf10.png" alt=""/>
	</p><h3>Conclusion and further reading
</h3><p>Outlook performance is just like any other application.  It relies on CPU, Memory, Disk and Network.  If any of those resources are performing badly then the end customer is likely to experience poor performance.  Exactly the same troubleshooting processes apply on-premises or for Office 365 users.  The only real difference that applies to Office 365 performance troubleshooting is that we cannot directly observe Exchange performance counters and so we need to rely on the data that Outlook provides us.</p>]]></content:encoded>
    </item>
    <item>
      <title>Performance Monitor Tips and Tricks with John Rodriguez</title>
      <link>https://docs.microsoft.com/archive/blogs/neiljohn/performance-monitor-tips-and-tricks-with-john-rodriguez</link>
      <pubDate>Mon, 16 Jan 2012 13:35:09 GMT</pubDate>
      <dc:creator><![CDATA[Neil Johnson [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/neiljohn/2012/01/16/performance-monitor-tips-and-tricks-with-john-rodriguez/</guid>
      <description><![CDATA[Hello everyone … My name is John Rodriguez, and I'm a Principal PFE based in Minneapolis, MN.  I'm...]]></description>
      <content:encoded><![CDATA[<p>Hello everyone … My name is John Rodriguez, and I'm a Principal PFE based in Minneapolis, MN.  I'm also one of Neil's frequent collaborators, particularly on load simulation tools. When he wrote his recent article on performance analysis of Jetstress data, I suggested that he include some of our time-saving tips.  He's a busy chap, and asked me to write the article instead.  So, to that end, I'm here as a guest contributor to share with you some of the things we as performance specialists do within Perfmon. [<em>Neil: Actually John taught me Exchange perf when I first joined Microsoft in 2007 and again when I went through MCM; it is a great honour to have him write stuff for my blog, so thanks again John <span style="font-family:Wingdings">J</span>].  </em>
	</p><p>If you spend a lot of time in Perfmon, whether for general performance analysis, reviewing Jetstress data, or trying to identify the source of a bottleneck, you tend to look for ways to automate tasks – to simplify things.  Thankfully Perfmon provides some extremely useful interfaces which provide us with our time-saving opportunities.
</p><p>When you first launch Performance Monitor, and switch to the Performance Monitor node, you should see the general screen with a single counter (usually <em>Processor(_Total)\% Processor Time</em>).  In the example below, I've deleted the default counter and added four specific ones of great Exchange importance:  <em>MSExchangeIS\RPC Averaged Latency</em>, <em>\RPC Operations/sec</em>, <em>\RPC Packets/sec</em>, and <em>\RPC Requests</em>.
</p><p><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/54/67/metablogapi/0640.011612_2133_Performance1.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-67-metablogapi/0640.011612_5F00_2133_5F00_Performance1.png" alt=""/>
	</p><p>How did I add those counters?  Believe it or not, I pasted them.  Pasted?  Into Perfmon?  Really?  Yes, really.  Here's how.
</p><p>When you first launch Perfmon and want to add counters, you can click the green Plus symbol, or right-click the display and select "Add Counters…" as shown below.
</p><p><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/54/67/metablogapi/0574.011612_2133_Performance2.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-67-metablogapi/0574.011612_5F00_2133_5F00_Performance2.png" alt=""/>
	</p><p>Now, if you look at the context menu, you can see an option to "Save Settings As…"  This is one of the most underappreciated items in Perfmon, and enables a lot of incredibly useful behavior.  "Save Settings As" predictably enough saves the existing set of counters to an HTML file which you can then open and edit to your heart's content.  If you right-click the file and select Open With &gt; Notepad, you should see a bunch of entries beginning with &lt;PARAM NAME="Counter#" and then details on the counters themselves, like so:
</p><p><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/54/67/metablogapi/1134.011612_2133_Performance3.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-67-metablogapi/1134.011612_5F00_2133_5F00_Performance3.png" alt=""/>
	</p><p>[It's important to select Open With &gt; Notepad, rather than double-click on the file.  We'll see why in a minute.]
</p><p>Notice that there's no server name in this data – the value is just the counter name – "\MSExchangeIS\RPC Averaged Latency", "\MSExchangeIS\RPC Packets/sec", and so on.  This means that this set is rather portable – to our great advantage.  I can use this information to automatically add a whole group of counters to Perfmon at once.  But we're not going to load them from the file – we're going to paste them into Perfmon!  This may sound odd, but Perfmon actually supports copy-and-paste.  If I want to add all of those counters at once, I can simply open that HTML file with Notepad, copy the contents (select all, copy), open Perfmon, click anywhere in the right-hand pane, and then click Ctrl-V, Perfmon will add all of those counters at once.  <strong>In other words, if you add the counters to one server, and save the settings to HTML, you can quickly add all of those counters for any other server</strong>!  This is extremely useful, but we're only just getting started.
</p><p>Now that we have our settings file (in my case, "rpc counters.htm"), we can perform a few little tricks.  First, since it's HTML, we can actually open this settings file with Internet Explorer.  Unless you've weakened the security settings for IE, you'll need to click "Allow blocked content", but do that and you see Perfmon embedded within Internet Explorer:
</p><p><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/54/67/metablogapi/6740.011612_2133_Performance4.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-67-metablogapi/6740.011612_5F00_2133_5F00_Performance4.png" alt=""/>
	</p><p>Notice that Perfmon includes not just the counter list I added before, but visible data points as well (which was saved in the settings file).  But more importantly, this is a fully functioning instance of Perfmon.  Notice the two green buttons in the menu bar at the top of the Perfmon instance – the one on the left (similar to the "Play" button on a CD or DVD player) switches the display to live data, while the second (the "Skip Forward" button) leaves the display paused but updates the data to the present moment.
</p><p><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/54/67/metablogapi/8422.011612_2133_Performance5.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-67-metablogapi/8422.011612_5F00_2133_5F00_Performance5.png" alt=""/>
	</p><p>The green "Play" button has changed to a blue "Pause" button, and many of the other buttons have also been enabled as well (including add and remove counters).
</p><p>"This is nice," you may say to yourself, "but what good does it do?"  Well, for one thing, you can select a specific set of counters, save the settings file, and then distribute the settings file to your teammates so that they can open that same set of counters.  This is very useful if you have a large set of counters and want to make sure that everyone's looking at the same data.
</p><p>Where the "Save Settings As" option really becomes useful is when you're working with performance logs (BLG files).  In this case, I've captured performance data using a custom Data Collector Set, and the results of the data are saved in C:\Perflogs\Admin\New Data Collector Set\DC1_datetime.log.  I switched back to the Performance Monitor tab, and selected View Log Data from the action menu (you can also press Ctrl+L to do the same thing).
</p><p><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/54/67/metablogapi/2577.011612_2133_Performance6.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-67-metablogapi/2577.011612_5F00_2133_5F00_Performance6.png" alt=""/>
	</p><p>On the Data tab, I select all four counters from the log file and add them into the list to display.
</p><p><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/54/67/metablogapi/2577.011612_2133_Performance7.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-67-metablogapi/2577.011612_5F00_2133_5F00_Performance7.png" alt=""/>
	</p><p>Because I don't have very much data in the BLG, the resulting display isn't terribly exciting.  But it's not the display that I'm concerned with here – it's what I can do with the data I selected.  Again, I right-click and select "Save Settings As" and save the list of counters to another HTML file.  [Side note:  when you select "Save Settings As" when viewing data from a BLG, other options become available, including Save Data As, which gives you the option to reduce the size of an existing BLG by saving only a subset of data points.]
</p><p>However, when you open this second HTML file, you'll notice that things look a little different.  The counter names are prefaced by the server name:
</p><p><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/54/67/metablogapi/8468.011612_2133_Performance8.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-67-metablogapi/8468.011612_5F00_2133_5F00_Performance8.png" alt=""/>
	</p><p>My lab machine is named DC1, but if I want to use this on a performance log I collected from DC2, all I need to do is a simple find-and-replace in the HTML file, open the appropriate saved log (View Log Data), and then perform the same copy/paste trick listed above.  Again, Perfmon will add all of the relevant counters directly into the display.  <strong>That means that you can create the list of counters once and use that same list for every single BLG you want to review</strong>.  Just change the name of the server within the HTML file for each server, then paste the contents.
</p><p>To summarize, Perfmon allows you to save and load sets of performance counters, and you can use this functionality to make your performance life a little easier.  By saving the settings to disk, you can ensure that you use the same list every time, even if you've closed Perfmon.  You can launch Perfmon from within Internet Explorer using a saved settings file, which helps ensure consistency so that everyone uses the same counters.  Last, you can use a settings file as a template to view the same set of counters from different BLG files from different servers.
</p><p>Hopefully these tricks help you become more efficient in your use of Perfmon.  Let us know in the comments!  
</p>]]></content:encoded>
    </item>
    <item>
      <title>Analysing Exchange Server 2010 Jetstress BLG Files By Hand</title>
      <link>https://docs.microsoft.com/archive/blogs/neiljohn/analysing-exchange-server-2010-jetstress-blg-files-by-hand</link>
      <pubDate>Thu, 05 Jan 2012 01:22:00 GMT</pubDate>
      <dc:creator><![CDATA[]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/neiljohn/2012/01/05/analysing-exchange-server-2010-jetstress-blg-files-by-hand/</guid>
      <description><![CDATA[Quite often when I am working through Jetstress escalations I will ask to see the BLG files from the...]]></description>
      <content:encoded><![CDATA[<p>Quite often when I am working through Jetstress escalations I will ask to see the BLG files from the test. These files contain performance counter information that was logged during the test run and they show us a lot more about what is really going on than the data in the report HTML files.</p>
<p>To keep this post short, let's assume that you have already read through the <a href="https://blogs.technet.com/b/neiljohn/archive/2011/06/15/jetstress-field-guide.aspx">Jetstress Field guide</a> and move on to the fun stuff straight away <span style="font-family: Wingdings;">J</span></p>
<h2>Why Analyse the BLG file by hand?</h2>
<p>Given that Jetstress already parses the BLG files and searches for various counters and values, why on Earth would we ever need to look in the BLG file ourselves? There are a number of reasons..</p>
<ul>
<li>
<div>Establish failure severity</div>
<p><em>Was the failure caused by a single event, or do the performance logs show prolonged and repetitive issues? This is often useful when trying to put together a resolution plan &ndash; can we fix this by adding a few extra spindles or are we going to need a significantly bigger storage solution? </em></p>
</li>
<li>
<div>Analyse failure mode scenarios</div>
<p><em>When we test for failure modes, such as disk controller failure etc. the test may fail due to one very high latency spike, however as long as the test resumes in an acceptable timeframe and performance is acceptable we would conclude that the test passed even though Jetstress reported it as failed. </em></p>
</li>
</ul>
<h2>Finding the Jetstress test BLG File</h2>
<p>Jetstress defaults to storing all test data in the folder in which it was installed. When you look in that folder you are looking for files of type <strong><em>Performance Monitor File</em></strong>. Given that you are probably not going to perform this analysis on the Exchange server, make a copy of the file to your workstation.</p>
<p style="margin-left: 36pt;"><span style="color: #4f81bd;"><strong>Hint: </strong></span></p>
<p style="margin-left: 36pt;">BLG files are generally very compressible, so if you need to copy them over a WAN it is worth compressing them first.</p>
<p><img alt="" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/54/67/metablogapi/3583.122111_2122_AnalysingEx1.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-67-metablogapi/3583.122111_5F00_2122_5F00_AnalysingEx1.png" /></p>
<h2>Opening the Jetstress test BLG File in Performance Monitor</h2>
<p>For this section I am going to assume that you have access to a Windows 7 workstation. One of the most frequent mistakes that I see people make at this stage is to simply double click on the BLG file&hellip; this will automatically open the trace file in perfmon and open the top 50 counters&hellip; firstly this takes ages and secondly it looks like this&hellip; which as you can see is pretty busy and pretty useless&hellip;</p>
<p><img alt="" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/54/67/metablogapi/6431.122111_2122_AnalysingEx2.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-67-metablogapi/6431.122111_5F00_2122_5F00_AnalysingEx2.png" /></p>
<p>So, instead we are going to open Performance monitor and then open our BLG files. Performance monitor is stored in the Administrative Tools section of your start menu&hellip;</p>
<ul>
<li>Start -&gt; All Programs -&gt; Administrative Tools -&gt; Performance Monitor</li>
</ul>
<p>Once Performance Monitor has started&hellip;</p>
<ul>
<li>Select <strong>Performance Monitor</strong> under the <strong>Monitoring Tools</strong> section</li>
<li>Click on the <strong>View Log Data</strong> icon</li>
</ul>
<p><img alt="" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/54/67/metablogapi/7506.122111_2122_AnalysingEx3.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-67-metablogapi/7506.122111_5F00_2122_5F00_AnalysingEx3.png" /></p>
<ul>
<li>Check the <strong>Log Files</strong> radio button, then click <strong>Add</strong></li>
<li>Select the Jetstress BLG that you want to analyse</li>
<li>Click OK</li>
</ul>
<p>You should now be looking at a totally empty Performance Monitor page&hellip;</p>
<p><img alt="" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/54/67/metablogapi/6318.122111_2122_AnalysingEx4.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-67-metablogapi/6318.122111_5F00_2122_5F00_AnalysingEx4.png" /></p>
<h2>Analysing the Jetstress Performance Data</h2>
<p>Now we have Performance Monitor open and our Jetstress BLG file attached, the next step is to begin looking at the data. Before we begin this it is worth a quick recap of the counters and objects that we are interested in during an Exchange 2010 Jetstress test.</p>
<p>The best place to read about Exchange 2010 performance counter values is here:</p>
<ul>
<li><a href="https://technet.microsoft.com/en-us/library/ff367871.aspx">https://technet.microsoft.com/en-us/library/ff367871.aspx</a></li>
</ul>
<p>The following values are of specific interest when analysing Jetstress performance files.</p>
<div>
<table style="border-collapse: collapse;" border="0"><colgroup><col style="width: 228px;" /><col style="width: 197px;" /><col style="width: 213px;" /></colgroup>
<tbody valign="top">
<tr style="background: #4f81bd;">
<td style="padding-left: 7px; padding-right: 7px; border-top: solid white 1.0pt; border-left: solid white 1.0pt; border-bottom: solid white 3.0pt; border-right: solid white 1.0pt;">
<p><span style="color: #000066;"><strong>Counter </strong></span></p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: solid white 1.0pt; border-left: none; border-bottom: solid white 3.0pt; border-right: solid white 1.0pt;">
<p><span style="color: #000066;"><strong>Description </strong></span></p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: solid white 1.0pt; border-left: none; border-bottom: solid white 3.0pt; border-right: solid white 1.0pt;">
<p><span style="color: #000066;"><strong>Threshold </strong></span></p>
</td>
</tr>
<tr style="background: #a7bfde;">
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid white 1.0pt; border-bottom: solid white 1.0pt; border-right: solid white 1.0pt;">
<p><span style="color: black;">MSExchange Database Instances(*) </span></p>
<p><span style="color: black;">\I/O Database Reads (Attached) Average Latency</span></p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid white 1.0pt; border-right: solid white 1.0pt;">
<p><span style="color: black;">Shows the average length of time, in ms, per database read operation.</span></p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid white 1.0pt; border-right: solid white 1.0pt;">
<p><span style="color: black;">Should be &lt;20 ms on average. </span></p>
<p><span style="color: black;">Less than 6 spikes &gt;100ms</span></p>
</td>
</tr>
<tr style="background: #d3dfee;">
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid white 1.0pt; border-bottom: solid white 0.75pt; border-right: solid white 0.75pt;">
<p>MSExchange Database Instances(*)</p>
<p>\I/O Log Writes Average Latency</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid white 0.75pt; border-right: solid white 0.75pt;">
<p><span style="color: black;">Shows the average length of time, in ms, per Log file write operation.</span></p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid white 0.75pt; border-right: solid white 1.0pt;">
<p><span style="color: black;">Should be &lt;10ms on average. </span></p>
<p><span style="color: black;">Less than 6 spikes &gt;50ms</span></p>
</td>
</tr>
<tr style="background: #a7bfde;">
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid white 1.0pt; border-bottom: solid white 1.0pt; border-right: solid white 1.0pt;">
<p><span style="color: black;">MSExchange Database(JetstressWin) </span></p>
<p><span style="color: black;">\Database Page Fault Stalls/sec</span></p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid white 1.0pt; border-right: solid white 1.0pt;">
<p><span style="color: black;">Shows the rate that database file page requests require of the database cache manager to allocate a new page from the database cache.</span></p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid white 1.0pt; border-right: solid white 1.0pt;">
<p><span style="color: black;">If this value is nonzero, this indicates that the database isn't able to flush dirty pages to the database file fast enough to make pages free for new page allocations.</span></p>
</td>
</tr>
<tr style="background: #d3dfee;">
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid white 1.0pt; border-bottom: solid white 1.0pt; border-right: solid white 0.75pt;">
<p><span style="color: black;">MSExchange Database(JetstressWin) </span></p>
<p><span style="color: black;">\Log Record Stalls/sec</span></p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid white 1.0pt; border-right: solid white 0.75pt;">
<p><span style="color: black;">Shows the number of log records that can't be added to the log buffers per second because the log buffers are full. If this counter is nonzero for a long period of time, the log buffer size may be a bottleneck.</span></p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid white 1.0pt; border-right: solid white 1.0pt;">
<p><span style="color: black;">The average value should be below 10 per second. Spikes (maximum values) shouldn't be higher than 100 per second.</span></p>
</td>
</tr>
</tbody>
</table>
</div>
<p>&nbsp;</p>
<h1>Examples</h1>
<p>The following are from some recent example tests.</p>
<h2>Normal Jetstress test results</h2>
<p>Before we move on to more interesting data I thought it would be useful to show what good test data looks like&hellip;</p>
<h3>Database Read Latency</h3>
<p>The following chart shows the MSExchange Database Instances (*)\I/O Database Reads (Attached) Average Latency values for the test. In this instance it is clear that all instances average is below 20ms and there are no read latency spikes. I have discarded checksum instances since they are not required. The _Total instance is highlighted in black and is discussed below.</p>
<p><img alt="" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/54/67/metablogapi/2768.122111_2122_AnalysingEx5.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-67-metablogapi/2768.122111_5F00_2122_5F00_AnalysingEx5.png" /></p>
<p>I often see people quoting the _total instance for database read latencies. The _total instance is simply an average across all observations for that point in time and so serves no purpose other than to obscure the latency peak values.</p>
<p>The default Jetstress sample time is 15s which is already too large in my opinion (I recommending dropping this down to 2s for manual analysis &ndash; edit the XML to do this) so using an average value across all instances usually serves to make the results look better than they really are.</p>
<p>In the example above I have highlighted the _Total instance to show how it flattens out the results. <strong><em>Do not use the _total instance; it will often hide latency spikes from your results</em></strong>.</p>
<h3>Log Write Latency</h3>
<p>This chart shows the MSExchange Database Instances (*)\I/O Log Writes Average Latency. As you can see the results show that the write latency values are way below the 10ms average and there are no spikes.</p>
<p><img alt="" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/54/67/metablogapi/4403.122111_2122_AnalysingEx6.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-67-metablogapi/4403.122111_5F00_2122_5F00_AnalysingEx6.png" /></p>
<h3>Log Record and Page Fault Stalls</h3>
<p>This chart shows both Log Record Stalls/Sec and Database Page Fault Stalls/Sec. As you can see both counters recorded 0 stalls/sec during the test which shows that the storage was able to meet the demands required by the database.</p>
<p><img alt="" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/54/67/metablogapi/0753.122111_2122_AnalysingEx7.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-67-metablogapi/0753.122111_5F00_2122_5F00_AnalysingEx7.png" /></p>
<h2>Failure Mode Test &ndash; Disk Controller Failure</h2>
<p>The following test data came from an Exchange 2007 deployment where the customer was performing failure mode analysis of their storage. This specific test simulated a failure of a disk controller within their storage subsystem. The expected behaviour is to experience a brief storage outage and then for I/O to continue as normal. Manual analysis was required for this test since Jetstress just shows a failure due to average latency being &gt;20ms.</p>
<p>The following charts show the recorded BLG data, it clearly shows that the test was actually in good shape apart from a single event caused by the simulation of the disk controller module. This event caused an I/O outage of 60 seconds, which was recorded as 4 x 20,000ms spikes on the chart. These few, very high values were enough to skew the average latency values of the test. In reality this test showed that the storage is capable of recovering from a disk controller failure in an acceptable time and the performance after the failure is the same as it was before.</p>
<p>Although Jetstress reports this as a failed run, I classified this as a test pass since the storage solution recovered from the failure quickly and resumed operations at the same level of performance. The operations team are now aware what a failure of this module will look like for Exchange and how long it will take to recover.</p>
<p><img alt="" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/54/67/metablogapi/7607.122111_2122_AnalysingEx8.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-67-metablogapi/7607.122111_5F00_2122_5F00_AnalysingEx8.png" /></p>
<p><span style="color: #4f81bd; font-size: 9pt;"><strong>Figure 1: Database Read Latency </strong></span></p>
<p><img alt="" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/54/67/metablogapi/6136.122111_2122_AnalysingEx9.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-67-metablogapi/6136.122111_5F00_2122_5F00_AnalysingEx9.png" /></p>
<p><span style="color: #4f81bd; font-size: 9pt;"><strong>Figure 2: Log File Write Latency </strong></span></p>
<p>&nbsp;</p>
<h2>Jetstress Log Interval Time Case</h2>
<p>This is an interesting example since the initial Jetstress test actually passed the storage solution, however the team involved were suspicious since they had previous experience with this deployment and knew that it reported storage problems when analysed via SCOM or the PAL tool. When Jetstress passed the storage they began further analysis&hellip;</p>
<p>This is the DB read latency from their first test with the Jetstress log interval set to the default of 15s. Nothing unusual to report and Jetstress passed the test. The chart looks good and the maximum latency values are all below 100ms.</p>
<p><img alt="" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/54/67/metablogapi/4861.122111_2122_AnalysingEx10.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-67-metablogapi/4861.122111_5F00_2122_5F00_AnalysingEx10.png" /></p>
<p>The team were concerned by this and decided to reduce the log interval time within the Jetstress test XML file.</p>
<p style="margin-left: 36pt;"><span style="font-family: Lucida Console; font-size: 10pt;">&lt;LogInterval&gt;15000&lt;/LogInterval&gt; </span></p>
<p>Was changed to</p>
<p style="margin-left: 36pt;"><span style="font-family: Lucida Console; font-size: 10pt;">&lt;LogInterval&gt;1000&lt;/LogInterval&gt; </span></p>
<p>This reduced the sample interval time from 15s to 1s. The team then re-ran the test.</p>
<p>This chart shows the test data for the run with the <em>LogInterval</em> reduced to 1s. It is clear that something is different &ndash; the average values seem fine, however the maximum values are way over 100ms suggesting latency spikes - Jetstress failed the test due to disk latency spikes.</p>
<p><img alt="" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/54/67/metablogapi/5516.122111_2122_AnalysingEx11.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-67-metablogapi/5516.122111_5F00_2122_5F00_AnalysingEx11.png" /></p>
<p>If we zoom in to this chart a little to get a closer look it is evident that there are a significant number of read latency spikes over 100ms during this 15 minute zoomed in window. Further analysis suggests that these spikes are observed throughout the test. The initial run with log interval set to 15s had totally missed these latency spikes.</p>
<p><img alt="" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/54/67/metablogapi/5078.122111_2122_AnalysingEx12.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-67-metablogapi/5078.122111_5F00_2122_5F00_AnalysingEx12.png" /></p>
<p>Just in case my point about using the _Total instance wasn't clear earlier in this post I decided to add it in and highlight it on this example. Even though it is clear that this test is suffering from significant read latency spikes, the _Total instance (Highlighted in black) is smoothing this out and hiding those 100ms+ spikes. If you were only looking at the _Total instance you would have missed this issue, even with the reduced LogInterval time.</p>
<p><img alt="" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/54/67/metablogapi/8272.122111_2122_AnalysingEx13.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-67-metablogapi/8272.122111_5F00_2122_5F00_AnalysingEx13.png" /></p>
<h1>Conclusion and summary</h1>
<p>Manual analysis of Jetstress test data is not always required, however it is often useful, especially if the storage platform is new to your organisation and you want to get a better understanding of how it is performing under load.</p>
<p>Manual analysis of test data during failure mode testing is very highly recommended. It is critically important that you understand how component failure will affect your storage performance under normal working conditions. The only way to do this is to take a look at the BLG data that was logged during these tests and assessing if that behaviour is acceptable for your deployment.</p>
<p>The default log interval time of 15s can mask instantaneous latency spikes. In most test cases this is not a problem, however I recommend that you reduce the log interval time down to between 2-5s where more granular data logging is desired; this is especially useful if you are using a shared storage platform or are using some form of advanced storage solution (Direct Attached Storage rarely requires this reduction in sample interval).</p>
<p style="margin-left: 36pt;"><span style="color: #4f81bd;"><strong>Note: </strong></span></p>
<p style="margin-left: 36pt;">Reducing the <em>LogInterval</em> time in your Jetstress configuration XML file will significantly increase the size of your BLG file. A 2hr test at 2s interval will create an 800MB BLG file. This also has an impact on your ability to work with the data. Performance monitor can suffer from significant slowdown with very large BLG files.</p>]]></content:encoded>
    </item>
  </channel>
</rss>