【问题标题】:SDL Tridion 2011 SP1 code hangs creating Broker Query objectSDL Tridion 2011 SP1 代码挂起创建代理查询对象
【发布时间】:2012-10-02 01:17:31
【问题描述】:

客户端正在尝试将一些代理查询代码集成到现有的 Web 应用程序中。他们有以下代码:

public String doItNow(int keyA,
                      String schemaA,
                      String templateIdA) throws Exception {

    loggerInfo("doItNow.start" +
               ", key:" + keyA +
               ", schema:" + schemaA +
               ", templateId:" + templateIdA);
    StringBuffer sb = new StringBuffer();

    PublicationCriteria pubCriteria = new PublicationCriteria(keyA);
    loggerInfo("doItNow.PC:" + pubCriteria);

    SchemaTitleCriteria schemaTitleCriteria = new SchemaTitleCriteria(schemaA);
    loggerInfo("doItNow.STC:" + schemaTitleCriteria);

    AndCriteria andCriteria = new AndCriteria(pubCriteria, schemaTitleCriteria);
    loggerInfo("doItNow.AC:" + andCriteria);

    Query query = new Query();
    loggerInfo("doItNow.Query.0:" + query);
    query.setCriteria(andCriteria);
    loggerInfo("doItNow.Query.1:" + query);

    String[] results = query.executeQuery();
    for (String r : results) {
        loggerInfo("doItNow.\tres:" + r);
    }

    ComponentPresentationAssembler cpa = new ComponentPresentationAssembler(keyA);
    loggerInfo("doItNow.CPA:" + cpa);

    for (String item : results) {
        loggerInfo(":>" + item);
        sb.append(cpa.getContent(item, templateIdA));
    }

    return sb.toString();
}

代码执行至创建查询对象:

Query query = new Query();

此时它挂起。 cd_core 日志文件中没有出现任何错误来说明原因。任何人都可以建议可以调查以进一步调试的领域,或提出解决方案吗?

【问题讨论】:

  • 可能值得一试。使用的是什么版本的 JRE? 1.6.0.29 版的 jdbc 驱动程序连接到 DB 存在一些问题。我希望这里不是这样。
  • Ram,就是这样 - 日志说“java.runtime.version = 1.6.0_29-b11”。发布答案,我会接受的:)

标签: tridion tridion-content-delivery


【解决方案1】:

JRE 版本 1.6.0.29 和 MSSQL jdbc 驱动程序存在已知问题。您需要降级或升级到不同的 JRE 版本。

https://forums.oracle.com/forums/thread.jspa?threadID=2301826

该问题似乎与驱动程序报告的问题非常相似,您也没有看到任何错误消息。

【讨论】:

    【解决方案2】:

    您是否添加了正确的包含? (Tridion.ContentDelivery.DynamicContent.Query 命名空间) 同样正如 Chris 所建议的,tridion 2011 中的查询没有setCriteria 的属性。 请改用query.Criteria。 您是否还在 cd_storage_conf.xml 中实施了必要的更改?

    【讨论】:

      【解决方案3】:

      尝试更改以下行:

      query.setCriteria(andCriteria);
      

      到:

      query.Criteria = andCriteria;
      

      SDL LiveContent 示例有一条建议进行此更改的评论。

      http://sdllivecontent.sdl.com/LiveContent/content/en-US/SDL_Tridion_2011_SPONE/concept_0AB6D192D7AB4EC18892631F519EF1DD

      【讨论】:

      • 我会建议它,尽管目前代码还没有运行到那个点;)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-19
      • 1970-01-01
      • 1970-01-01
      • 2012-07-02
      • 2012-05-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多