Tuesday, 24 April 2012

Dynamics CRM planning upgrade and system architecture

CRM 2011 has introduced a new system architecture that changes the way Outlook clients communicate with CRM back-end. CRM is less chatty and requires less services but is important to understand the impact on your old CRM 4 infrastructure when upgrading.

If you have a large number of users using the Outlook client then you may have noticed you have thousands of connections to the Platform servers. With CRM 2011 with the default options the front-end server now hosts these services, which means your front-ends will be hit with web traffic and Outlook client traffic at the same time increasing the load on these servers.

Dynamics CRM 4
The following diagram illustrates CRM 4 synch activity when users opens Outlook and when the CRM client is configured:
Note: The services used when the user opens Outlook are the same, when the Client performs a synchronization every 15min

Dynamics CRM 2011
On CRM 2011 by default the services have been moved to the front-end servers, the following diagram illustrates CRM 2011 synch activity:

Note: The services used when the user opens Outlook are the same, when the Client performs a synchronization every 15min 

  • A like-to-like upgrade (front-end, back-end), on environments with 500+ users, depending on server specifications you may expect heavy loads on the front-end servers, due to Outlook Client connections handling more traffic than normal leading to poor performance.
  • Ideally you want to place the CRM 2011 Discovery and specially the Organization Service away from the front-end servers.
  •  Another interesting design change is the Discovery Service is no longer used when synchronizing the Outlook client, which means you can place the discovery server in a low spec server or even turn it off.

I hope this information was helpful.

Tuesday, 10 April 2012

Dynamics CRM 2011 Scaling Email router with Business Units

I wrote an article a few weeks ago on how to install the email router on multiple servers. However the concept and method is a manual process and there is something new with CMR 2011 that can automate the process and easier to scale the email router.

With Dynamics CRM 2011 a new option was introduced on the security profiles that transforms the way we can use the email router. The new change I'm referring to is the queue security options, it has now the ability to read at different levels:
  • Business Unit
  • Parent-child Business unit
  • Organizational
  • User
 These options were not available with CRM 4, you could only do organizational or none. With the new options, we can easily scale our email router implementation by configuring different service accounts for each  business unit with permissions to read only at the business unit level. When installing the email router we specify which service account the email router should use. When using those specific accounts the email router returns only the users from that business unit.

The following diagrams illustrates how the concept works. First consider the following business unit layout:

We have a parent business unit with 4 child business units. Each child business unit represent the company office locations. Each city business unit will hold their own CRM users, security roles etc.

Below a more detailed diagram on how the different email routers would be placed and how many service accounts we would require in order to scale the email router:

The Service account requires Queue and User Settings Read permission at the business unit level.

The service account is configured on the email router configuration tool, deployment tab, deployment profile:

Hope this was helpful.

Monday, 2 April 2012

Dynamics CRM 2011 jquery errors

Couple common jquery errors when playing with jquery in dynamics CRM 2011;

jquery Access Denied
When running the jquery script on a machine outside the development domain you get:
Access is denied.

>To resolve this, add the site URL to one of the IE zones and enable the following setting for that zone:

jquery '$' is undefined
'$' is undefined
>This issue is quite simple to resolve but can happen when you add web resouces in a different order. the Jquery webresource needs to be on top of the custom scripts that reference jquery syntax. when the scripts are executed the jquery library must have been loaded prior to the scripts execution, only then CRM 2011 will recognize the syntax.