Возможно ли настроить диспетчер Tridion для отправки одного ItemType на несколько типов хранения?


18

Мы стремимся расширить уровень хранения контента Tridion новым типом хранения, чтобы мы могли написать некоторые из наших презентаций компонентов в репозиторий RavenDB. В рамках этого мы также хотим продолжить хранение всех этих презентаций компонентов в нашей Брокерской базе данных.

Можно ли настроить развертыватель Tridion для отправки одного ItemType на несколько типов хранения? Документация и сообщения, которые я обнаружил при расширении уровня хранения (например, сообщение Джулиана Гнева 'HowTo: Extending Content Broker Storage'), похоже, не затрагивают эту ситуацию.

Например, если в качестве допустимых определений defaultdb и defaultFile будет отправлен следующий результат в опубликованных презентациях компонентов для обоих типов хранилищ?

<Item typeMapping="ComponentPresentation" cached="false" storageId="defaultdb"/> 
<Item typeMapping="ComponentPresentation" cached="false" storageId="defaultFile"/> 
+1

Привет, Гленн, если один из приведенных ниже ответов помог исправить вашу проблему, не могли бы вы принять его? (нажмите галочку рядом с этим ответом) 04 мар. 132013-03-04 12:11:14

16

Я не думаю, что это допустимая конфигурация, чтобы иметь два одинаковых сопоставления типа ItemType. Таким образом, два элемента Item с одинаковым значением в атрибуте typeMapping, как вы предлагали, не будут работать.

Помимо использования расширения развертывания вы можете реализовать свой собственный уровень хранения, который вызывает хранение базы данных Tridion Broker (путем вызова переопределенных DAO Tridion), а затем сохраняет данные в RavenDB. Вам придется манипулировать некоторыми DAO, например, в this article и this post. Я не уверен, что это маршрут, который вы хотите принять. Это непростая задача и может быть слишком многого для того, чего вы хотите достичь.

  0

Спасибо, эти ссылки на хорошие статьи, которые я как-то пропустил в своем поиске информации по этой теме. 26 фев. 132013-02-26 23:45:22


15

Я думаю, что вы используете расширение Deployer, а не расширение хранилища. В расширении развертывателя вы получаете доступ ко всему пакету транзакций, поэтому вы можете написать свою логику для обработки определенного типа специальным способом в дополнение к способу OOTB. Взгляните на учебник Хайме по расширениям Deployer: http://sdltridionworld.com/articles/sdltridion2011/tutorials/Deployer_Extensions_With_Eclipse_1.aspx


9

Мне было бы интересно узнать, что произойдет с вашим примером - возникла бы ошибка или «последний узел выиграл»?

Я все еще чувствую свой путь вокруг Deployer и хранения расширений, но на основе responses I got, я думаю вы можете использовать расширение Deployer для обработки ваших конкретных презентаций компонентов (используя то, что когда-либо бизнес-логика, вам нужно), чтобы задать новый тип элемента, а затем расширение хранилища, чтобы вы могли явно обрабатывать этот новый тип элемента.

<Item typeMapping="ComponentPresentation" cached="false" storageId="defaultdb"/> 
<Item typeMapping="SpecialComponentPresentation" cached="false" storageId="defaultFile"/> 

Дополнительная работа, но сохраняет вещи, определенные в файле cd_storage, так что ясно, что происходит.

  0

Я всегда неохотно собираюсь с помощью наших конфигурационных файлов Tridion даже в dev, так как кажется, что это не похоже на то, как я ожидаю.Несмотря на это, я думаю, что я попытаюсь проверить два конечных точки хранения для одного типаMapping, чтобы точно увидеть, что происходит. 26 фев. 132013-02-26 21:54:38

  0

В конце, когда я проверил это, выиграла последняя запись конфигурации для определенного типа. 08 мар. 132013-03-08 02:00:05

  0

Полезно знать Гленн! Спасибо 08 мар. 132013-03-08 08:14:40


5

Другим подходом было бы опубликовать два отдельных развертывателя и настроить их по-разному.

Мой любимый подход - использовать веб-приложения ASP.NET в качестве серверов для загрузки. Если вы сконфигурируете их с подходящим образом заполненными каталогами lib и config в каталоге bin, вы можете использовать каждый контент для своего контента совершенно по-другому.

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

  0

Согласен, нет необходимости начинать писать код. Самый надежный код - это не код! Легко настроить несколько развертывателей, у меня есть решения для публикации на 6 развертывателей без каких-либо проблем. 29 ноя. 162016-11-29 09:23:46