Automation for Jira - すべてのルールが「進行中」ステータスのまま停止する
プラットフォームについて: Data Center のみ。 - この記事は、 Data Center プラットフォーム。
この KB は Data Center バージョンの製品用に作成されています。Data Center 固有ではない機能の Data Center KB は、製品のサーバー バージョンでも動作する可能性はありますが、テストは行われていません。 Server* 製品のサポートは 2024 年 2 月 15 日に終了しました。Server 製品を実行している場合は、 アトラシアン Server サポート終了 のお知らせにアクセスして、移行オプションを確認してください。
*Fisheye および Crucible は除く
要約
監査ログによると、「進行中」ステータスのまま停止しているために、すべての自動化ルールが完了しません。
さらに、「スケジュール設定済み」トリガーを使用するルールで [トリガーの自動化] ボタンを使用すると、以下のエラーが原因でルールが完了しません。
1
There was an unexpected error while executing rule. Please contact your administrator.
このナレッジ ベース記事の目的は、これらの症状の考えられる根本原因、その特定方法、および問題の解決方法を説明することです。
診断
Jira アプリケーション ログで次のエラーを探してください。これは、Jira アプリケーションが Automation for Jira で使用される DB テーブル AO_589059_RULE_STAT に新しい行を挿入できていないことを示しています。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2023-11-07 08:33:27,425+0000 http-nio-8080-exec-32 ERROR admin 513x394x1 e7r8xg 172.29.213.228,172.50.0.2 /rest/cb-automation/latest/project/GLOBAL/rule/1/execute [c.c.j.p.a.service.execution.JiraThreadLocalExecutor] Unexpected error in thread local executor with actorKey 'admin'.
com.querydsl.core.QueryException: Caught SQLIntegrityConstraintViolationException for insert into "AO_589059_RULE_STAT" ("AUDIT_ID", "CATEGORY", "CREATED", "DURATION", "RULE_ID", "EVENT_HASH", "QUEUED_ITEM_COUNT")
values (?, ?, ?, ?, ?, ?, ?)
at com.querydsl.sql.DefaultSQLExceptionTranslator.translate(DefaultSQLExceptionTranslator.java:50)
at com.querydsl.sql.Configuration.translate(Configuration.java:459)
at com.querydsl.sql.dml.SQLInsertClause.execute(SQLInsertClause.java:445)
at com.codebarrel.jira.plugin.automation.store.JiraRuleStatisticsStore.lambda$storeRuleStatistic$1(JiraRuleStatisticsStore.java:78)
at com.codebarrel.data.api.jira.JiraDbConnectionManager.lambda$executeWithRetry$1(JiraDbConnectionManager.java:55)
at com.atlassian.fugue.retry.RetrySupplier.get(RetrySupplier.java:93)
at com.codebarrel.data.api.jira.JiraDbConnectionManager.lambda$executeWithRetry$2(JiraDbConnectionManager.java:55)
...
Caused by: java.sql.SQLIntegrityConstraintViolationException: ORA-01400: cannot insert NULL into ("ATLASSIAN"."AO_589059_RULE_STAT"."ID")
次の手順に従って、DB テーブル AO_589059_RULE_STAT が欠如していないかどうか、Oracle トリガーを確認します。
Jira アプリケーションがデータベースへの接続に使用するのと同じユーザーで Oracle DB にログインし、次の SQL クエリを実行します。
1
select * from user_triggers where "TRIGGER_NAME" = 'AO_589059_RULE_STAT_ID_autoinc';
通常、このクエリは下に示すような行を返します。ここから、テーブル AO_589059_RULE_STAT が使用する user_triggers テーブルにトリガーがあることがわかります。
1 2 3 4 5 6 7
"TRIGGER_NAME","TRIGGER_TYPE","TRIGGERING_EVENT","TABLE_OWNER","BASE_OBJECT_TYPE","TABLE_NAME","COLUMN_NAME","REFERENCING_NAMES","WHEN_CLAUSE","STATUS","DESCRIPTION","ACTION_TYPE","TRIGGER_BODY","CROSSEDITION","BEFORE_STATEMENT","BEFORE_ROW","AFTER_ROW","AFTER_STATEMENT","INSTEAD_OF_ROW","FIRE_ONCE","APPLY_SERVER_ONLY" "AO_589059_RULE_STAT_ID_autoinc","BEFORE EACH ROW","INSERT","ATLASSIAN","TABLE","AO_589059_RULE_STAT",,"REFERENCING NEW AS NEW OLD AS OLD",,"ENABLED","""AO_589059_RULE_STAT_ID_autoinc"" BEFORE INSERT ON ""AO_589059_RULE_STAT"" FOR EACH ROW ","PL/SQL ","BEGIN SELECT ""AO_589059_RULE_STAT_ID_SEQ"".NEXTVAL INTO :NEW.""ID"" FROM DUAL; ","NO","NO","NO","NO","NO","NO","YES","NO"
このクエリで行が返されない場合は、このナレッジ ベース記事に該当しているため、「原因」セクションと「解決策」セクションに進んでください。
原因
AO_589059_RULE_STAT テーブルの Oracle DB トリガーがないため、Jira アプリケーションがこのテーブルに新しい行を挿入できず、SQL 例外が発生します。Jira ログには「エラー メッセージ = ORA-01400: ("ATLASSIAN"."AO_589059_RULE_STAT"."ID") に NULL を挿入できません」が記録されます。
通常、このトリガーは、Automation for Jira を使用して新しく Jira をインストールした場合は既定で存在するはずです。しかし、トリガーが Oracle DB で誤って手動で削除された可能性があります。これは Jira の制御外です。
ソリューション
このエラーを修正するには、次の手順に従って、Oracle DB で見つからないトリガーを手動で再作成する必要があります。
Jira アプリケーションがデータベースへの接続に使用するのと同じユーザーで Oracle DB にログインし、次の SQL クエリを実行します。
次のコマンドを実行して、見つからないトリガーを再作成します。
1
2
3
4
5
6
create or replace TRIGGER "AO_589059_RULE_STAT_ID_autoinc"
BEFORE INSERT
ON "AO_589059_RULE_STAT" FOR EACH ROW
BEGIN
SELECT "AO_589059_RULE_STAT_ID_SEQ".NEXTVAL INTO :NEW."ID" FROM DUAL;
END;
次の SQL クエリを実行して、何らかの結果が得られることを確認します。
1
select * from user_triggers where "TRIGGER_NAME" = 'AO_589059_RULE_STAT_ID_autoinc';
再度いくつかの自動化ルールをトリガーしてみて、正常に完了することをご確認ください
この内容はお役に立ちましたか?