The version store has reached its maximum size.

The_version_store_has_reached_its_maximum_size_ (Rule)

Knowledge Base article:

Summary

You receive an ESE event 623 with the following description: The version store for instance 0 GUID has reached its maximum size of xxxMB. 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. Possible long-running transaction:transaction.

You may also receive an MSExchangeIS event 1022 with the following description: Logon Failure on database Database name - Account Error -1069.

Causes

The ESE version store is where the Information Store service keeps records of transactions that are not yet finished, giving ESE the ability to track and manage current transactions. The version store has a list of operations performed by active transactions. This is an in-memory list of modifications made to the database. This list has several uses. It is used for rollback. If a transaction needs to roll back, it looks in the version store to get the list of operations it performed. If two sessions try to modify the same record, the version store will notice and reject the second modification. In other words, the version store keeps track of what version of a transaction that ESE is actively using.

An unresponsive transaction will cause the version store to become very large. If there are very long-running or unresponsive transactions, the version store can grow quickly. Ultimately, it is possible to see the version store output Out of memory errors. A transaction that takes a very long time to run can cause the Exchange store to run out of spaces because it cannot flush more recent transactions from the version store. When the version store is full, any updates to the database are rejected until the long-running transaction is completely committed or rolled back. This causes a service interruption for users. Then, an ESE event 623 may be reported in the application event log and an associated MSExchangeIS event 1022 with error 1069 or Jet_errVersionStoreOutOfMemory may also result.

Error 1069 indicates that the version store has reached its defined size. No more transactions can continue until this is clear. Because the version store is where transactions are held in memory until they can be written to disk, if something is preventing ESE from completing transaction or writing to disk, then ESE will consume this cache and the store will stop responding to requests until there is room in the cache again. This error is not the result of the system running out of memory. If there is a failure to allocate more memory and NT refuses to provide it, there will be a failure with a different error. Increasing the RAM in the server will not fix this problem.

Resolutions

Check to ensure that you have the current Exchange service pack installed.

Install any publicly available ESE and Exchange store hotfixes released after the current service pack.

Search the Microsoft Knowledge Base for the following: Event ID 623, Error -1069, and Jet_errVersionStoreOutOfMemory. Known resolutions with the version store include turning off write-back caching on the physical disk instead of the controller, and making registry changes if using Instant Messaging or heavily using POP3 and IMAP4 clients against the server. Other issues will be documented as they arise.

If the issue is still not resolved by the above methods, contact Microsoft Product Support Services to continue troubleshooting the problem.

External

For more information about ESE event 623, see:

Element properties:

TargetMicrosoft.Exchange.Databases
CategoryEventCollection
EnabledTrue
Event_ID623
Event SourceESE
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
RemotableTrue
Alert Message
The version store has reached its maximum size.
{0}
Event LogApplication

Member Modules:

ID Module Type TypeId RunAs 
EventDS DataSource Microsoft.Windows.EventProvider Default
GenerateAlert WriteAction System.Health.GenerateAlert Default

Source Code:

<Rule ID="The_version_store_has_reached_its_maximum_size_" Enabled="onEssentialMonitoring" Target="Exch2003Core!Microsoft.Exchange.Databases" ConfirmDelivery="false" Remotable="true" Priority="Normal" DiscardLevel="100">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="EventDS" TypeID="Windows!Microsoft.Windows.EventProvider">
<ComputerName>.</ComputerName>
<LogName>Application</LogName>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>Channel</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>Application</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>623</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>ESE</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="SystemHealth!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>1</Severity>
<AlertOwner>$Data/PublisherName$</AlertOwner>
<AlertMessageId>$MPElement[Name="The_version_store_has_reached_its_maximum_size_.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>