Almost everything you could want to know about Asynchronous and Synchronous processes in CRM.
I need to see all of the processes which have been running, where can I see this?
Asyncoperation table in SQL shows all processes.
Integration’s such as Sage to Dynamics CRM where something like Scribe is not involved, would rely on the Asynchronous service so any failures may require a restart of the Async service.
How often does the service poll
The Asynchronous service runs and polls every 5 seconds but items relying on this service with queue.
System jobs relevance to Asynchronous processes
A system job, also known as an asynchronous operation, is used to define and track the execution of an asynchronous operation, for example an asynchronous registered plug-in, workflow, or other background system operation.
What’s the difference between a Synchronous and Asynchronous plugin
Synchronous plugins are triggered straight away – A CRM form will wait until the plugin has finished before reloading
Asynchronous plugins/workflows are triggered later when the service has enough resources
A developer can tell if a plugin has run straight away.
If Asynchronous plugins run when they can, how can you tell when it is running?
A system job is created and can be seen in the Settings > System jobs. The Asynchronous periodically polls the queue.
What if an Asynchronous plugin runs but no system job is created?
When the plugin registration tool is used to create a plugin step, you can tick a box which says delete the job instead of it creating a system job. See screenshot below:
Run this workflow in the background (recommended) What does this option mean?
This option appears when you select workflow as the category. This setting determines whether the workflow is a real-time or background workflow. Real-time workflows run immediately (synchronously) and background workflows run asynchronously.
What other operations rely on the delayed, take your time Asynchronous background process?
Bulk delete, Bulk mail, bulk import, campaign activities. Imports, Asynchronous workflows and custom integrations.
*Did you know the Asynchronous service can be hosted on a different server to where CRM is installed!
Why would you host the Asynchronous service on a different server to CRM?
You will be able to get a better performance from it if it is hosted on its own server. Remember, if the Asynchronous service is running lots of processes and workflows and other jobs on a large scale system it is going to hammer the system.
Explain what should be considered performance wise when thinking about Asynchronous operations?
For every process created each time one of these operations run, you will see a new record is created in the Asyncoperationbase table meaning this table can grow drastically.
To save space you could consider opening one of your workflows and ticking the option within the admin tab that says delete the asyncoperationtable record but you will lose any potential history for future troubleshooting.
What should you do if the Asyncoperationbase table gets too big and affects performance?
This table is not classed as being over-run unless it is above 1 million records. See this article for a script to run in SQL to clear it down: https://support.microsoft.com/en-us/kb/968520
Asynchronous states and diagrams