Scenario:
Dynamics CRM 365
Server Side Email integration against POP3 services (Gmail for business)
Before upgrade - CRM 2015:
With some minor issues we found a succesfull configuration to integrate Dynamics CRM 2015 (On-Premise) with Gmail for Business.
One key setting was the "Mínimum Polling Interval in Minutes" field on the Email Server Profile record.
After several researchs we found an optimal value of 140 minutes (8400 seconds) for our company scenario (considering about 100 mailboxes, available bandwidth network rules and business needs), and using only 1 mailbox connection at time.
These causes that Dynamics CRM email synchro reserve about 84 seconds to sync last mails of each mailbox every 140 minutes. Our balanced option.
Lower values: appear some sync issue because bandwith cap rules and time slot is not enought, connection are overlapping and some issue appear (we saw that this situation force CRM trying to start again with this mailbox from "Process Email Received After" profile value and even worsen the current situation).
Higher values: too much sync delay.
After updagrade - CRM 2016 (and 365):
Dynamics CRM server side implementation completely ignore de value of "Mínimum Polling Interval in Minutes".
Any value we set here the platform appear to be ignored and uses the value of 5 minutes.
We must to disable every bandwith cap on this type of traffic to avoid problems.
We are facing serious performance issues frecuently. The async Service have high CPU consumption most of the time (80%), the bandwith is highly consumed by this mail synchro (we suppouse with unuseful handshake, and query packets)
Have someone faced the same issue in own enviroment and found a workaround?
Technical evidence
Whatever value we set in "Mínimum Polling Interval in Minutes" we obtain around "300 second" from this query after CRM 365 upgrade.
This query reflect the actual and planned Polling Interval in Minutes for all mailboxes in the indicated profile.
declare @CRMEmailProfile as varchar(100)
set @CRMEmailProfile = 'GMail Enterprise' -->Write your server profile name here
select datediff(ss,
(
SELECT MIN(PostponeMailboxProcessingUntilutc)
FROM FilteredMailbox
WHERE emailserverprofilename = @CRMEmailProfile
),
(
SELECT MAX(PostponeMailboxProcessingUntilutc)
FROM FilteredMailbox
WHERE emailserverprofilename = @CRMEmailProfile
AND PostponeMailboxProcessingUntilutc < '2100-1-1'
))
*This post is locked for comments