Один экземпляр в кластере с WF 4 и AppFabric - PullRequest
2 голосов
/ 07 октября 2010

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

Я пробовал стиль biztalk: метод (CallService ()), который создает экземпляр, и тот же метод в другой операции получения (CallService ()), для которой не проверен экземпляр cancreateinstance. (Я думаю, что я мог бы связать его через xpath с действием в сообщении мыла, но давайте забудем о корреляции на этом шаге).

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

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

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

1 Ответ

1 голос
/ 09 октября 2010

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

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

  1. Мы создаем обработчик корреляции. Давайте назовем это singleIntanceHandler
  2. В форме получения установите свойство CorrelatesWith с помощью singleInstanceHandler.
  3. В определении CorrelatesOn вы должны вставить строку, а не выражение xpath. Например: «asdf».
  4. Оставьте инициализатор корреляции только с ручкой для ответа.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...