11

I installed Workflow Manager 1.0 on my test SharePoint server following these links:

I haven't setup any 2013 workflows yet but I am consistently seeing high CPU from these three services:

  • 25% Microsoft.Workflow.ServiceHost
  • 10% Microsoft.ServiceBus.Gateway
  • 5% Microsoft.ServiceBus.MessageBroker

Is this normal? Did I miss a setting?

I do not see why a vanilla install of Workflow 1.0 should be taking up 40% CPU at all times.

I have just started digging into all the logs on the server and will update with any info I find.

  • Does this occur when not configured with SharePoint? Just plain Workflow Manager? – John Chapman Nov 6 '13 at 3:01
  • 3
    Looking at my two farms I don't see the same CPU utilization on those services. Those are three components involved in workflow though. The ServiceHost is a Win32 service that talks connects to a Service Bus topic and listens for "jobs" to be broadcast to it. The other two are involved in the Service Bus piece. When an event happens in SharePoint (item added to a list), instead of SharePoint sending a message to each WF association, it sends one to a Service Bus topic which then sends N messages out based on how many subscriptions (aka: associations) there are on that list. – Andrew Connell Nov 7 '13 at 11:26
  • 3
    This is a good writeup on WorkFlow Manager farms: harbar.net/archive/2013/07/26/… – Mike Nov 10 '13 at 16:31
  • @JohnChapman I have workflow configured with SharePoint – Neil Hoff Nov 12 '13 at 14:46
  • 2
    If I disable the 'Service Bus Gateway' or 'Service Bus Message Broker' service the CPU drops back down to normal. – Neil Hoff Nov 12 '13 at 14:47
2

Here are some helpful tips on how to troubleshoot:
1. Make sure you have downloaded the correct version of SharePoint Designer 2013. You can download it via the following link: http://www.microsoft.com/en-us/download/details.aspx?id=35491
2. Make sure you install and configure workflow for SharePoint Server 2013 correctly. You can refer to: http://technet.microsoft.com/en-us/library/jj658588.aspx
3. Troubleshoot Workflow Manager 1.0 publishing, management and execution. You can refer to http://technet.microsoft.com/en-us/library/jj193529.aspx
4. Use a powershell command to list workflows in the web application (IIS site) in question and then disable them. You can see http://sharepointjack.com/2013/sharepoint-server-wfe-high-cpu-caused-by-workflow/

1

I encountered the same high CPU problems on our Workflow Manager server. However, on our server we had already installed the February 2013 Cumulative Update.

The Workflow Manager event log was flooded with the following error message:

Failed SQL command after 1 tries with error '229'. Exception: System.Data.SqlClient.SqlException (0x80131904): The EXECUTE permission was denied on the object 'InsertTrackingAndStatus', database 'WFInstanceManagementDB', schema 'dbo'.
   at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
   at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
   at System.Data.SqlClient.SqlCommand.CompleteAsyncExecuteReader()
   at System.Data.SqlClient.SqlCommand.EndExecuteNonQueryInternal(IAsyncResult asyncResult)
   at System.Data.SqlClient.SqlCommand.EndExecuteNonQuery(IAsyncResult asyncResult)
   at Microsoft.Workflow.Management.ExecuteNonQueryAsyncResult.OnEndExecuteSql(IAsyncResult result)
   at Microsoft.Workflow.Management.ExecuteSqlAsyncResult.EndAsyncResult(IAsyncResult result)
   at Microsoft.Workflow.Common.BackoffRetryAsyncResult.IsolateWithRetry(IAsyncResult result)
   at Microsoft.Workflow.Common.AsyncResult.AsyncCompletionWrapperCallback(IAsyncResult result)
ClientConnectionId:d2d8661f-c63a-4e5c-98b8-aeac58348d53  Command Details:   SQL Text          : InsertTrackingAndStatus
  SQL Parameters    : 
    > @StatusRecords = Microsoft.Workflow.Management.SqlDataAccessProvider+InstanceStatusValuesCollection
    > @MetadataWithInstanceId = 
    > @Variables = Microsoft.Workflow.Management.SqlDataAccessProvider+VariablesCollection
    > @TrackingRecords = 
    > @StatusHistoryRecords = 
    > @DebugTraceRecords = 
    > @RollingStatusHistoryWindowSize = 1000
    > @RollingDebugTraceWindowSize = 5000

So it appeared to be a SQL permission issue. A quick internet search pointed me to the following MSDN discussion and a blog post that resulted from that:

In that topic Microsoft presents an SQL script that fixes the database permissions. After I ran that script against our Workflow Manager databases the high CPU load and the error messages were gone.

Let's hope Microsoft releases an official fix for this.

0

We uninstalled from our web front end server and installed it on our app server.

The app server hasn't shown the CPU issues that we saw on our web front end.

Some theories on why:

  • Installed incorrectly the first time
  • Workflow shouldn't be installed on a web front end
  • The Windows server settings could have become different (although I am pretty sure both servers are identical)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.