Как разблокировать контакт Sitecore?

У меня есть CM и CD сервер. Они разделяют базу данных аналитики. У меня есть сценарий, в котором я обновляю элемент через службу REST API непосредственно в базе данных master, и это вызывает событие сохраненного элемента. В этом Событии я добавляю контакт в список контактов. Для этого пытаюсь сохранить контакт (иначе изменение не отразится). Но каждый раз, когда я пытаюсь использовать TryGetContactForUpdate, я получаю нулевой контакт со статусом LockedByWebCluster.

Я попытался освободить контакт XDB перед обновлением элемента (на компакт-диске), но контакт все еще заблокирован. Если я просто получу контакт и отпущу его, я увижу обновленный тег со списком контактов в Mongo (без аренды), но как только я выйду из клиентской области, контакт будет заменен последней известной версией из компакт-диск (с арендой).

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

Чтобы еще больше усложнить ситуацию, My ClusterName должно быть одинаковым в CM и CD, иначе REST API не будет работать должным образом. Не знаю почему.

Какой-нибудь совет?

PS: Использование Sitecore 8.1


person Javier Montano    schedule 16.11.2017    source источник


Ответы (1)


Вы не можете разблокировать контакт. Вы можете попытаться получить доступ только по заданию таймера. Это было большой проблемой с моделью 8.x, а также с тем, почему в Sitecore 9 xConnect отделяет контакт от сайта. Так что в xConnect нет блокировки вроде 9.

person Chris Auer    schedule 20.11.2017