是否可以配置Tridion的部署者将一个ItemType发送到多个存储类型?


18

我们正在寻求将Tridion的内容存储层扩展为新的存储类型,以便我们将一些组件演示文稿写入RavenDB存储库。作为其中的一部分,我们还希望继续将所有这些组件演示文稿存储在我们的Broker数据库中。

是否有可能配置外表套上的部署,以一个ItemType的发送到多个存储类型?关于扩展存储层的文档和帖子(如Julian Wrath的文章'HowTo: Extending Content Broker Storage')似乎并没有解决这种情况。

例如,假设defaultdb和defaultFile的有效定义会在发布的组件演示以下结果被发送到两个存储类型?

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

嗨格伦,如果下面的答案之一帮助解决了你的问题,你能否考虑接受它? (点击该答案旁边的复选标记) 04 3月. 132013-03-04 12:11:14

16

我不认为这是一个有效的配置有两个相同的itemType映射。因此,如您所建议的typeMapping属性中具有相同值的两个Item元素将无法工作。

除了使用部署扩展,您还可以实现调用Tridion Broker数据库存储(通过调用重写的Tridion DAO)的自定义存储层,然后将数据存储在RavenDB中。你将不得不忍受一些DAO,如this articlethis post。我不确定这是你想要采取的路线。这不是一件容易的事,对于你想达到的目标可能有点太过分了。

  0

谢谢,这些链接很好的文章,我不知何故在我搜索有关此主题的信息错过。 26 2月. 132013-02-26 23:45:22


15

我认为你所追求的是部署者扩展,而不是存储扩展。在您的部署者扩展中,您可以访问整个事务包,因此除了OOTB方法外,您还可以编写逻辑来处理给定类型的特殊方式。看看海梅的教程上部署扩展:http://sdltridionworld.com/articles/sdltridion2011/tutorials/Deployer_Extensions_With_Eclipse_1.aspx


9

我很想看看会发生什么给你的榜样 - 会有错误或不“最后<Item>节点双赢”?

我仍然感觉我的周围部署和存储扩展的方式而是基于responses I got,我认为你可以使用部署扩展(使用的是什么,你需要不断的业务逻辑)设置处理特定组件演示新的项目类型,然后使用存储扩展来显式处理这种新的项目类型。

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

额外的工作,但保持在cd_storage文件中定义的事情,以清楚发生了什么事情。

  0

即使在开发中,我总是不愿意使用我们的Tridion配置文件,因为它似乎并不像我期望的那样。尽管如此,我想我会尝试测试两个存储端点的一种类型映射,以查看究竟发生了什么。 26 2月. 132013-02-26 21:54:38

  0

最后,当我测试了这一点,特定类型映射的最后一个配置条目胜出。 08 3月. 132013-03-08 02:00:05

  0

有用了解Glenn!谢谢 08 3月. 132013-03-08 08:14:40


5

另一种方法是发布给两个单独的部署者并配置每个部署者。

我最喜欢的方法是使用ASP.NET Web应用程序作为上传服务器。如果你在bin目录中用适当填充的lib和config目录来配置它们,你可以让它们的内容完全不同。当然,如果你打算通过Tridion存储层使用内容,它可能会有点让人感兴趣,但我认为你的使用案例是让Tridion和另一个具有不同需求的系统同时使用内容。

  0

我同意,没有必要开始编写代码。最可靠的代码是无代码! 设置多个部署者很容易,我有解决方案发布给6个部署者没有任何问题。 29 11月. 162016-11-29 09:23:46