For the last few days emails in a single organization, in an environment with several organizations, have begun stalling when being sent through the email router.
- The user has email router outgoing
- The email router gives a successful when testing the access of the user in question
- The email router works for 3 other organizations
- The outgoing smtp server has sucesfully sent mails from that user in the past
- We've updated statistics on the ORGANIZATION_MSCRM DB
- We've restarted the email router
- We've renamed the Microsoft.Crm.Tools.EmailAgent.xml and restarted the service
- We've restarted the SQL service that hosts the ORGANIZATION database
- We've created a second outgoing profile and tried using that for the user in question
- We've checked if the domain has been blacklisted on spamhaus
- We've tried sending mails from that organization with different users
- We've executed everything in: https://community.dynamics.com/crm/b/dynamicscrmsupportblog/archive/2013/09/06/crm-e-mail-router-performance-based-error-messages.aspx
- OlebDBTimeout has been increased to 3000
A temporary solution that worked was assigning 5000 unsent emails to an email queue belonging to that user, this caused 3000 of them to be sent, however we've still got 2000+ emails stuck from that batch, and require a more reliable solution.
We're receiving the following errors:
- #61346 - An error occurred while checking for outgoing e-mail messages to process for SMTP: https://Organization.orbitone.com/Organization. System.ServiceModel.FaultException`1[Microsoft.Xrm.Sdk.OrganizationServiceFault]:
SQL timeout expired. (Fault Detail is equal to Microsoft.Xrm.Sdk.OrganizationServiceFault)
- Query execution time of 120.0 seconds exceeded the threshold of 20 seconds
Thread: 79; Database: Organization_MSCRM; Server:SQL; Query: select
top 5 "email0".Subject as "subject"
, "email0".Description as "description"
, "email0".PriorityCode as "prioritycode"
, "email0".ActivityId as "activityid"
, "email0".ModifiedOn as "modifiedon"
, "email0".StateCode as "statecode"
, "email0".StatusCode as "statuscode"
, "email0".DeliveryAttempts as "deliveryattempts"
from
Email as "email0" (NOLOCK) join ActivityParty as "activityparty1" (NOLOCK) on ("email0".ActivityId = "activityparty1".ActivityId and (((("activityparty1".ParticipationTypeMask = 1 and ("activityparty1".PartyId in ('1a42caba-53c4-e111-995c-005056bd4b39'
, '5026eba8-0c7c-e211-b518-005056bd4b39'
, 'e3e9aff5-227c-e211-b518-005056bd4b39'
, 'ee614303-7f81-e211-b518-005056bd4b39'
, 'c0383a32-6886-e211-b518-005056bd4b39')))))))
where
(("email0".StateCode = Closed and ("email0".StatusCode != Sent or "email0".StatusCode is null) and "email0".DirectionCode = 1 and (((((("email0".DeliveryAttempts = 0)))))))) order by
"email0".ActualEnd asc.
3. The CrmKeyGenerator encountered an error generating/monitoring key type Microsoft.Crm.CrmConfigObjectNotFoundException: CrmKey With Id does not exist
When we run the above query ourselves, filling in the correct StateCodes, the query takes 3 minutes.
Which is markedly higher than the 120 seconds mentioned.
Another oddity is that each warning states the query took exactly 120 seconds, which is unrealistic.
We've noticed that the ActivityPointerBase table is larger than we'd expect, 40gig with 2,6 million rows.
name rows
reserved data
index_size
unused
ActivityPointerBase
2625378
41829168 KB
38362136 KB 3453344 KB
13688 KB
This in a CRM database that is 90gig in size.
We were also unable to find the correct installer to repair the installation of the email router with rollup 13.
The full installation package says it's the wrong version, and the update rollup package is not a valid package.