Один экземпляр в кластере с WF 4 и AppFabric
-
28-09-2019 - |
Вопрос
Я пытаюсь сделать один рабочий процесс с 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/
Как мы можем получить сообщения с тем же экземпляром? Легко сделать небольшой трюк в форме получения:
- Мы создаем обработчик корреляции. Давайте назовем это oneintanceHandler
- В форме приема установите соотношение свойства с одноинационным штуцерным ганхером.
- В определении CorrelateSon вы должны вставить строку, а не выражение XPath. Например: «ASDF».
- Оставьте инициализатор корреляции только с ручкой для ответа.
Насколько я понимаю, в первый раз это создает экземпляр инициализации корреляции с «ASDF», в следующий раз он получает сообщение, AppFabric выглядит, если есть экземпляр, который он мог соотнести со строкой «ASDF», и он находит один инициализацию в первом звонке.