У меня есть CM и CD сервер. Они разделяют базу данных аналитики. У меня есть сценарий, в котором я обновляю элемент через службу REST API непосредственно в базе данных master, и это вызывает событие сохраненного элемента. В этом Событии я добавляю контакт в список контактов. Для этого пытаюсь сохранить контакт (иначе изменение не отразится). Но каждый раз, когда я пытаюсь использовать TryGetContactForUpdate, я получаю нулевой контакт со статусом LockedByWebCluster.
Я попытался освободить контакт XDB перед обновлением элемента (на компакт-диске), но контакт все еще заблокирован. Если я просто получу контакт и отпущу его, я увижу обновленный тег со списком контактов в Mongo (без аренды), но как только я выйду из клиентской области, контакт будет заменен последней известной версией из компакт-диск (с арендой).
Я не совсем уверен, почему все это происходит или как это должно быть, но я предположил, что если я разблокирую контакт перед обновлением его в CM, у меня не возникнет проблемы.
Чтобы еще больше усложнить ситуацию, My ClusterName должно быть одинаковым в CM и CD, иначе REST API не будет работать должным образом. Не знаю почему.
Какой-нибудь совет?
PS: Использование Sitecore 8.1