A fatal message transfer agent (MTA) database server error was encountered. An object was not locked when expected.

A_fatal_message_transfer_agent__MTA__database_server_error_was_encountered__An_object_was_not_locked_when_expected (Rule)

Knowledge Base article:

Summary

The message transfer agent (MTA) encountered an internal processing error while processing a message or report object. This indicates a logic error or database integrity failure.

Resolutions

Stop and restart the MTA service. If the error persists, run the Mtacheck.exe utility. Stop the MTA service, open a command prompt, and type mtacheck/v /f c:\mta.txt.

If Mtacheck removes objects from a database queue, it places each damaged object in a Db*.dat file in \Exchsrvr\Mtadata\Mtacheck.out. Check your drives and verify that core *.dat files are in the \Exchsrvr\Mtadata directories. The \Exchsrvr\Mtadata directory with *.dat files may be on more than one drive. Contact Microsoft Product Support Services for assistance.

External

For more information about MSExchangeMTA event 2105, see:

Element properties:

TargetMicrosoft.Exchange.Routing.MTA
CategoryEventCollection
EnabledTrue
Event_ID2105
Event SourceMSExchangeMTA
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
RemotableTrue
Alert Message
A fatal message transfer agent (MTA) database server error was encountered. An object was not locked when expected.
{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="A_fatal_message_transfer_agent__MTA__database_server_error_was_encountered__An_object_was_not_locked_when_expected" Enabled="onEssentialMonitoring" Target="Exch2003Core!Microsoft.Exchange.Routing.MTA" ConfirmDelivery="false" Remotable="true" Priority="Normal" DiscardLevel="100">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="EventDS" TypeID="Windows!Microsoft.Windows.EventProvider">
<ComputerName>$Target/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</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>PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>MSExchangeMTA</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>2105</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="SystemHealth!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>2</Severity>
<AlertOwner>$Data/PublisherName$</AlertOwner>
<AlertMessageId>$MPElement[Name="A_fatal_message_transfer_agent__MTA__database_server_error_was_encountered__An_object_was_not_locked_when_expected.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>