操作問い合わせ #3619
完了ja_jobmain_remove_oldjob() 実行時間の変更は可能でしょうか
説明
ご担当者様
お世話になっております。
便利なソフトウェアを公開していただき感謝しております。
毎日 9:00 に起動させるジョブの起動に失敗する事象が発生しました。
この時、Agentのログには、以下のような出力がされていました。
152952:20211222:090000.286 [INFO] In ja_jobmain_remove_oldjob() delete jobid = 170478 152952:20211222:090000.304 [INFO] In ja_jobmain_remove_oldjob() delete jobid = 170480 (以下、タイムスタンプと末尾の数字以外は同一の行が131行) 153700:20211222:090001.867 [INFO] In ja_agent_begin() jobid: 193089, method: 0 152952:20211222:090001.867 [INFO] In ja_jobmain_remove_oldjob() delete jobid = 171393 153700:20211222:090001.883 [ERROR] query failed: [BEGIN IMMEDIATE;] error [cannot start a transaction within a transaction] 152952:20211222:090001.899 [INFO] In ja_jobmain_remove_oldjob() delete jobid = 171339 (同 80行) 153700:20211222:090002.913 [ERROR] query failed: [BEGIN IMMEDIATE;] error [cannot start a transaction within a transaction] (くりかえし)
Job Arranger Agent が内部的に自動実行する「古いジョブの削除処理」が大量に走ったことで、
9:00を指定したジョブネットの起動のための管理情報書き込みに失敗したのではないかと推測しました。
なお問題発生後、Agentを停止→jobarg_agentd.db* を削除→Agentを起動 にて、AgentのDBを再生成させたところ回復しました。
( #3224-5 を参考にしました)
このジョブは業務的には9:00-18:00の毎時00,15,30,45分に起動させたいのですが、再発可能性を軽減させる策として、9:00の起動のみを9:01に変えました。
しかしこれはあくまで「逃げ」の対処であって、削除処理が1分で終わる保証もないですし、できれば本来の9:00に起動したいです。
当システムでは、メンテナンス的なジョブを実施するための時間は2:00~5:00の間で1時間以上確保できます。
ここで質問です。
(1) 「ja_jobmain_remove_oldjob」は Job Arranger が自動的に実施する(ユーザ側で設定したものではない)処理で間違いないでしょうか。
(2) 上記処理の実施時間を設定ファイル等で変更可能でしょうか。
(3) その他、ジョブが起動できない現象の回避・緩和策が考えられますでしょうか。
Agentのログを添付します。
(Serverのログは、既に削除されており採取できませんでした)
システム環境は以下の通りです。
※同居させているZabbixが他システムと共通であり、これ以上バージョンを上げられない状況です。
Server
    OS: Red Hat Enterprise Linux 6系(詳細バージョン不明)
    Zabbix: 2.2.9
    DB: MySQL 5.1.73
    Job Arranger Server: 3.4
Agent
    OS: Windows Server 2016 Standard x64
    Job Arranger Agent: 3.4.1
お忙しいところ恐れ入りますが、ご回答の程宜しくお願い致します。
ファイル