1

我的智能目标应用程序没有任何错误,但我确实在事件日志中看到以下错误消息:

错误 2012-09-19 14:30:09 com.tridion.smarttarget.utils.AmbientDataHelper - 在声明存储中找不到定义的触发器类型(检查您的 smarttarget 墨盒是否已启动并运行)

和:

错误 2012-09-19 14:30:11 com.tridion.smarttarget.tags.TimeoutQueryRunner - fredhopper 查询在 java.util.concurrent.FutureTask$Sync.innerGet(Unknown Source) 处超时 java.util.concurrent.TimeoutException java.util.concurrent.FutureTask.get(Unknown Source) at com.tridion.smarttarget.tags.TimeoutQueryRunner.executeQuery(TimeoutQueryRunner.java:64) ERROR 2012-09-19 14:30:11 com.tridion.smarttarget.tags .TimeoutQueryRunner - fredhopper 查询超时

我真的很想了解导致这些问题的原因以及如何删除它们。或者一些建议的步骤来帮助我调试这会很棒:)

正如我所说,一切都运行良好,稍后在日志中我看到对 ST 的查询是正确的并且正在生成结果。

如果有帮助,我正在使用 Smart Target 2010,java 1.5 运行 2009 实现。

谢谢

约翰

4

3 回答 3

2

听起来您可能在 ST 中配置了一个在 ADF 中实际上不存在(或不匹配)的触发器。您是否查看了您的 trigger-types.xml 文件是否有任何明显的内容?您是否禁用了 ADF 墨盒但可能没有删除 XML 中的相应触发器?请参阅定义触发器类型的文档。

我认为您的超时来自 SmartTarget 区域而不是 FredHopper。有时,尚未在 FredHopper 中缓存的查询可能需要一段时间才能返回,即使它最终是成功的。ST 查询标签有一个超时(在 smarttarget_conf.xml 文件中定义,或被标签属性覆盖),它将等待 Fredhopper 的响应,然后再诉诸使用回退内容。这也许可以解释为什么您稍后会在日志中看到查询是正确的并且返回了结果。请参阅<tcdl:query>.

恐怕没有结论性的答案,但我希望这会有所帮助。

于 2012-09-19T16:13:58.423 回答
1

如果您的 SmartTarget 磁带没有运行,或者它放入 ADF 的数据以某种方式丢失(例如,您在 Web 服务器中禁用了会话),则会记录第一个错误。

在这种情况下,SmartTarget 仍会进行查询,但不会包含来自环境数据框架的任何内容。如果您没有任何基于环境数据的触发器,那么最终结果对您来说是相同的。

要消除错误,请确保 smarttarget_cartridge 配置正确。

至于超时错误,它只是意味着发送给 Fredhopper 的查询花费的时间比配置的时间长。在这种情况下,它将显示后备内容。如果这种情况经常发生,您可能希望增加 smarttarget_conf.xml 中的超时。

于 2012-09-24T14:35:37.293 回答
1

我希望您找到了问题,但为了将来参考,当 SmartTarget 墨盒未设置声明“taf:claim:ambientdata:definedtriggertypes”时会引发第一条错误消息。这可能是由以下原因引起的:

  • SmartTarget 盒式磁带无法从 SmartTarget 服务器加载触发器类型。日志将显示错误“无法从 FH 检索已定义触发器类型的列表”。
  • 您的 Web 服务器上的 HTTP 会话在活动访问期间已过期(HTTP 会话已过期但浏览器仍处于打开状态)并且声明“丢失”。
  • 服务器不支持像彼得提到的会话。
于 2013-09-03T13:05:19.327 回答