自動化ルールの管理ページに異常が生じて、Jira にテンプレート エラーが表示される
プラットフォームについて: Data Center のみ。 - この記事は、 Data Center プラットフォーム。
この KB は Data Center バージョンの製品用に作成されています。Data Center 固有ではない機能の Data Center KB は、製品のサーバー バージョンでも動作する可能性はありますが、テストは行われていません。 Server* 製品のサポートは 2024 年 2 月 15 日に終了しました。Server 製品を実行している場合は、 アトラシアン Server サポート終了 のお知らせにアクセスして、移行オプションを確認してください。
*Fisheye および Crucible は除く
要約
グローバルな自動化ルールの管理ページにテンプレート エラーが表示されて、ページを使用できないだけでなく自動化ルールさえ表示できません。
エラーの例は次のとおりです。
診断
自動化ルールの管理画面にアクセスすると、次のようなテンプレート エラーが表示されます。
1
com.google.template.soy.tofu.SoyTofuException: In 'print' tag, expression "$localeString" evaluates to undefined.
そして atlassian-jira.log では、このエラーの前に次のような SQL エラーが発生します。
1
2
3
4
5
6
2021-03-17 18:07:01,345 http-nio-8080-exec-27 ERROR admin 869x15542657x3 13rfhg7 127.0.0.1 /secure/AutomationGlobalAdminAction!iframe.jspa [c.c.j.p.a.web.admin.AutomationGlobalAdminAction] Unexpected error loading global automation UI:
com.querydsl.core.QueryException: Caught SQLServerException for select "AO_589059_RULE_STATE_LATEST"."CURRENT_AUDIT_ID", "AO_589059_RULE_STATE_LATEST"."CURRENT_CATEGORY", "AO_589059_RULE_STATE_LATEST"."CURRENT_CREATED", "AO_589059_RULE_STATE_LATEST"."ID", "AO_589059_RULE_STATE_LATEST"."PREVIOUS_AUDIT_ID", "AO_589059_RULE_STATE_LATEST"."PREVIOUS_CATEGORY", "AO_589059_RULE_STATE_LATEST"."PREVIOUS_CREATED", "AO_589059_RULE_STATE_LATEST"."RULE_ID", "AO_589059_RULE_STATE_LATEST"."EXEC_COUNT"
from "dbo"."AO_589059_RULE_STATE_LATEST" "AO_589059_RULE_STATE_LATEST"
where "AO_589059_RULE_STATE_LATEST"."RULE_ID" in (?, ?, ?, ?, ........,?)
...
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: The incoming request has too many parameters. The server supports a maximum of 2100 parameters. Reduce the number of parameters and resend the request.
原因
この問題は、Automation for Jira で管理者画面を構築する際のデータベース クエリにおいて、すべての自動化ルール ID がパラメーターとして渡されるために発生します。MS SQL Server ではクエリ パラメーターが 2100 個までに制限されているため、自動化ルールが 2100 個を超えると管理者画面が壊れます。
自動化ルールは妨げられることなく実行し続けます。異常が生じるのは管理画面「のみ」です。
JIRAAUTOSERVER-241 - MS SQL で 2100 個を超える自動化ルールを作成すると、自動化の管理者画面が壊れる - ステータス: "クローズ"
ソリューション
JIRAAUTOSERVER-241 が修正され、対象のインスタンスで Automation for Jira が修正バージョンにアップデートされるまで、唯一の解決策は、データベースからいくつかの自動化ルールを直接削除して回避することです。
この KB では、Jira のデータベースから自動化ルールを手動で削除する方法を取り上げ、その手順を段階的に説明しています。数を 2100 個未満にするために、十分な数のルールを削除する必要があります。
1
select count(*) from "AO_589059_RULE_CONFIG";
この内容はお役に立ちましたか?