4

Tridion2011sp1でコンテンツ配信ロギングを有効にする方法。.netバージョンのコンテンツ配信があります。コンテンツ配信のインストール後、アプリケーションフォルダー(D:\ Inetpub \ MyPortal \ bin \ config)にあるログバックファイルを変更しました。以下はlogbackxmlの設定です。

<property name="log.history" value="7"/>
<property name="log.folder" value="D:\tridion\log"/>
<property name="log.level" value="DEBUG"/>

変更を行った後、IISをリセットします。ただし、上記の場所にログファイルは表示されません。

ログファイルを確認したい理由はです。

コンテンツフィルタメカニズムを実装しました。ここでは、ItemSchemaCriteria、CustomMetaKeyCriteria、KeywordCriteriaなどのさまざまなクエリ基準を使用しています。

ブローカーデータベースにコンポーネントが存在するにもかかわらず、一部のフィルターの結果が表示されない場合があります。ページでフィルターメカニズムが実行されたときに発生するクエリを正確に確認する方法。

注:場所d:\ Tridion \ log \には、cd_core.2012-10-25、cd_monitor.2012-10-25、cd_deployer.2012-10-25、cd_transport.2012-10-25のようなファイルがありますが、これらのファイルは今日のログが必要なのは古いです。(2012年4月11日)

問題に関するより多くの入力:カテゴリに条件を追加すると、時間の結果が得られないことがわかりました。

KeyboardCriteria FilterCategory5303Criteria0 = new KeyboardCriteria( "FilterCategory"、 "Administrative"); Criteria [] filterCatCriteria5303 = {FilterCategory5303Criteria0}; 基準filterCatOrCriteria5303=CriteriaFactory.Or(filterCatCriteria5303); mainCriteria5303 = CriteriaFactory.And(mainCriteria5303、filterCatOrCriteria5303);

ブローカーデータベースのCUSTOM_METAテーブルには、2つのコンポーネントのエントリがあります。KEY_NAME="FilterCategory"およびKEY_STRING_VALUE="Administrative"

4

2 に答える 2

8

使用している場合:

<property name="log.folder" value="D:\tridion\log"/>

その場合、ログは記録されないことが予想されます。Logbackは、二重の円記号または単純な(fwd)スラッシュのいずれかを想定しています。例:

<property name="log.folder" value="D:\\tridion\\log"/>

また

<property name="log.folder" value="D:/tridion/log"/>

さらに、ブローカークエリからTridionが作成する(JPQL)クエリを確認する場合は、ログをTRACEに設定し、ログで次のことを検索する必要があります。

TRACE JPAQueryDAO - Broker Query generated:

これにより、最終的に生成された最終的なSQLクエリについての印象を与えることができます。

最後に、KeywordCriteriaとその使用方法について説明します。KeyboardCriteriaはCUSTOM_METAテーブルとはまったく関係がないことを知っておく必要があります。そのテーブルに関連するクエリには、「CustomMeta***Criteria」と呼ばれる基準を使用する必要があります

おそらく、あなたの場合、あなたは以下を使う必要があります:

new CustomMetaValueCriteria(new CustomMetaKeyCriteria("FilterCategory"), "Administrative");

お役に立てれば。

乾杯、ダニエル。

于 2012-11-05T10:23:51.973 に答える
2

ブローカークエリで期待した結果が得られない場合は常に、MSSQLクエリプロファイラーにアクセスして、データベースレベルで実際に何が起こっているかを確認します。

このプロセスは、Tridionプラクティスウィキの記事(http://code.google.com/p/tridion-practice/wiki/TroubleshootBrokerQueryGeneration )に記載されています。

手順の簡単な要約:

  1. MSSQLクエリプロファイラーを起動します
  2. 新しいトレースを開始します
  3. データベース名でトレースをフィルタリングする
  4. ページをリロードして、クエリを実行します
  5. プロファイラーでクエリを見つけます
  6. クエリをより良いツールにコピーして再フォーマットします

手順6に到達すると、結果が得られない理由がある程度明確になることがよくあります。結局、SQLを変更して、探している結果が得られることがよくあります。そして、そこから基準を変更してそのSQLを生成しますが、これは時には困難な場合があります。

于 2012-11-04T13:07:47.107 に答える