<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.technet.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Dude where's my PFE? : Version Store</title><link>http://blogs.technet.com/jeff_stokes/archive/tags/Version+Store/default.aspx</link><description>Tags: Version Store</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Version Store 624 events</title><link>http://blogs.technet.com/jeff_stokes/archive/2008/09/07/version-store-624-events.aspx</link><pubDate>Sun, 07 Sep 2008 22:32:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3120590</guid><dc:creator>jeffstok</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/jeff_stokes/comments/3120590.aspx</comments><wfw:commentRss>http://blogs.technet.com/jeff_stokes/commentrss.aspx?PostID=3120590</wfw:commentRss><wfw:comment>http://blogs.technet.com/jeff_stokes/rsscomments.aspx?PostID=3120590</wfw:comment><description>&lt;P&gt;&lt;EM&gt;Applies to Exchange 2000, Exchange 2003, Exchange 2007.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;So in Version Store 623 errors, Version Store gets 'clogged', if you will, and will fail to process transactions.&lt;/P&gt;
&lt;P&gt;624 errors on the other hand, are caused by a lack of available virtual memory on the server.&amp;nbsp; Sometimes this has no impact and the server corrects itself, but in a memory leak condition, this can be the sign your Exchange server is no longer accepting client connections and is in need of some assistance.&lt;/P&gt;
&lt;P&gt;In the particular instance where I have seen this occur, the 624 event comes after a series of errors:&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;First we throw a MSExchangeDSAccess 2104 event.&lt;/P&gt;
&lt;P&gt;Event ID&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 2104&lt;BR&gt;Raw Event ID : 2104&lt;BR&gt;Record Nr.&amp;nbsp;&amp;nbsp; : 4802384&lt;BR&gt;Category&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : None&lt;BR&gt;Source&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : MSExchangeDSAccess&lt;BR&gt;Type&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : Error&lt;BR&gt;Generated&amp;nbsp;&amp;nbsp;&amp;nbsp; : 9/7/2008 12:27:27 PM&lt;BR&gt;Written&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 9/7/2008 12:27:27 PM&lt;BR&gt;Machine&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : JAHUMBALABAH&lt;BR&gt;Message&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : Process STORE.EXE (PID=636). All the DS Servers in domain are not responding.&lt;/P&gt;
&lt;P&gt;Shortly thereafter you'll see a MSExchangeDSAccess&amp;nbsp;2102.&lt;/P&gt;
&lt;P&gt;Event ID&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 2102&lt;BR&gt;Raw Event ID : 2102&lt;BR&gt;Record Nr.&amp;nbsp;&amp;nbsp; : 4802387&lt;BR&gt;Category&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : None&lt;BR&gt;Source&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : MSExchangeDSAccess&lt;BR&gt;Type&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : Error&lt;BR&gt;Generated&amp;nbsp;&amp;nbsp;&amp;nbsp; : 9/7/2008 12:28:15 PM&lt;BR&gt;Written&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 9/7/2008 12:28:15 PM&lt;BR&gt;Machine&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : JAHUMBALABAH&lt;BR&gt;Message&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : Process MAD.EXE (PID=2588). All Domain Controller Servers in use are not responding:&lt;/P&gt;
&lt;P&gt;JAHUMBALABAH-DC&lt;/P&gt;
&lt;P&gt;Then we will see a MSExchangeSA 9152.&lt;/P&gt;
&lt;P&gt;Event ID&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 9152&lt;BR&gt;Raw Event ID : 9152&lt;BR&gt;Record Nr.&amp;nbsp;&amp;nbsp; : 4802391&lt;BR&gt;Category&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : None&lt;BR&gt;Source&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : MSExchangeSA&lt;BR&gt;Type&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : Error&lt;BR&gt;Generated&amp;nbsp;&amp;nbsp;&amp;nbsp; : 9/7/2008 12:31:15 PM&lt;BR&gt;Written&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 9/7/2008 12:31:15 PM&lt;BR&gt;Machine&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : JAHUMBALABAH&lt;BR&gt;Message&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : Microsoft Exchange System Attendant reported an error '0x8007000e' in its DS Monitoring thread.&lt;/P&gt;
&lt;P&gt;This particular error is an out of memory error.&amp;nbsp; Uh oh.&lt;/P&gt;
&lt;P&gt;Then DSAccess has another problem.... a 9154.&lt;/P&gt;
&lt;P&gt;Event ID&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 9154&lt;BR&gt;Raw Event ID : 9154&lt;BR&gt;Record Nr.&amp;nbsp;&amp;nbsp; : 4802392&lt;BR&gt;Category&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : None&lt;BR&gt;Source&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : MSExchangeSA&lt;BR&gt;Type&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : Error&lt;BR&gt;Generated&amp;nbsp;&amp;nbsp;&amp;nbsp; : 9/7/2008 12:31:20 PM&lt;BR&gt;Written&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 9/7/2008 12:31:20 PM&lt;BR&gt;Machine&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : JAHUMBALABAH&lt;BR&gt;Message&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : DSACCESS returned an error '0x80004005' on DS notification. Microsoft Exchange System Attendant will re-set DS notification later.&lt;/P&gt;
&lt;P&gt;This means a call failed, due to lack of memory...&lt;/P&gt;
&lt;P&gt;Then the error you've all been waiting for, a 624 gets thrown by ESE.&lt;/P&gt;
&lt;P&gt;Event ID&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 624&lt;BR&gt;Raw Event ID : 624&lt;BR&gt;Record Nr.&amp;nbsp;&amp;nbsp; : 4802473&lt;BR&gt;Category&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : None&lt;BR&gt;Source&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : ESE&lt;BR&gt;Type&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : Error&lt;BR&gt;Generated&amp;nbsp;&amp;nbsp;&amp;nbsp; : 9/7/2008 12:32:58 PM&lt;BR&gt;Written&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 9/7/2008 12:32:58 PM&lt;BR&gt;Machine&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : JAHUMBALABAH&lt;BR&gt;Message&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : Information Store (636) Storage Group&amp;nbsp;1 (First Storage Group): The version store for this instance (1) cannot grow because it is receiving Out-Of-Memory errors from the OS. It is likely that a long-running transaction is preventing cleanup of the version store and causing it to build up in size. Updates will be rejected until the long-running transaction has been completely committed or rolled back.&lt;/P&gt;
&lt;P&gt;Current version store size for this instance: 1Mb&lt;/P&gt;
&lt;P&gt;Maximum version store size for this instance: 249Mb&lt;/P&gt;
&lt;P&gt;Global memory pre-reserved for all version stores: 1Mb&lt;/P&gt;
&lt;P&gt;Possible long-running transaction:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; SessionId: 0xBD345AC0&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; Session-context: 0x00000000&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; Session-context ThreadId: 0x000015AC&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; Cleanup: 1&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;So what can cause this?&amp;nbsp; Check your task manager.&amp;nbsp; Do you see any handle leaks or processes with out of control handles?&amp;nbsp; In the instance I saw for this, it was a mixture of stale messages stuck in the SMTP temp tables and a third-party AV scanner that had an apparent memory leak.&amp;nbsp; Both Inetinfo and Store were over 2 gig and had 32k handles each.&amp;nbsp; Once we resolved the issue Store was around 6k handles and Inetinfo around 3k.&lt;/P&gt;
&lt;P mce_keep="true"&gt;What is happening is a memory leak is consuming all the virtual memory space in Store and Inetinfo, at least in our case here.&amp;nbsp; Yours may differ in what is causing the leak, but I'd bet&amp;nbsp;more than likely its going to be something that ties into Store, such as Anti-Virus, something gumming up IIS&amp;nbsp;and then Epoxy, or something along those lines.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Because you run out of memory, DSAccess starts to fail, then you see the string of errors above.&lt;/P&gt;
&lt;P mce_keep="true"&gt;If you see this, what should you do first and foremost?&amp;nbsp; Give PSS a call so we can help you debug it.&lt;/P&gt;
&lt;P mce_keep="true"&gt;More information on this can be found here:&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;A href="http://technet.microsoft.com/en-us/library/bb218083(EXCHG.80).aspx"&gt;http://technet.microsoft.com/en-us/library/bb218083(EXCHG.80).aspx&lt;/A&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3120590" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/jeff_stokes/archive/tags/Exchange/default.aspx">Exchange</category><category domain="http://blogs.technet.com/jeff_stokes/archive/tags/Version+Store/default.aspx">Version Store</category></item><item><title>Avoiding Version Store problems in the enterprise environment</title><link>http://blogs.technet.com/jeff_stokes/archive/2008/09/02/avoiding-version-store-problems-in-the-enterprise-environment.aspx</link><pubDate>Tue, 02 Sep 2008 21:37:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3116012</guid><dc:creator>jeffstok</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/jeff_stokes/comments/3116012.aspx</comments><wfw:commentRss>http://blogs.technet.com/jeff_stokes/commentrss.aspx?PostID=3116012</wfw:commentRss><wfw:comment>http://blogs.technet.com/jeff_stokes/rsscomments.aspx?PostID=3116012</wfw:comment><description>&lt;P&gt;Applies to Exchange 2003&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; So one of the things that can go wrong with Exchange is that it can run out of something called Version Store.&amp;nbsp; Version store is an in-memory list of changes made to the database.&amp;nbsp; Nagesh Mahadev has an awesome post about Version Store on our msexchangeteam.com blog, posted &lt;A class="" title="Version Store" href="http://msexchangeteam.com/archive/2006/04/19/425722.aspx" target=_blank mce_href="http://msexchangeteam.com/archive/2006/04/19/425722.aspx"&gt;here&lt;/A&gt;.&amp;nbsp; To borrow his summary:&amp;nbsp;&lt;EM&gt; &lt;SPAN lang=EN-AU&gt;&lt;FONT size=2&gt;In simple terms, the Version Store is where transactions are held in memory until they can be written to disk.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; So version store running out of memory can be caused by either a long running transaction.&amp;nbsp; This is pretty self explanatory.&amp;nbsp; Say your anti-virus product wants to scan something in VSAPI and locks it and then goes to lunch.&amp;nbsp; Your version store will consume more and more memory until it runs out because it's trying to work around this long running transaction, keeping track of all the rollbacks and whatnot.&lt;/P&gt;
&lt;P&gt;&amp;nbsp; The other problem is with I/O.&amp;nbsp; Since we're holding transactions in memory until they can be written to disk, if something prevents us from writing to disk, we can hit version store problems.&amp;nbsp; Sometimes this type of problem can be precipitated by 9791 event log entries in the application event log.&amp;nbsp; If this happens, get ready to do some adplus store dumps when version buckets allocated hits 70%.&lt;/P&gt;
&lt;P&gt;What to do to prevent or mitigate this risk?&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Consider increasing transaction log buffers, especially if you are seeing transaction log stalls in your environment.&amp;nbsp; The logic here is that if store can't&amp;nbsp;commit transactions to the log files fast enough, it can cause version store to back up.&amp;nbsp; By default the number of buffers is 500, you can increase this to 9000.&amp;nbsp; This will prevent a single database from needing to write a bunch of TLs at once and backing up version store.&amp;nbsp; I highly recommend using the EXBPA for governance on this, details on the rule for setting this, etc can be found &lt;A class="" title="TL Buffers" href="http://technet.microsoft.com/en-us/library/aa997674(EXCHG.80).aspx" mce_href="http://technet.microsoft.com/en-us/library/aa997674(EXCHG.80).aspx"&gt;here&lt;/A&gt;.&lt;/LI&gt;
&lt;LI&gt;Watch your PTE resources and treat accordingly.&amp;nbsp; I've seen customers run low on free PTEs and run into version store problems because they don't have the capacity to perform IO operations as fast as the database would like.&lt;/LI&gt;
&lt;LI&gt;Make sure your online maintenance is completing frequently, at least once a week on each database.&amp;nbsp; Part of online maintenance is defragmenting your database.&amp;nbsp; On a highly fragmented database(s) version store has to keep track unoptimized&amp;nbsp;links and tables and dealing with records that are not on the fewest number of pages possible,&amp;nbsp;in essence bloating version store size with each transaction.&amp;nbsp; For indepth information on Exchange Store Maintenance, go &lt;A class="" title=Maintenance href="http://technet.microsoft.com/en-us/library/aa996226(EXCHG.65).aspx" mce_href="http://technet.microsoft.com/en-us/library/aa996226(EXCHG.65).aspx"&gt;here&lt;/A&gt;.&lt;/LI&gt;
&lt;LI&gt;Keep your message size limits down.&amp;nbsp; Going hand in hand with this is preventing older Outlook clients from accessing your server.&amp;nbsp; Old clients (Older than Outlook 2003 SP2 in cached mode, any version of Outlook 2003 and higher for online mode) ignore your message size limits for submitting messages, so older clients could attach a 100 meg file and submit and store would have to deal with it even though it's over the size limit.&amp;nbsp; &lt;A class="" title="Size Limits" href="http://support.microsoft.com/kb/885917" mce_href="http://support.microsoft.com/kb/885917"&gt;This&lt;/A&gt; should give you the gist of what I'm talking about here.&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;Hope this helps with your environment.&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3116012" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/jeff_stokes/archive/tags/Exchange/default.aspx">Exchange</category><category domain="http://blogs.technet.com/jeff_stokes/archive/tags/Version+Store/default.aspx">Version Store</category></item></channel></rss>