Прерывистое InstanceOwnerException с WF4 - PullRequest
1 голос
/ 24 января 2011

Я запускаю рабочие процессы в worflow Foundation 4 с использованием SQL Durable для сохранения.

Иногда при возобновлении рабочего процесса я получаю System.Runtime.DurableInstancing.InstanceOwnerException.

System.Runtime.DurableInstancing.InstanceOwnerException occurred

  Message="The execution of an InstancePersistenceCommand was interrupted because the instance owner registration for owner ID 'd2db07fd-f31d-458c-be53-de163d5db8d4' has become invalid. This error indicates that the in-memory copy of all instances locked by this owner have become stale and should be discarded, along with the InstanceHandles. Typically, this error is best handled by restarting the host."

  Source=System.Runtime.DurableInstancing

  StackTrace:
       à System.Runtime.AsyncResult.End[TAsyncResult](IAsyncResult result)
       à System.Runtime.DurableInstancing.InstancePersistenceContext.ExecuteAsyncResult.End(IAsyncResult result)
       à System.Runtime.DurableInstancing.InstancePersistenceContext.OuterExecute(InstanceHandle initialInstanceHandle, InstancePersistenceCommand command, Transaction transaction, TimeSpan timeout)
       à System.Runtime.DurableInstancing.InstanceStore.Execute(InstanceHandle handle, InstancePersistenceCommand command, TimeSpan timeout)
       à System.Activities.WorkflowApplication.PersistenceManager.Load(TimeSpan timeout)
       à System.Activities.WorkflowApplication.LoadCore(TimeSpan timeout, Boolean loadAny)
       à System.Activities.WorkflowApplication.Load(Guid instanceId, TimeSpan timeout)
       à System.Activities.WorkflowApplication.Load(Guid instanceId)

Есть ли способ избежать этого исключения?

1 Ответ

1 голос
/ 24 января 2011

Обычно это результат предыдущего запуска, который не завершается нормально и перезапускается до истечения срока действия первоначальной блокировки. Это происходит в результате цикла редактирования / отладки / редактирования или в производственной среде?

Вы можете настроить период блокировки, используя параметр HostLockRenewalPeriod. Имейте в виду, что устанавливать его на действительно низкое значение обычно не очень хорошая идея.

...