Link to home
Create AccountLog in
Avatar of PeterNairn
PeterNairn

asked on

Exchange 2016 Mailboxes in Quarantine

Exchange 2016, Mailboxes keep going in to quarantine and following message in event viewer.

Log Name:      Application
Source:        MSExchangeIS
Date:          14/10/2021 12:07:49
Event ID:      2006
Task Category: Physical Access
Level:         Error
Keywords:      Classic
User:          N/A
Computer:     servername.domain
Description:
Microsoft Exchange Information Store worker process (24968) has encountered an unexpected database error (Microsoft.Isam.Esent.Interop.EsentKeyDuplicateException: Illegal duplicate key
   at Microsoft.Isam.Esent.Interop.Server2003.Server2003Api.JetUpdate2(JET_SESID sesid, JET_TABLEID tableid, Byte[] bookmark, Int32 bookmarkSize, Int32& actualBookmarkSize, UpdateGrbit grbit)
   at Microsoft.Exchange.Server.Storage.PhysicalAccessJet.JetTableOperator.Insert(IList`1 columns, IList`1 values, Column identityColumnToFetch, Boolean unversioned, Boolean ignoreDuplicateKey, Object& identityValue)) for database 'Mailbox Database 0854473321' with a call stack of
   at Microsoft.Exchange.Server.Storage.PhysicalAccessJet.JetTableOperator.Insert(IList`1 columns, IList`1 values, Column identityColumnToFetch, Boolean unversioned, Boolean ignoreDuplicateKey, Object& identityValue)
   at Microsoft.Exchange.Server.Storage.PhysicalAccessJet.JetInsertOperator.ExecuteScalar()
   at Microsoft.Exchange.Server.Storage.PhysicalAccess.DataRow.Insert(IConnectionProvider connectionProvider, Boolean flushLargeDirtyStreams)
   at Microsoft.Exchange.Server.Storage.StoreCommonServices.ObjectPropertyBag.Flush(Context context, Boolean flushLargeDirtyStreams)
   at Microsoft.Exchange.Server.Storage.LogicalDataModel.Item.Flush(Context context, Boolean flushLargeDirtyStreams)
   at Microsoft.Exchange.Server.Storage.LogicalDataModel.Message.Flush(Context context, Boolean flushLargeDirtyStreams)
   at Microsoft.Exchange.Server.Storage.LogicalDataModel.Item.SaveChanges(Context context)
   at Microsoft.Exchange.Server.Storage.LogicalDataModel.Message.SaveChanges(Context context)
   at Microsoft.Exchange.Server.Storage.LogicalDataModel.TopMessage.SaveChanges(Context context, SaveMessageChangesFlags flags)
   at Microsoft.Exchange.Protocols.MAPI.MapiMessage.SaveChangesInternal(MapiContext context, MapiSaveMessageChangesFlags saveFlags, ExchangeId& newMid)
   at Microsoft.Exchange.Protocols.MAPI.MapiMessage.SubmitMessage(MapiContext context, RopFlags ropFlags, Object sentRepresentingEntryId, AddressInfo addressInfoForAuthorization, SubmitMessageRightsCheckFlags submitMessageRightsCheckFlags)
   at Microsoft.Exchange.Protocols.MAPI.MapiLogon.InternalGenerateQuotaReport(MapiContext context, MapiLogon mapiLogon, Folder folder, QuotaType quotaType, QuotaInfo quotaInfo, IList`1 recipients, Int64 containerSize)
   at Microsoft.Exchange.Protocols.MAPI.MapiMailboxShape.PerformLogonQuotaCheck(MapiContext context, MapiLogon mapiLogon, QuotaType minScan, QuotaType maxScan)
   at Microsoft.Exchange.Protocols.MAPI.MapiMailboxShape.PerformLogonQuotaCheck(MapiContext context, MapiLogon mapiLogon)
   at Microsoft.Exchange.Protocols.MAPI.MapiLogon.PerformLogonQuotaCheck(MapiContext context)
   at Microsoft.Exchange.Server.Storage.MapiDisp.RopHandler.Logon(MapiContext context, LogonFlags logonFlags, OpenFlags openFlags, StoreState storeState, LogonExtendedRequestFlags extendedFlags, Nullable`1 mailboxId, Nullable`1 localeInfo, String applicationId, AuthenticationContext authenticationContext, Byte[] tenantHintBlob, LogonResultFactory resultFactory)
   at Microsoft.Exchange.Server.Storage.MapiDisp.RopHandlerBase.Logon(LogonFlags logonFlags, OpenFlags openFlags, StoreState storeState, LogonExtendedRequestFlags extendedFlags, Nullable`1 mailboxId, Nullable`1 localeInfo, String applicationId, AuthenticationContext authenticationContext, Byte[] tenantHint, LogonResultFactory resultFactory)
   at Microsoft.Exchange.RpcClientAccess.Parser.RopLogon.Execute(IConnectionInformation connection, IRopDriver ropDriver, ServerObjectHandleTable handleTable, ArraySegment`1 outputBuffer)
   at Microsoft.Exchange.RpcClientAccess.Parser.RopDriver.ExecuteRops(List`1 inputArraySegmentList, ServerObjectHandleTable serverObjectHandleTable, ArraySegment`1 outputBuffer, Int32 outputIndex, Int32 maxOutputSize, Boolean isOutputBufferMaxSize, Int32& outputSize, AuxiliaryData auxiliaryData, Boolean isFake, Byte[]& fakeOut)
   at Microsoft.Exchange.RpcClientAccess.Parser.RopDriver.ExecuteOrBackoff(IList`1 inputBufferArray, ArraySegment`1 outputBuffer, Int32& outputSize, AuxiliaryData auxiliaryData, Boolean isFake, Byte[]& fakeOut)
   at Microsoft.Exchange.Server.Storage.MapiDisp.MapiRpc.<>c__DisplayClass29_1.<DoRpc>b__0(MapiContext operationContext, MapiSession& session, Boolean& deregisterSession, AuxiliaryData auxiliaryData)
   at Microsoft.Exchange.Server.Storage.MapiDisp.MapiRpc.Execute(IExecutionDiagnostics executionDiagnostics, MapiContext outerContext, String functionName, Boolean isRpc, IntPtr& contextHandle, Boolean tryLockSession, String userDn, IList`1 dataIn, Int32 sizeInMegabytes, ArraySegment`1 auxIn, ArraySegment`1 auxOut, Int32& sizeAuxOut, ExecuteDelegate executeDelegate)
   at Microsoft.Exchange.Server.Storage.MapiDisp.MapiRpc.DoRpc(IExecutionDiagnostics executionDiagnostics, IntPtr& contextHandle, IList`1 ropInArraySegments, ArraySegment`1 ropOut, Int32& sizeRopOut, Boolean internalAccessPrivileges, ArraySegment`1 auxIn, ArraySegment`1 auxOut, Int32& sizeAuxOut, Boolean fakeRequest, Byte[]& fakeOut)
   at Microsoft.Exchange.Server.Storage.MapiDisp.PoolRpcServer.EcDoRpc(MapiExecutionDiagnostics executionDiagnostics, IntPtr& sessionHandle, UInt32 flags, UInt32 maximumResponseSize, ArraySegment`1 request, ArraySegment`1 auxiliaryIn, IPoolSessionDoRpcCompletion completion)
   at Microsoft.Exchange.Server.Storage.MapiDisp.PoolRpcServer.EcPoolSessionDoRpc_Unwrapped(MapiExecutionDiagnostics executionDiagnostics, IntPtr contextHandle, UInt32 sessionHandle, UInt32 flags, UInt32 maximumResponseSize, ArraySegment`1 request, ArraySegment`1 auxiliaryIn, IPoolSessionDoRpcCompletion completion)
   at Microsoft.Exchange.Server.Storage.MapiDisp.PoolRpcServer.<>c__DisplayClass48_0.<EcPoolSessionDoRpc>b__0()
   at Microsoft.Exchange.Common.IL.ILUtil.DoTryFilterCatch[T](Action tryDelegate, GenericFilterDelegate filterDelegate, GenericCatchDelegate catchDelegate, T state)
   at Microsoft.Exchange.Server.Storage.MapiDisp.PoolRpcServer.EcPoolSessionDoRpc(IntPtr contextHandle, UInt32 sessionHandle, UInt32 flags, UInt32 maximumResponseSize, ArraySegment`1 request, ArraySegment`1 auxiliaryIn, IPoolSessionDoRpcCompletion completion)
   at EcPoolSessionDoRpcRpc.EcDispatchCall(EcPoolSessionDoRpcRpc* , SafeRpcAsyncStateHandle pAsyncState, IPoolRpcServer server)
   at PoolRpcServer_Wrapper.InternalExecute(PoolRpcServer_Wrapper* , SafeRpcAsyncStateHandle pAsyncState)
   at Microsoft.Exchange.Rpc.ManagedExceptionAsyncCrashWrapper.Execute<class Microsoft::Exchange::Rpc::PoolRpc::SafeEcPoolSessionDoRpcRpcAsyncStateHandle>(ManagedExceptionAsyncCrashWrapper* , _RPC_ASYNC_STATE* pAsyncState)
   at EcPoolSessionDoRpc_Managed(_RPC_ASYNC_STATE* pAsyncState, Void* cpxh, UInt32 ulSessionHandle, UInt32* pulFlags, UInt32 cbIn, Byte* rgbIn, UInt32* pcbOut, Byte** ppbOut, UInt32 cbAuxIn, Byte* rgbAuxIn, UInt32* pcbAuxOut, Byte** ppbAuxOut)
.
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="MSExchangeIS" />
    <EventID Qualifiers="49156">2006</EventID>
    <Level>2</Level>
    <Task>2</Task>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2021-10-14T11:07:49.032640700Z" />
    <EventRecordID>10167078</EventRecordID>
    <Channel>Application</Channel>
    <Computer>WIN-U1AM4JVFEJL.ASGCommercial.co.uk</Computer>
    <Security />
  </System>
  <EventData>
    <Data>Microsoft.Isam.Esent.Interop.EsentKeyDuplicateException: Illegal duplicate key
   at Microsoft.Isam.Esent.Interop.Server2003.Server2003Api.JetUpdate2(JET_SESID sesid, JET_TABLEID tableid, Byte[] bookmark, Int32 bookmarkSize, Int32&amp; actualBookmarkSize, UpdateGrbit grbit)
   at Microsoft.Exchange.Server.Storage.PhysicalAccessJet.JetTableOperator.Insert(IList`1 columns, IList`1 values, Column identityColumnToFetch, Boolean unversioned, Boolean ignoreDuplicateKey, Object&amp; identityValue)</Data>
    <Data>   at Microsoft.Exchange.Server.Storage.PhysicalAccessJet.JetTableOperator.Insert(IList`1 columns, IList`1 values, Column identityColumnToFetch, Boolean unversioned, Boolean ignoreDuplicateKey, Object&amp; identityValue)
   at Microsoft.Exchange.Server.Storage.PhysicalAccessJet.JetInsertOperator.ExecuteScalar()
   at Microsoft.Exchange.Server.Storage.PhysicalAccess.DataRow.Insert(IConnectionProvider connectionProvider, Boolean flushLargeDirtyStreams)
   at Microsoft.Exchange.Server.Storage.StoreCommonServices.ObjectPropertyBag.Flush(Context context, Boolean flushLargeDirtyStreams)
   at Microsoft.Exchange.Server.Storage.LogicalDataModel.Item.Flush(Context context, Boolean flushLargeDirtyStreams)
   at Microsoft.Exchange.Server.Storage.LogicalDataModel.Message.Flush(Context context, Boolean flushLargeDirtyStreams)
   at Microsoft.Exchange.Server.Storage.LogicalDataModel.Item.SaveChanges(Context context)
   at Microsoft.Exchange.Server.Storage.LogicalDataModel.Message.SaveChanges(Context context)
   at Microsoft.Exchange.Server.Storage.LogicalDataModel.TopMessage.SaveChanges(Context context, SaveMessageChangesFlags flags)
   at Microsoft.Exchange.Protocols.MAPI.MapiMessage.SaveChangesInternal(MapiContext context, MapiSaveMessageChangesFlags saveFlags, ExchangeId&amp; newMid)
   at Microsoft.Exchange.Protocols.MAPI.MapiMessage.SubmitMessage(MapiContext context, RopFlags ropFlags, Object sentRepresentingEntryId, AddressInfo addressInfoForAuthorization, SubmitMessageRightsCheckFlags submitMessageRightsCheckFlags)
   at Microsoft.Exchange.Protocols.MAPI.MapiLogon.InternalGenerateQuotaReport(MapiContext context, MapiLogon mapiLogon, Folder folder, QuotaType quotaType, QuotaInfo quotaInfo, IList`1 recipients, Int64 containerSize)
   at Microsoft.Exchange.Protocols.MAPI.MapiMailboxShape.PerformLogonQuotaCheck(MapiContext context, MapiLogon mapiLogon, QuotaType minScan, QuotaType maxScan)
   at Microsoft.Exchange.Protocols.MAPI.MapiMailboxShape.PerformLogonQuotaCheck(MapiContext context, MapiLogon mapiLogon)
   at Microsoft.Exchange.Protocols.MAPI.MapiLogon.PerformLogonQuotaCheck(MapiContext context)
   at Microsoft.Exchange.Server.Storage.MapiDisp.RopHandler.Logon(MapiContext context, LogonFlags logonFlags, OpenFlags openFlags, StoreState storeState, LogonExtendedRequestFlags extendedFlags, Nullable`1 mailboxId, Nullable`1 localeInfo, String applicationId, AuthenticationContext authenticationContext, Byte[] tenantHintBlob, LogonResultFactory resultFactory)
   at Microsoft.Exchange.Server.Storage.MapiDisp.RopHandlerBase.Logon(LogonFlags logonFlags, OpenFlags openFlags, StoreState storeState, LogonExtendedRequestFlags extendedFlags, Nullable`1 mailboxId, Nullable`1 localeInfo, String applicationId, AuthenticationContext authenticationContext, Byte[] tenantHint, LogonResultFactory resultFactory)
   at Microsoft.Exchange.RpcClientAccess.Parser.RopLogon.Execute(IConnectionInformation connection, IRopDriver ropDriver, ServerObjectHandleTable handleTable, ArraySegment`1 outputBuffer)
   at Microsoft.Exchange.RpcClientAccess.Parser.RopDriver.ExecuteRops(List`1 inputArraySegmentList, ServerObjectHandleTable serverObjectHandleTable, ArraySegment`1 outputBuffer, Int32 outputIndex, Int32 maxOutputSize, Boolean isOutputBufferMaxSize, Int32&amp; outputSize, AuxiliaryData auxiliaryData, Boolean isFake, Byte[]&amp; fakeOut)
   at Microsoft.Exchange.RpcClientAccess.Parser.RopDriver.ExecuteOrBackoff(IList`1 inputBufferArray, ArraySegment`1 outputBuffer, Int32&amp; outputSize, AuxiliaryData auxiliaryData, Boolean isFake, Byte[]&amp; fakeOut)
   at Microsoft.Exchange.Server.Storage.MapiDisp.MapiRpc.&lt;&gt;c__DisplayClass29_1.&lt;DoRpc&gt;b__0(MapiContext operationContext, MapiSession&amp; session, Boolean&amp; deregisterSession, AuxiliaryData auxiliaryData)
   at Microsoft.Exchange.Server.Storage.MapiDisp.MapiRpc.Execute(IExecutionDiagnostics executionDiagnostics, MapiContext outerContext, String functionName, Boolean isRpc, IntPtr&amp; contextHandle, Boolean tryLockSession, String userDn, IList`1 dataIn, Int32 sizeInMegabytes, ArraySegment`1 auxIn, ArraySegment`1 auxOut, Int32&amp; sizeAuxOut, ExecuteDelegate executeDelegate)
   at Microsoft.Exchange.Server.Storage.MapiDisp.MapiRpc.DoRpc(IExecutionDiagnostics executionDiagnostics, IntPtr&amp; contextHandle, IList`1 ropInArraySegments, ArraySegment`1 ropOut, Int32&amp; sizeRopOut, Boolean internalAccessPrivileges, ArraySegment`1 auxIn, ArraySegment`1 auxOut, Int32&amp; sizeAuxOut, Boolean fakeRequest, Byte[]&amp; fakeOut)
   at Microsoft.Exchange.Server.Storage.MapiDisp.PoolRpcServer.EcDoRpc(MapiExecutionDiagnostics executionDiagnostics, IntPtr&amp; sessionHandle, UInt32 flags, UInt32 maximumResponseSize, ArraySegment`1 request, ArraySegment`1 auxiliaryIn, IPoolSessionDoRpcCompletion completion)
   at Microsoft.Exchange.Server.Storage.MapiDisp.PoolRpcServer.EcPoolSessionDoRpc_Unwrapped(MapiExecutionDiagnostics executionDiagnostics, IntPtr contextHandle, UInt32 sessionHandle, UInt32 flags, UInt32 maximumResponseSize, ArraySegment`1 request, ArraySegment`1 auxiliaryIn, IPoolSessionDoRpcCompletion completion)
   at Microsoft.Exchange.Server.Storage.MapiDisp.PoolRpcServer.&lt;&gt;c__DisplayClass48_0.&lt;EcPoolSessionDoRpc&gt;b__0()
   at Microsoft.Exchange.Common.IL.ILUtil.DoTryFilterCatch[T](Action tryDelegate, GenericFilterDelegate filterDelegate, GenericCatchDelegate catchDelegate, T state)
   at Microsoft.Exchange.Server.Storage.MapiDisp.PoolRpcServer.EcPoolSessionDoRpc(IntPtr contextHandle, UInt32 sessionHandle, UInt32 flags, UInt32 maximumResponseSize, ArraySegment`1 request, ArraySegment`1 auxiliaryIn, IPoolSessionDoRpcCompletion completion)
   at EcPoolSessionDoRpcRpc.EcDispatchCall(EcPoolSessionDoRpcRpc* , SafeRpcAsyncStateHandle pAsyncState, IPoolRpcServer server)
   at PoolRpcServer_Wrapper.InternalExecute(PoolRpcServer_Wrapper* , SafeRpcAsyncStateHandle pAsyncState)
   at Microsoft.Exchange.Rpc.ManagedExceptionAsyncCrashWrapper.Execute&lt;class Microsoft::Exchange::Rpc::PoolRpc::SafeEcPoolSessionDoRpcRpcAsyncStateHandle&gt;(ManagedExceptionAsyncCrashWrapper* , _RPC_ASYNC_STATE* pAsyncState)
   at EcPoolSessionDoRpc_Managed(_RPC_ASYNC_STATE* pAsyncState, Void* cpxh, UInt32 ulSessionHandle, UInt32* pulFlags, UInt32 cbIn, Byte* rgbIn, UInt32* pcbOut, Byte** ppbOut, UInt32 cbAuxIn, Byte* rgbAuxIn, UInt32* pcbAuxOut, Byte** ppbAuxOut)
</Data>
    <Data>24968</Data>
    <Data>Mailbox Database 0854473321</Data>
    <Binary>5B444941475F4354585D000006010000FF110000000000000002F8000000B0B900100F01048010A100100F01048030EB00100F010480109100100F01048030E700100F01048010D70010312E323110A7001031343A57FFDB001031414D340FBA00104A4C3A377A7450600000000037656466663331312D323366662D343537652D623232372D63663333663031333065636100346164E07410100200000084747020ED7DE4910000000031343A578874702000000080000000004A4C3A373CB34010D9040000B8744010D904000080A180304EA3747F2A48D14AB411BD2D2FFE0F800000000080891010886100003CDC4010BBF9FFFF80A180304EA3747F2A48D14AB411BD2D2FFE0F80000000008089101088610000</Binary>
  </EventData>
</Event>

ASKER CERTIFIED SOLUTION
Avatar of M A
M A
Flag of United States of America image

Link to home
membership
Create an account to see this answer
Signing up is free. No credit card required.
Create Account
Avatar of PeterNairn
PeterNairn

ASKER

User generated image
It's been sitting at the above for 10 minutes?

Any hardware issue? Check system logs for disk errors.