如何捕获运输包裹?


3

我们需要在页面发布时阅读传输包(在发布者上)。该软件包被立即删除。有没有办法保留更长的包裹?我们为发布者和部署者提供不同的服务器。我想在发布方保留该软件包。

  0

你为什么要这样做? 16 4月. 142014-04-16 10:06:32

  0

我需要捕获有关所做的每个发布事务的信息。 16 4月. 142014-04-16 10:10:15

+2

如果你可以分享更多的想法,人们可以提供帮助。你确定捕获发行商的软件包实际上是必要的吗? 16 4月. 142014-04-16 11:00:25

  0

捕获传输包详细信息可能对性能监视和测试等有用,尽管Tridion包含日志和发布队列。这个用例很重要,因为它可以帮助确定你想要做什么的支持方法。如果/当传输包格式,方法或约定发生变化时,将无法找到您现在构建的任何问题。 17 4月. 142014-04-17 05:32:21

5

是,修改cd_deployer_conf.xml有队列中的位置配置Cleanup="false"

<Queue> 
    <Location Path="c:\tridion\incoming" WindowSize="20" Workers="10" Cleanup="false" Interval="2s"/> 
</Queue> 

现在重新部署,并开始出版。

+2

并且记得在你完成任何你需要做的事情之后再次更换它并清理目录......过去由于某人做出这个改变而导致空间问题缺乏,许多系统意外地停止了发布 16 4月. 142014-04-16 10:02:31

  0

我需要在发布者一方捕获这个软件包。请让我知道如何做到这一点。 16 4月. 142014-04-16 10:03:56

  0

检查CM端的cd_transport_conf.xml,我_think_里面有一个类似的配置。 16 4月. 142014-04-16 10:27:14


2

要捕获有关每个发布交易的信息,我认为您需要查看相应的Event Handlers,他们可以准确指出何时呈现和发布什么。

如果我没有弄错运输包本身不是公共API的一部分,我为什么会看到没有很多关于它的事情。不要尝试使用内部实现细节(传输包),如果您对正确部署的内容感兴趣,则可以更好地查看存储扩展。更多信息可以在this article中找到。

  0

我们的出版商和部署者有两个不同的domians。我们已经考虑了这个选项,但是我们遇到了防火墙问题。因此我们正试图在发行商一方做到这一点。 16 4月. 142014-04-16 10:23:58

+1

@ user899对于事件处理程序,发布者位于何处并不重要,因为您拥有CMS和发布服务器上提供的事件处理程序。如果您的问题是您想要使用您在交付方(您的部署者所在的位置)中找到的数据,那么您应该查看存储扩展。 16 4月. 142014-04-16 10:26:39

  0

我不认为我已经看到任何运输包本身的公共API,只是巧妙的黑客和物理运输方式。 ;-) 17 4月. 142014-04-17 05:35:59


2

为了实现运输包装的检查对出版商的一面,我想你可以下去的implementing custom transport(需要登录)的路线,但在我看来,是解决采伐问题发布寻常路事件。

另一种更常见的解决方案可能是实现一个Event handler捕获和记录发布事件。

+1

更简单的方法是创建一个部署到本地文件系统的目标。 :) 16 4月. 142014-04-16 13:17:21

  0

@Raimond可能,但我认为你还必须创建一个本地部署者服务来获取这些包并报告成功,否则所有的发布工作都会报告失败,对吧?我仍然更喜欢事件系统 16 4月. 142014-04-16 14:07:15

+1

这不是必需的。传输包只会放在文件系统上。 :) 16 4月. 142014-04-16 14:21:19

+1

@Raimond是的,运输包将被放入光盘,并可以检查,但没有部署人员来处理它我认为发布商/传输服务将保持轮询状态更新,并最终失败的工作。我的理解是,OP正在寻找一种以编程方式检查数据而不干扰现有部署流程的方式 16 4月. 142014-04-16 15:06:33

+1

啊,当然是! 16 4月. 142014-04-16 15:09:40


0

看到没有答案被标记为接受我以为我会保持这一点,并尝试帮助其他人有同样的问题。在我的情况下,发布者软件包并没有被删除,因此填满了服务器,所以我的场景看起来正是OP之后的事情。

在我们的环境中,我们使用不同的帐户运行传输服务,现在我发现该帐户在发布完成后没有从根存储文件夹中删除软件包文件所需的权限。在我给帐户必要的权限后,软件包会自动清理,因为它们应该是。

因此,我建议OPs问题的解决方案是更改传输服务运行的帐户,以确保它不具有对配置的根存储文件夹的删除权限或明确拒绝对默认传输服务的删除权限帐户。

  0

后果是运输包将在那里没有任何清理和填满磁盘空间。我不会推荐这个选项。 15 9月. 162016-09-15 16:18:34


0

我们有类似的要求,我们想要捕获包,以便我们可以存储发布到数据库中的项目的细节。我们不想使用事件系统,因为它可能会增加发布事务的一些时间。

我们采用的方法是:

  1. 创建的Windows服务,文件守望者,这将持续
  2. 尽快创建包监视创建包的位置,将包复制到其他所以即使包被删除,我们仍然有它的副本 与工作。
  3. 从包中提取所需的信息并删除包。