自分のタスクやタスク レポートにタスクが重複して表示される

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問

プラットフォームについて: Data Center - この記事は、Data Center プラットフォームのアトラシアン製品に適用されます。

このナレッジベース記事は製品の Data Center バージョン用に作成されています。Data Center 固有ではない機能の Data Center ナレッジベースは、製品のサーバー バージョンでも動作する可能性はありますが、テストは行われていません。サーバー*製品のサポートは 2024 年 2 月 15 日に終了しました。サーバー製品を利用している場合は、アトラシアンのサーバー製品のサポート終了のお知らせページにて移行オプションをご確認ください。

*Fisheye および Crucible は除く

症状

[自分のタスク] タブやページ上のタスク レポート マクロで、タスク エントリが重複して表示される。

タスクを含むページに移動すると、タスクが正しい数で表示される。

診断

次の SQL クエリを実行して、インスタンス内に存在する重複タスクの数を確認できます。

このクエリは、タスクが表示されるコンテンツの ID に一致するタスク ID に基づいて重複タスクを発見します。

注意: このクエリでは、元のタスクがページから削除され、重複の 1 つのみが残っているものは見つけられません。

postgres
select count(distinct t1."GLOBAL_ID")
from "AO_BAF3AA_AOINLINE_TASK" t2, "AO_BAF3AA_AOINLINE_TASK" t1
where t1."ID" = t2."ID" and t1."CONTENT_ID" = t2."CONTENT_ID" and t1."GLOBAL_ID" < t2."GLOBAL_ID";
Mysql、Oracle、MSSQL
select count(distinct t1.GLOBAL_ID)
from AO_BAF3AA_AOINLINE_TASK t2, AO_BAF3AA_AOINLINE_TASK t1
where t1.ID = t2.ID and t1.CONTENT_ID = t2.CONTENT_ID and t1.GLOBAL_ID < t2.GLOBAL_ID;


原因

タスクの重複は、タスクを含むページが並べ替えられたり、同じスペース内で別のページが並べ替えられると発生します。

また、タスクを含むブログ投稿があり、そこに別のページへのリンクが含まれ、リンクされたページが並べ替えられたときにも発生します。

詳細については次のバグ レポートをご確認ください。

CONF-33886 - Getting issue details... STATUS

CONFSERVER-58020 - Getting issue details... STATUS

ソリューション

この手順ではデータベースからコンテンツを削除します。安全のため、変更を行う前に必ず Confluence データベースのバックアップを取得してください。

このクエリは、コンテンツの ID に一致するタスク ID に基づいて重複タスクを発見し、その後重複を削除します。

注意: これはすべての重複を削除するわけではありません。特にタスクがページから削除され、タスクの 1 つのコピーのみが残っている場合が該当します。完全な実装を現在準備中です。

postgres
delete from "AO_BAF3AA_AOINLINE_TASK" where "GLOBAL_ID" in (select t1."GLOBAL_ID" from "AO_BAF3AA_AOINLINE_TASK" t1, "AO_BAF3AA_AOINLINE_TASK" t2 where t1."ID" = t2."ID" and t1."CONTENT_ID" = t2."CONTENT_ID" and ((t1."UPDATE_DATE" is null and t2."UPDATE_DATE" is null and t1."GLOBAL_ID" < t2."GLOBAL_ID") or (t1."UPDATE_DATE" is null and t2."UPDATE_DATE" is not null) or (t1."UPDATE_DATE" is not null and t2."UPDATE_DATE" is not null and t1."UPDATE_DATE" < t2."UPDATE_DATE")));
oracle、mssql
delete from AO_BAF3AA_AOINLINE_TASK where GLOBAL_ID in (select t1.GLOBAL_ID from AO_BAF3AA_AOINLINE_TASK t1, AO_BAF3AA_AOINLINE_TASK t2 where t1.ID = t2.ID and t1.CONTENT_ID = t2.CONTENT_ID and ((t1.UPDATE_DATE is null and t2.UPDATE_DATE is null and t1.GLOBAL_ID < t2.GLOBAL_ID) or (t1.UPDATE_DATE is null and t2.UPDATE_DATE is not null) or  (t1.UPDATE_DATE is not null and t2.UPDATE_DATE is not null and t1.UPDATE_DATE < t2.UPDATE_DATE)))
MySQL
 delete t1 from AO_BAF3AA_AOINLINE_TASK t1, AO_BAF3AA_AOINLINE_TASK t2 where t1.ID = t2.ID and t1.CONTENT_ID = t2.CONTENT_ID and ((t1.UPDATE_DATE is null and t2.UPDATE_DATE is null and t1.GLOBAL_ID < t2.GLOBAL_ID) or (t1.UPDATE_DATE is null and t2.UPDATE_DATE is not null) or (t1.UPDATE_DATE is not null and t2.UPDATE_DATE is not null and t1.UPDATE_DATE < t2.UPDATE_DATE));

最終更新日: 2024 年 12 月 4 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.