5

私は Tridion 2009 SP1 を使用しています。ある時点で、すべてのユーザー (フィルターではない) の公開キューを表示する機能が機能しなくなりました。CM GUI で、タイムアウト エラーが受信されます。

(80040E31) Timeout expired
Unable to get list of publishing queue items.

SQLUtilities.OpenRecordsetByStoredProcedure
SystemDAL.GetListData
SystemBLST.lObjListPublishTransactions
SystemBLST.IBLSystemST_GetListData
ManagementInfo.GetListPublishQueue
Request.GetList

そこで、Publication Queue Manager Powertool を使用してキューをクリーンアップしようとしましたが、500 エラーがスローされます。これは、キューにアイテムが多すぎることと一致しています。

次に、Tridion Purge Tool を使用してキューをパージしようとしましたが、数秒間クランチし、同じエラーが返されます。

14-May-2012 21:10:12 Log cleared.
14-May-2012 21:10:12 Purge action started at 14-May-2012 21:10:12
14-May-2012 21:10:12 Keeping the last 5 versions.
14-May-2012 21:10:12 Recursive mode: False
14-May-2012 21:11:12 FAILED: <?xml version="1.0"?>
<tcm:Error xmlns:tcm="http://www.tridion.com/ContentManager/5.0" ErrorCode="80040E31" Category="7" Source="Kernel" Severity="1">
    <tcm:Line ErrorCode="80040E31" Cause="false" MessageID="4613"><![CDATA[Unable to get list of publishing queue items.]]>
        <tcm:Token>RESID_4485</tcm:Token>
        <tcm:Token>RESID_15821</tcm:Token>
    </tcm:Line>
    <tcm:Line ErrorCode="80040E31" Cause="true">
        <![CDATA[Timeout expired]]>
    </tcm:Line>
    <tcm:Details>
        <tcm:CallStack>
            <tcm:Location>SQLUtilities.OpenRecordsetByStoredProcedure</tcm:Location>
            <tcm:Location>SystemDAL.GetListData</tcm:Location>               
            <tcm:Location>SystemBLST.lObjListPublishTransactions</tcm:Location>
            <tcm:Location>SystemBLST.IBLSystemST_GetListData</tcm:Location>
            <tcm:Location>ManagementInfo.GetListPublishQueue</tcm:Location>
        </tcm:CallStack>
     </tcm:Details>
</tcm:Error>

イベント ログはすべて、まったく同じエラーを示します。そうそう、COM+、Publisher、および Transport サービスを再起動しようとしました。

そのため、公開キューがアクセスできない状態になっているようです。原因が何であるか、または私の次のステップを教えてください。

4

6 に答える 6

5

パブリッシュ トランザクション テーブルにクエリを実行して、すべてのトランザクションの tcm uri のリストを取得し、これをカスタム データベースに移動し、TOM.NET API / コア サービスを使用して各トランザクションを個別に開き、状態に応じて次を使用して削除することができます。 API。

このようにして、データベースで直接作業することなく、制御された方法でトランザクションを削除できます。

于 2012-05-15T04:20:19.993 に答える
4

SQLServer と Internet Information Server のタイムアウト設定はどのようになっていますか? それらが標準のデフォルトにある場合(それらが何であるかを思い出すことができません)、それらを増やしてみる価値があるかもしれません.

それでも失敗する場合は、データベースにトレースを置いて、時間がかかる理由を確認してください。

于 2012-05-15T03:17:25.303 に答える
4

試せることはたくさんあります。

コード内:

  1. データ セットを特定の期間 (週単位、月単位) に減らす
  2. 特定の統計タイプ (失敗、成功など) を 1 つずつ選択します

インフラストラクチャ:

  1. あなたが何をしようとしているのかはわかりませんが、トランザクションを削除するだけの場合は、おそらくパージツールを使用してください(ただし、コーディングしているので、ユースケースに対して十分に賢くないと思います)
  2. パージ ツールを使用して、ユースケースに関係のない古いトランザクションを削除します
  3. データベースが完全に最適化されていることを確認する
  4. (前述のとおり) Tridion 構成スナップインでタイムアウトを増やします
  5. お使いのバージョンの Tridion に最新のパッチが適用されていることを確認してください (2009 GA と SP1 の両方でキューのパフォーマンスに多くの変更がありました)
  6. 一般に、ハードウェアが動作していることを確認します
于 2012-05-15T08:11:24.087 に答える
3

ここにリストされているすべての良い点に加えて、データベースを最適化しましたか?DB統計を定期的に更新し、インデックスを再作成することを計画する必要があります。DBAに確認して、保守計画をスケジュールしてください。

トランザクションを定期的にクリーニング/パージするだけでなく、CM DB(MSSQL:sp_updatestats)の統計をすばやく更新すると、一般的なGUIのパフォーマンスが向上します。

Tridionのメンテナンスドキュメントはこちらで確認できます

于 2012-05-15T13:33:47.000 に答える
0

これは、発行キューにあるアイテム'N'の数が原因である可能性があると思います。In-Progress

一度にすべてのアイテムを削除しようとしないでください。

次の順序でキュー アイテムを削除することをお勧めします:-

  1. 失敗した
  2. 進行中

これに加えて、たった今、1 つの修正プログラムを見ました。

Hotfix: CM_2009.1.74381

これを見てください。

于 2012-05-15T08:13:40.560 に答える
0

何億ものアイテムをキューにダンプする前の CM データベースのバックアップを復元します。きれいではありませんが、そこにたどり着くかもしれません。

それ以外の場合は、Tridion サポートに、これを解決するために許可する可能性のあるデータベース スクリプトについて相談してください。

于 2012-05-15T21:23:35.353 に答える