SharePoint 2013 Workflows – High Availability (MSMQ)

Workflow Manager only supports a farm with 1 computer or a farm with 3 computers.
http://msdn.microsoft.com/en-us/library/jj193434(v=azure.10).aspx

There is a very good article by harbar.net  that you can read details .
“However this isn’t high availability, its horizontal scalability. It’s pretty sweet. The trouble is the perception that “Service Bus takes care of everything”. Which is not the Case…

When we create a connection to a Workflow Manager farm from a SharePoint farm with the Register-SPWorkflowService cmdlet we pass in a WorkflowHostUri parameter. This typically is the host name of a Workflow Manager host. If we have three Workflow Manager hosts, which host name should we use? Well we can use anyone we like, as long as it’s valid. This will work. But it’s not highly available. If that particular host is down for whatever reason, our Workflow Connection – which is a Service Application Proxy – will be broken and we cannot configure or execute any SharePoint 2013 workflows.”

http://www.harbar.net/articles/wfm1.aspx

The servers should be configured with a software or hardware load balancer for proper load balancing, or can be accessed directly”
Load Balancing is a solution for this issue but it is not enough .
As again

“A load balancer generally does load balancing. Whether it’s NLB or ARR or an “intelligent”, “hardware” device from the usual suspects, it doesn’t make any difference. They all require configuration and scripting to truly function for HA. If all you need is a solution for when you reboot a host due to Windows Updates or similar scenarios you are good. But for everything else you need to tell the load balancer how to be “intelligent”, it will not happen out of the box.”
http://www.harbar.net/articles/wfm1.aspx

there is also one more resolution for high availability : MSMQ.
MSMQ is a Windows Server feature that you can enable on your SharePoint Server computer to allow asynchronous event messaging in SharePoint workflows. To support asynchronous event messaging, you must enable MSMQ on your SharePoint Server computer.
http://msdn.microsoft.com/en-us/library/office/dn467936(v=office.15).aspx

After MSMQ installed it can be easily activate by powershell:

$proxy = Get-SPWorkflowServiceApplicationProxy
$proxy.AllowQueue = $true;
$proxy.Update();

MSMQ provides Queue functionality  for SharePoint side , like Service Bus does  for Workflow Manager side. If we summarize
For High Availability:

1) Scale up your Workflow Manager Farm by 3 server.
2) Configure Workflow Manager host uri for your LB and DNS as correctly
3) And Use MSMQ !!! which is not OOB enabled for SharePoint 2013 servers.

 

 

 

 

SharePoint 2013 Workflows – Requirements

If you are interested in SharePoint 2013 Workflows. I can say SharePoint 2013 workflows has never been powerful as before. Which is come us with a tremendous improvement and completely new architecture. As every new System and new architecture brings new problems as always been , thats the nature of the new releases , so before going into dark side , you have to sure that you have working with last updates.

For the overview of SharePoint 2013 Workflows you can find more info from MSDN:

Workflow Manager 1.0:
http://msdn.microsoft.com/en-us/library/windowsazure/jj193528(v=azure.10).aspx

Windows Workflow Foundation:
http://msdn.microsoft.com/en-us/vstudio/jj684582.aspx

I would like to share some important upgrade and suggestions that may prevent your pains when you try to adapting the new SharePoint 2013 workflows.

First thing is the prerequisites ;

-> Bold Lines extra requirements and fixes many issues

*Workflow Manager 1.0 RTM (Shipped with SP2013 RTM)
*Workflow Manager 1.0 Service Pack 1
*Workflow Manager 1.0 Client for SharePoint 2013 Servers .
(If you installing Workflow Manager 1.0 via Web Platform installer it is automattically installs if your machine already installed SharePoint 2013)

*Service Bus 1.0
*Service Bus 1.0 Service Pack 1

I would suggest to use Web Platform Installer for install and setup and tracking for new upgrades for Workflow Manager and Service Bus.

*SharePoint 2013
*SharePoint 2013 and at least March PU update.
http://www.andrewconnell.com/blog/Workflow-Improvements-Changes-SP2013-March-PU-and-RTM-Developer-Tools
*I have suggested that Install Latest Current CU (Currently October 2013 CU for SharePoint 2013)

 *.Net FrameWork 4.5 (It is also SharePoint 2013 prerequisites)
*Always check the .Net FrameWork 4.5 Hotfixes.

For Developers :

*Visual Studio 2012 with latest Upgrade
*Office Developer tools for Visual Studio 2012 RTM (Again use Web Platform Installer for tracing new updates)
*Worflow Manager Tools 1.0 for VS 2012 (
If you installing Workflow Manager 1.0 via Web Platform installer it is automattically installs if your machine already installed VS2012)

 

Here Some other Suggestions;

* When after you register your workflow service as below command:

Register-SPWorkflowService -SPSite “http://blog.bugrapostaci.com” -WorkflowHostUri “http://workflow.bugrapostaci.com:12291” -Scope “Workflows” -AllowOAuthHttp
Make sure that you are using -WorkflowHostUri as full FQDN name , otherwise you may face some funcy Access denied issues.

*When you are using developing or testing don’t use System account. You may face also some System.Unauthorize exceptions which is also described technet it is not supported.

*Sometimes when you are working with Visual Studio you may face your latest build doesn’t deployed to the farm. That is a VS Caching problem. Always use latest VS bits. (Restarting VS or killing vshost exe can fixes that issue on next deployment)