Вопрос

Я пытаюсь сделать один рабочий процесс с WF4 и AppFabric. Я хочу только один экземпляр рабочего процесса, работающего в кластере.

Я попробовал стиль BizTalk: метод (Callervice ()), который создает экземпляр, и тот же метод в другой приемной активности (Callervice ()), которые не проверяют CancreatienStance. (Я думаю, что смогу соотнести его через XPath к действию в сообщении мыла, но позволяет забыть о корреляции на этом этапе).

Моя проблема заключается в том, что WF всегда создает экземпляр и не коррелируют во втором вызове.

Вы знаете, как это решить? Я хотел бы приоритетировать корреляцию против создания экземпляров. Любой другой способ сделать это?

Заранее спасибо.

Это было полезно?

Решение

Я нашел решение. Вот что я написал о:http://pablocastilla.wordpress.com/2010/10/09/single-instance-of-a-workflow-in-the-cluster-with-wf-4-0-and-appfabric/

Как мы можем получить сообщения с тем же экземпляром? Легко сделать небольшой трюк в форме получения:

  1. Мы создаем обработчик корреляции. Давайте назовем это oneintanceHandler
  2. В форме приема установите соотношение свойства с одноинационным штуцерным ганхером.
  3. В определении CorrelateSon вы должны вставить строку, а не выражение XPath. Например: «ASDF».
  4. Оставьте инициализатор корреляции только с ручкой для ответа.

Насколько я понимаю, в первый раз это создает экземпляр инициализации корреляции с «ASDF», в следующий раз он получает сообщение, AppFabric выглядит, если есть экземпляр, который он мог соотнести со строкой «ASDF», и он находит один инициализацию в первом звонке.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top