Wednesday, August 11, 2010

Email Router for CRM4 and multi-server environment

We discovered interesting issue with email router when there are few (more than one) CRM4 Servers connected to the same database.

All CRM components in multi-server environment work independently: all requests are being fulfilled by the particular server to which server user connects.

Except e-mails (and mail merge).

Email Router happens to work only on the first CRM server in the environment.

Let me explain a little further:

Let's say you have 3 CRM servers: server1, server2, server3 connecting to the same database. They are combined to the server farm by the load balancer. "Virtual" name of the farm is crm.yourcompany.com. Users access CRM using "virtual" name: http://crm.yourcompany.com.

User requests are answered by one of 3 servers (server1 or server2 or server3) – directed by load balancer.

Let's say, user connects to server3, opens Contact and selects 'Send E-mail'. User fills email fields and click 'Send'. You would expect that email router on server3 processes that email. You would be wrong – email gets processed by email router on server1.

(I wonder what will happen if server1 goes down – would it mean that there will be no email processing by email router? – to me it looks like a single point of failure – hello, Microsoft…)

Monday, August 9, 2010

Email issues in CRM4 (various) – tips of fixing.


 

Symptoms:

Can't start Microsoft CRM Email Router Service

Emails are not sent stuck in 'Pending Send' – both regular and Mail Merge.

Cause:

Following file got corrupted:

Microsoft.Crm.Tools.EmailAgent.SystemState.xml

Fix:

2 options:

Either replace that file with the file from "working" CRM server (if you deployed multiple CRM Servers connected to the same database),

Or delete that file – restart should re-create the file


 

After the fix: re-start the 'Microsoft CRM Email Router Service'