Project

General

Profile

Edit Actions

その他問い合わせ #3310

closed

Windows Agent で異なるジョブネットが同時刻に起動するとエラーになる

Added by Anonymous over 4 years ago. Updated over 1 year ago.

Status:
終了
Priority:
通常
Assignee:
-
Start date:
01/30/2020

Description

お世話になります。

 HinemosジョブネットをJob Arrangerに移行するプロジェクトで
ジョブネットの移行検証を行っておりますが、課題が発生したので
質問させていただけますか。

◆環境

・CentOS 7.7
・Job Arranger Server v4.1.0 (revision 7506)
・Job Arranger Agent 4.1.0 (Windows Server 2016)
・Job Arranger Manager 4.1.0

◆課題

・Windowsで異なる複数のジョブネットを同時刻に
 スケジュール起動するとエラーが発生するときがある

 ※必ず発生しないが、3多重や4多重に増えると発生
  しやすいが、発生頻度は少ないものの、多重実行
  していないときも類似の障害が発生

 ※実装方法を変えて色々と検証しましたが、どの実装も
  エラーをなくすことはできませんでした。

◆要件

・移行するジョブネットの設定ミスを気づきやすくするため、
 ICON_STATUSでサーバー状態、設定ミスを検知したい

・コマンドファイルの配置ミスに気付きやすくするため、
 JOB_EXIT_CDでジョブのエラーや格納パスの設定ミスを検知したい

・異なるジョブネットが同時刻に起動される可能性があるため、
 並行してジョブネットを実行したい

◆質問

①下記のチケットでSingle Objectでの起動が仕様と見つけました。
 「同時実行可とする対応を実施しているところです」の回答が
 ありましたが、リリースされたでしょうか。
 ※リリースノートでは見つけられませんでした。

https://www.jobarranger.info/redmine/issues/2920

「WindowsAgentのジョブ実行プロセスでは、同一サーバ内はSingleObjectでの起動」が仕様

②上記①のリリースが未定の場合の回避策はエージェントレスを
 検討する以外にないでしょうか。

③can not find value_nameはどのような時に発生するでしょうか。

④エラーexit_code 64512はどのようなエラーでしょうか

 ※①②がご回答いただき、③④にお時間かかるようでしたら
  ご回答いただけなくても結構です。

  お忙しいところ大変申し訳ございませんが、
 ご教授いただけるでしょうか。


Files

JobArrangerforZabbixジョブネット移行(実装課題)2020-01-30.zip (1.39 MB) JobArrangerforZabbixジョブネット移行(実装課題)2020-01-30.zip Anonymous, 01/31/2020 08:29 AM
2020-02-29_並行実行ジョブネット障害調査.zip (260 KB) 2020-02-29_並行実行ジョブネット障害調査.zip Anonymous, 03/03/2020 08:13 AM
mysqldump-openstack-all-databases_2020-02-28.zip.001 (2 MB) mysqldump-openstack-all-databases_2020-02-28.zip.001 Anonymous, 03/03/2020 08:13 AM
mysqldump-openstack-all-databases_2020-02-28.zip.002 (2 MB) mysqldump-openstack-all-databases_2020-02-28.zip.002 Anonymous, 03/03/2020 08:14 AM
mysqldump-openstack-all-databases_2020-02-28.zip.003 (2 MB) mysqldump-openstack-all-databases_2020-02-28.zip.003 Anonymous, 03/03/2020 08:14 AM
mysqldump-openstack-all-databases_2020-02-28.zip.004 (2 MB) mysqldump-openstack-all-databases_2020-02-28.zip.004 Anonymous, 03/03/2020 08:14 AM
mysqldump-openstack-all-databases_2020-02-28.zip.005 (2 MB) mysqldump-openstack-all-databases_2020-02-28.zip.005 Anonymous, 03/03/2020 08:14 AM
mysqldump-openstack-all-databases_2020-02-28.zip.006 (2 MB) mysqldump-openstack-all-databases_2020-02-28.zip.006 Anonymous, 03/03/2020 08:15 AM
mysqldump-openstack-all-databases_2020-02-28.zip.007 (2 MB) mysqldump-openstack-all-databases_2020-02-28.zip.007 Anonymous, 03/03/2020 08:22 AM
mysqldump-openstack-all-databases_2020-02-28.zip.008 (2 MB) mysqldump-openstack-all-databases_2020-02-28.zip.008 Anonymous, 03/03/2020 08:22 AM
mysqldump-openstack-all-databases_2020-02-28.zip.009 (2 MB) mysqldump-openstack-all-databases_2020-02-28.zip.009 Anonymous, 03/03/2020 08:23 AM
mysqldump-openstack-all-databases_2020-02-28.zip.010 (2 MB) mysqldump-openstack-all-databases_2020-02-28.zip.010 Anonymous, 03/03/2020 08:23 AM
mysqldump-openstack-all-databases_2020-02-28.zip.011 (2 MB) mysqldump-openstack-all-databases_2020-02-28.zip.011 Anonymous, 03/03/2020 08:23 AM
mysqldump-openstack-all-databases_2020-02-28.zip.012 (2 MB) mysqldump-openstack-all-databases_2020-02-28.zip.012 Anonymous, 03/03/2020 08:23 AM
mysqldump-openstack-all-databases_2020-02-28.zip.013 (2 MB) mysqldump-openstack-all-databases_2020-02-28.zip.013 Anonymous, 03/03/2020 08:24 AM
mysqldump-openstack-all-databases_2020-02-28.zip.014 (2 MB) mysqldump-openstack-all-databases_2020-02-28.zip.014 Anonymous, 03/03/2020 08:24 AM
mysqldump-openstack-all-databases_2020-02-28.zip.015 (2 MB) mysqldump-openstack-all-databases_2020-02-28.zip.015 Anonymous, 03/03/2020 08:24 AM
mysqldump-openstack-all-databases_2020-02-28.zip.016 (2 MB) mysqldump-openstack-all-databases_2020-02-28.zip.016 Anonymous, 03/03/2020 08:24 AM
mysqldump-openstack-all-databases_2020-02-28.zip.017 (2 MB) mysqldump-openstack-all-databases_2020-02-28.zip.017 Anonymous, 03/03/2020 08:24 AM
mysqldump-openstack-all-databases_2020-02-28.zip.018 (2 MB) mysqldump-openstack-all-databases_2020-02-28.zip.018 Anonymous, 03/03/2020 08:25 AM
mysqldump-openstack-all-databases_2020-02-28.zip.019 (2 MB) mysqldump-openstack-all-databases_2020-02-28.zip.019 Anonymous, 03/03/2020 08:25 AM
mysqldump-openstack-all-databases_2020-02-28.zip.020 (2 MB) mysqldump-openstack-all-databases_2020-02-28.zip.020 Anonymous, 03/03/2020 08:25 AM
mysqldump-openstack-all-databases_2020-02-28.zip.021 (2 MB) mysqldump-openstack-all-databases_2020-02-28.zip.021 Anonymous, 03/03/2020 08:25 AM
mysqldump-openstack-all-databases_2020-02-28.zip.022 (2 MB) mysqldump-openstack-all-databases_2020-02-28.zip.022 Anonymous, 03/03/2020 08:25 AM
mysqldump-openstack-all-databases_2020-02-28.zip.023 (2 MB) mysqldump-openstack-all-databases_2020-02-28.zip.023 Anonymous, 03/03/2020 08:26 AM
mysqldump-openstack-all-databases_2020-02-28.zip.024 (2 MB) mysqldump-openstack-all-databases_2020-02-28.zip.024 Anonymous, 03/03/2020 08:26 AM
mysqldump-openstack-all-databases_2020-02-28.zip.025 (2 MB) mysqldump-openstack-all-databases_2020-02-28.zip.025 Anonymous, 03/03/2020 08:26 AM
mysqldump-openstack-all-databases_2020-02-28.zip.026 (2 MB) mysqldump-openstack-all-databases_2020-02-28.zip.026 Anonymous, 03/03/2020 08:26 AM
mysqldump-openstack-all-databases_2020-02-28.zip.027 (2 MB) mysqldump-openstack-all-databases_2020-02-28.zip.027 Anonymous, 03/03/2020 08:26 AM
mysqldump-openstack-all-databases_2020-02-28.zip.028 (2 MB) mysqldump-openstack-all-databases_2020-02-28.zip.028 Anonymous, 03/03/2020 08:27 AM
mysqldump-openstack-all-databases_2020-02-28.zip.029 (2 MB) mysqldump-openstack-all-databases_2020-02-28.zip.029 Anonymous, 03/03/2020 08:27 AM
mysqldump-openstack-all-databases_2020-02-28.zip.030 (2 MB) mysqldump-openstack-all-databases_2020-02-28.zip.030 Anonymous, 03/03/2020 08:27 AM
mysqldump-openstack-all-databases_2020-02-28.zip.031 (1.11 MB) mysqldump-openstack-all-databases_2020-02-28.zip.031 Anonymous, 03/03/2020 08:27 AM

Updated by Anonymous over 4 years ago

たまに来る人です。

質問の内容と添付ファイルの内容がちょっと異なりましたので
私は添付ファイルの説明をします。
ご参考までに

1.”指定されたパスが見つかりません。”のエラーコードが異なる
下記はwindows 2016とwindows 10テストです。

Microsoft Windows [Version 10.0.14393]
(c) 2016 Microsoft Corporation. All rights reserved.

C:\Users\Administrator>ver

Microsoft Windows [Version 10.0.14393]

C:\Users\Administrator>c:\tmp\test.sh
指定されたパスが見つかりません。 <= そもそもそのファイルは存在しません。

C:\Users\Administrator>echo %errorlevel%
3

C:\Users\Administrator>

Microsoft Windows [Version 10.0.18362.592]
(c) 2019 Microsoft Corporation. All rights reserved.

C:\Users\work>ver

Microsoft Windows [Version 10.0.18362.592]

C:\Users\work>c:\tmp\test.sh  <= そもそもそのファイルは存在しません。
'c:\tmp\test.sh' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

C:\Users\work>echo %errorlevel%
9009 <= 上記とエラーコードが異なる

C:\Users\work>

同じテストですがエラー文言とerrorlevelが異なります。
私はwindows 2008サーバにてEドライブのパスが間違っているのにerrorlevelが0になる経験もありました。
エラー文言は”指定されたパスが見つかりません。”でした。
匿名さんと同じ現象だと思いますのでコマンドからご確認お願い致します。
対策、最新windows patchを

2.9009エラーコードはどこからくるものか?
上記にもありますがコマンドが間違った場合そのエラーコードが見られます。
C:\Users\Administrator>test
'test' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

C:\Users\Administrator>echo %errorlevel%
9009

C:\Users\Administrator>
対策、正しいコマンド発行お願い致します。

3.expr $ICON_STATUS + $JOB_EXIT_CD = +
そもそもJOB_EXIT_CDとICON_STATUSはグローバル変数ですので計算アイテムで利用することは無理だと思います。
並列処理で利用する場合上書きされますのでご注意を・・・
can not find value_nameはまだ生成されてないのに他のところ使われているエラー

私が見たところです。

以上です。

Actions #3

Updated by 保守サポート 担当 over 4 years ago

  • Status changed from 新規登録 to 受付完了

Updated by 保守サポート 担当 over 4 years ago

  • Status changed from 受付完了 to 回答中

ジョブアレンジャーのご利用ありがとうございます。

質問について回答いたします。
①②

※リリースノートでは見つけられませんでした。

2018-07-20 : Version 3.4.2 にて対応は完了しております。
#2920 の最終回答は2018-06-29で、その直後のWindowsAgent改訂版での対応です。

can not find value_nameはどのような時に発生するでしょうか。

使用する変数が存在しないときに出るエラーです。
匿名ユーザーの方のご指摘が適切で、グローバル変数を更新することはできません。

エラーexit_code 64512はどのようなエラーでしょうか

このエラーコードはシステムで発生したエラーコードをそのままJAZで返しているものです。
③のような処理エラーに対して出されるようです。

★「たまに来る人」様、有益なご指摘有難うございました。

速やかな返信のためにサポート契約をご検討頂ければ幸甚です。

宜しくお願い致します。

Updated by Anonymous over 4 years ago

たまに来る人さん、保守サポートさん
ご返信ありがとうございます。

①「同時実行可とする対応を実施しているところです」のAgentリリース

2018-07-20 : Version 3.4.2 にて対応は完了しております。
#2920 の最終回答は2018-06-29で、その直後のWindowsAgent改訂版での対応です。

  複数のジョブネットの同時実行に対応済みで認識しました。
  同時実行対応に伴い、下記のような点で注意すべきことはございますか。
  ・ジョブコントローラ変数の参照範囲
   後続ジョブネットのみ参照可能、並行ジョブネットは参照できないなど
  ・ジョブコントローラ変数の更新可否
   任意のジョブコントローラ変数は更新だが、既存のジョブコントローラ変数は更新不可など
  ・ジョブコントローラ変数の生成、参照、消滅
   生成はジョブアイコン実行時または、変数アイコンで定義したときなど
   参照は同一ジョブネットIDとその後続のジョブネットIDのみなど
   消滅は生成ジョブネットIDと後続ジョブネットIDが終了したときなど
  ・親ジョブネットへのジョブコントローラ変数の引継ぎ可否
   子ジョブネットから親ジョブネットへジョブコントローラ変数は引き継げないなど

③can not find value_nameはどのような時に発生するでしょうか。

使用する変数が存在しないときに出るエラーです。
匿名ユーザーの方のご指摘が適切で、グローバル変数を更新することはできません。

  ジョブアイコンを実行した直後、ICON_STATUS=2が設定されますが、
  直後のIFアイコンでICON_STATUSを参照すると下記エラーが発生することがあります。
  can not find inner_job_id or value_name
  ジョブアイコン実行直後でジョブコントローラ変数は存在すると認識しておりますが、
  上記エラーが発生する場合、どのような状況が考えられるでしょうか。
  なお、ICON_STATUSは参照のみ行い、更新はしておりません。

  変数アイコンで定義した任意のジョブコントローラ変数は
  更新できないのでしょうか。
  異なるジョブネットIDが並行実行するとエラーになることもありますが、
  意図したとおり正常に動作する頻度の方が多いです。

④エラーexit_code 64512はどのようなエラーでしょうか

このエラーコードはシステムで発生したエラーコードをそのままJAZで返しているものです。
③のような処理エラーに対して出されるようです。

  原因調査のため、exit_code 64512を返しているプロセスなどを
  特定することは可能でしょうか

速やかな返信のためにサポート契約をご検討頂ければ幸甚です。

 はい。検討しておりましたが、現時点で未契約で申し訳ありません。

    以上、お願いします。

Updated by Anonymous over 4 years ago

ご担当者さま

  上記、一週間経ってご返信がありませんが、
 サポート未契約なので回答なしでしょうか。

Updated by 保守サポート 担当 over 4 years ago

詳細についてご記載の返信ありがとうございました。

JobArrangerのお問い合わせにつきまして、弊社ではご契約ユーザ様からの問合せを優先で対応しております。
本サイトでの回答についてお時間を頂くこともございます点、何卒ご理解いただければ幸甚です。

③can not find value_nameはどのような時に発生するでしょうか。

使用する変数が存在しないときに出るエラーです。
匿名ユーザーの方のご指摘が適切で、グローバル変数を更新することはできません。

  ジョブアイコンを実行した直後、ICON_STATUS=2が設定されますが、
  直後のIFアイコンでICON_STATUSを参照すると下記エラーが発生することがあります。
  can not find inner_job_id or value_name
  ジョブアイコン実行直後でジョブコントローラ変数は存在すると認識しておりますが、
  上記エラーが発生する場合、どのような状況が考えられるでしょうか。
  なお、ICON_STATUSは参照のみ行い、更新はしておりません。

can not find value_name が使用する変数が存在しないときに出るエラー、ということは正しいです。
確認では、頂いた資料のP.13を参考にし、計算アイコンの前のジョブがエラーになっていることに着目しました。
このP.13のジョブはホストに接続できずに処理エラー(ICON_STATUS=2)になっており、ジョブは実行されていません。
結果ジョブの戻り値であるJOB_EXIT_CD には値が入っていません。
ですので、後続の計算アイコンの ICON_STATUS + JOB_EXIT_CD の計算(P.15を確認しました)で、
変数が存在しない為 can not find inner_job_id or value_name が出ます。

  変数アイコンで定義した任意のジョブコントローラ変数は
  更新できないのでしょうか。
  異なるジョブネットIDが並行実行するとエラーになることもありますが、
  意図したとおり正常に動作する頻度の方が多いです。

任意のジョブコントローラ変数は更新は可能です。
但し、同一ジョブネットで一つの変数を複数の箇所で更新することは適当ではありません。
その更新タイミングによってエラーが発生します。特に並列フローの更新でエラーの可能性が高いです。

④エラーexit_code 64512はどのようなエラーでしょうか

このエラーコードはシステムで発生したエラーコードをそのままJAZで返しているものです。
③のような処理エラーに対して出されるようです。

  原因調査のため、exit_code 64512を返しているプロセスなどを
  特定することは可能でしょうか

弊社環境でも以下はほぼ同時に発生することを確認しております。計算アイコンのexprでの発生と思われます。

[ERROR] [JARUNICONCALC200004] In jarun_icon_calc() can not get value. command: expr $ICON_STATUS \+ $JOB_EXIT_CD
[ERROR] [JARUNICONCALC200005] In jarun_icon_calc() exit_code: 64512

最初のご質問については、先ずは上記を参考にして頂けますか。
実際の「生成、参照、消滅」などの動きにつきましては、実行ジョブ詳細上のそれぞれのアイコンの変数表示で前後の値状況がご確認頂けます。

速やかな返信のためにサポート契約をご検討頂ければ幸甚です。

Updated by Anonymous over 4 years ago

お忙しい中ご回答ありがとうございます。

JobArrangerのお問い合わせにつきまして、弊社ではご契約ユーザ様からの問合せを優先で対応しております。
本サイトでの回答についてお時間を頂くこともございます点、何卒ご理解いただければ幸甚です。

 はい。承知しておりますが、未契約なので受付されたか否か
 判断できず心配しておりました。

③can not find value_nameはどのような時に発生するでしょうか。

can not find value_name が使用する変数が存在しないときに出るエラー、ということは正しいです。
確認では、頂いた資料のP.13を参考にし、計算アイコンの前のジョブがエラーになっていることに着目しました。
このP.13のジョブはホストに接続できずに処理エラー(ICON_STATUS=2)になっており、ジョブは実行されていません。
結果ジョブの戻り値であるJOB_EXIT_CD には値が入っていません。
ですので、後続の計算アイコンの ICON_STATUS + JOB_EXIT_CD の計算(P.15を確認しました)で、
変数が存在しない為 can not find inner_job_id or value_name が出ます。

 P.13とP.15は「exit_code:64512」エラーを記載しております。
 「can not find inner_job_id or value_name」エラーは
 P.17に記載しておりますが、参照ページは正しいでしょうか。

  P.13 計算アイコンで原因不明のエラー発生
  P.15 回避策を実施したが、並行処理で64512が発生
  P.17 IFアイコンでもエラー発生

 上記の矛盾を置いといての確認ですが、P.13とP.15のいずれも、
 CAL-1アイコンのBefore variableで変数に値が入っていること
 を確認しております。

  ERROR_COUNT = 0
  ICON_STATUS = 2
  JOB_EXIT_CD = 0

 しかし、CAL-1のAfter variableで上記のジョブコントローラ
 変数が存在しないので、CAL-1アイコン内部で不具合が発生
 したと考えております。

 「can not find inner_job_id or value_name」を回避すべく
 下記の実装を試みましたがエラーは変わりません。(P.15)

 ・並行実行の影響を考慮しERROR_COUNTをERROR_COUNT1318に変更
  ⇒ERROR_COUNT1318はジョブネットAでのみ参照、更新
   ジョブネットBはERROR_COUNT1318を参照しない

 ・ジョブコントローラ変数を変数アイコンで定義し0に初期化
  ⇒ジョブネット開始直後に定義するので不具合で消滅しない
   限り同一ジョブネット内で参照できるはず

 

任意のジョブコントローラ変数は更新は可能です。
但し、同一ジョブネットで一つの変数を複数の箇所で更新することは適当ではありません。
その更新タイミングによってエラーが発生します。特に並列フローの更新でエラーの可能性が高いです。

 上記のご説明ではジョブネットAで作成したジョブコント
 ローラ変数は他のジョブネットBから参照、更新できる
 仕様と受け取れますが、ジョブネットAとジョブネットB
 で同一のメモリ空間を共有しているが、排他制御ができて
 いないということでしょうか。

 現状、P.17の実装でエラーが発生しているため困っています。
 既存のジョブコントローラ変数を参照しているだけなので
 これ以上、シンプルなジョブネットでエラー判断する実装が
 思いつきません。回避する方法はないでしょうか。

 ・任意のジョブコントローラ変数は使用していない
 ・IFアイコンBefore variableでICON_STATUS = 2の戻り値を確認
 ・IFアイコン内部で「can not find inner_job_id or value_name」発生

④エラーexit_code 64512はどのようなエラーでしょうか

弊社環境でも以下はほぼ同時に発生することを確認しております。計算アイコンのexprでの発生と思われます。

 ありがとうございます。こちらの想定と同じです。

実際の「生成、参照、消滅」などの動きにつきましては、実行ジョブ詳細上のそれぞれのアイコンの変数表示で前後の値状況がご確認頂けます。

 何度かジョブネットを修正して「生成、参照、消滅」などの
 動きを予想していますが検証が難しいこともあり、明確な
 仕様があればご提示いただきたいです。

  ・ジョブコントローラ変数の参照範囲
   後続ジョブネットのみ参照可能、並行ジョブネットは参照できないなど
  ・ジョブコントローラ変数の更新可否
   任意のジョブコントローラ変数は更新だが、既存のジョブコントローラ変数は更新不可など
  ・ジョブコントローラ変数の生成、参照、消滅
   生成はジョブアイコン実行時または、変数アイコンで定義したときなど
   参照は同一ジョブネットIDとその後続のジョブネットIDのみなど
   消滅は生成ジョブネットIDと後続ジョブネットIDが終了したときなど
  ・親ジョブネットへのジョブコントローラ変数の引継ぎ可否
   子ジョブネットから親ジョブネットへジョブコントローラ変数は引き継げないなど

速やかな返信のためにサポート契約をご検討頂ければ幸甚です。

 プロジェクトマネジメントからは年間数百万の契約費のため、
 締結しないと返答がありました。

Updated by Anonymous over 4 years ago

通りすがりの人です。

ご質問の内容を見ると書いた通りだと思います。
要約すると
Cannot send data:inner_jobid [126203], message [hostname 'IRPPWBSVA01' does not match Hostname]
ホストに接続できなくて起きるエラーです。ホストに接続ができないから$JOB_EXIT_CD値はないですね。
そしたら計算アイテムの計算ができません。

JOB_EXIT_CDはマニュアルに書いた通り"ジョブの戻り値"です。ジョブが実行できなかったので戻り値はないです。
https://www.jobarranger.info/jaz/reference-manual_3.2/variable_lists.html

戻り値がない状態で計算アイテムを実行すると「can not find inner_job_id or value_name」エラーとexit_code: 64512エラーが起きます。

私もgoogleさんに"job Arranger ジョブコントローラ"に関して検索してみました。
https://www.jobarranger.info/jaz/operation-manual_1.3/05jobnet-variable.html
こんな内容がありました。仕様だと思います。

OSSの良いところはソースとドキュメントがオープンしているのでちょっと調べてみてはどうですか?

以上、ご参考まで

Updated by Anonymous over 4 years ago

通りすがりの人さん

ご丁寧にありがとうございます。

  現状、困っているの下記のとおりで、計算アイコンは
 使わないジョブネットで実装しています。

 現状、P.17の実装でエラーが発生しているため困っています。
 既存のジョブコントローラ変数を参照しているだけなので
 これ以上、シンプルなジョブネットでエラー判断する実装が
 思いつきません。回避する方法はないでしょうか。

 ・任意のジョブコントローラ変数は使用していない
 ・IFアイコンBefore variableでICON_STATUS = 2の戻り値を確認
 ・IFアイコン内部で「can not find inner_job_id or value_name」発生

保守サポートさん

私もgoogleさんに"job Arranger ジョブコントローラ"に関して検索してみました。
https://www.jobarranger.info/jaz/operation-manual_1.3/05jobnet-variable.html

  並行実行したときのジョブコントローラ変数の仕様はわかるでしょうか。

Updated by 保守サポート 担当 over 4 years ago

本件大変にお待たせしまして恐縮です。

弊社でも、P.17のエラー ケースにつきまして、以下のように同様のアイコン設定をしたジョブネットを並行稼働させて、しばらく再現を試みました。

■ジョブネット1

START-->ジョブ1-->IF分岐1--false-->END1
                        --true--->END2

ジョブ1では、必ず以下のエラーを発生させ、処理継続。
 [ERROR] [JARUNICONJOB200012] Cannot send data:inner_jobid...

IF分岐1では、変数名にICON_STATUSを設定し、比較値も0です。

ICON_STATUS, JOB_EXIT_CDはチェックON も同様です。

「並行処理(3多重)で発生しやすい」との記載がありましたので、
並行で10多重、つまりジョブネット1を同時10個のスケジュールで5分間隔で実行しました。
しかし、かなりの期間実施しましても、IF分岐1で以下のエラーは発生しておりません。
 [ERROR] [JARUNICONIF200003] In jarun_icon_if() can not find inner_job_id: 139983 or value_name

IF分岐1アイコンはグリーンで正常に終了し、前後の変数表示を見ましても ICON_STATUSは 2 で確認ができます。

10個のスケジュールでの同時並行起動と、さらにジョブネットアイコンを使って30個までの並行同時起動も実施しましたが、結果は同じです。

また、別件になりますが、P.8のIFアイコン(IF-1、IF-2...)は、実行後にtrueとfalseの両方に分岐しているように見えます。trueとfalseの両方の先のアイコンがグリーンになっています。
この、動きはIFアイコンの動きとしては起き得ないものです。

上記2点、非常に発生が困難な事象が御社環境では頻繁に発生しております事、弊社としましても原因を探りたく存じます。
実際に御社で行ったジョブネットやスケジュール、カレンダーの設定とテーブルデータを頂くことはできますでしょうか。

「並行処理(3多重)で発生しやすい」とのことですので、再現性はあることと思います。
再現した時点での以下を想定しますが、いかがでしょうか。
・各オブジェクトのエキスポートファイル(xml)
・DBのフルダンプファイル
授受は本チケットへの添付になりますが可能でしょうか。

DBの種類、バージョン情報等もいただけますと幸甚です。

以上よろしくお願いいたします。

Updated by Anonymous over 4 years ago

お世話になります。

  調査を継続していただけていたようでありがとうございます。

上記2点、非常に発生が困難な事象が御社環境では頻繁に発生しております事、弊社としましても原因を探りたく存じます。
実際に御社で行ったジョブネットやスケジュール、カレンダーの設定とテーブルデータを頂くことはできますでしょうか。

  はい。提供可能です。

授受は本チケットへの添付になりますが可能でしょうか。

  プロジェクト情報が含まれますので適切な手段で授受できればと思いますが、
 他の手段はございますか。パスワード付きzipの添付でも大丈夫です。

DBの種類、バージョン情報等もいただけますと幸甚です。

mysql Ver 15.1 Distrib 5.5.64-MariaDB, for Linux (x86_64) using readline 5.1

MariaDB [zabbix]> show variables like 'character%';
----------------------------------------------------+ | Variable_name | Value |
----------------------------------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ |
----------------------------------------------------+
8 rows in set (0.07 sec)

MariaDB [zabbix]> show variables like 'collation%';
-------------------------------------+ | Variable_name | Value |
-------------------------------------+ | collation_connection | utf8_general_ci | | collation_database | utf8_bin | | collation_server | utf8_bin |
-------------------------------------+
3 rows in set (0.00 sec)

また、別件になりますが、P.8のIFアイコン(IF-1、IF-2...)は、実行後にtrueとfalseの両方に分岐しているように見えます。trueとfalseの両方の先のアイコンがグリーンになっています。
この、動きはIFアイコンの動きとしては起き得ないものです。

  P.8は資料に記載の通り「テスト実行」ですので、下記サイトの
 説明から正しい動作と認識しております。

Job Arranger マニュアル 3.テスト実行
https://www.jobarranger.info/document/doku.php?id=4.0:operation:jobnet:manual_execution:05jobnet-exec-test
「なお、フローの正当性のみを検査するため、条件分岐処理は同時に両方通過するように流れます。」

  P.8で気になるのはテスト実行にも関わらず、再現方法の不明な間欠障害

 ①「ジョブアイコンが黄色で終了しなかったこと」と
 ②「CAL-12でジョブコントローラ変数のERROR_COUNTに+が格納される」です。

 ただ、P.8のジョブネットはジョブコントローラ変数の仕様がわからず、
 調査もできないので、計算アイコンなど特殊な機能は使わず、極力、
 簡素なジョブネットに再設計しましたが、異常判定でIFアイコンだけは
 使わざるをえないが、IFアイコンでICON_STATUSの下記エラーが発生するのは、
 P.17のエラーケースの通りです。

 can not find inner_job_id or value_name

  繰り返しのご質問になって恐縮ですが、
「並行実行したときのジョブコントローラ変数の仕様はわかるでしょうか。」
 P.8のジョブネットは同一ジョブネット内でジョブアイコンが並列に
 実行され、同じ作りの別IDのジョブネットが三多重で実行されます。

以上、お願いします。

Updated by 保守サポート 担当 over 4 years ago

証跡データの授受についてですが、本サイトはJobArrangerのコミュニティサイトの位置付け上
添付データを含め、全て公開がルールとなっております。

匿名ユーザ様との個別のやり取りは出来かねますので、データマスク等で公開可能なデータとして添付をお願いたします。
DBを本件再現に必要なDBデータ登録に絞った環境で再現し、それ頂くなどが可能であればと思います。

P.8の件、テスト実行であった旨了解いたしました。
気になる点の①②ですが「テスト実行」の動きでは起こり得るものとご理解ください。

ジョブコントローラ変数の仕様についてですが、
変数はジョブネット直列のフロールートでは更新されても、そのフロールート内で維持されます。
並行実行したときでもそれぞれのフロールートで維持されます。
但し同時多重起動の並列実行では、保証の限りではありませんので推奨いたしません。
(これまでのところ問題となった報告事例はありませんが)

もう一点確認ですが、JobArrangerはrpmでのインストールでしょうか。
(ソースコンパイルでのインストールではないでしょうか)

以上よろしくお願いいたします。

Updated by Anonymous over 4 years ago

お世話になります。

証跡データの授受についてですが、本サイトはJobArrangerのコミュニティサイトの位置付け上
添付データを含め、全て公開がルールとなっております。

  承知しました。

  並行実行しているジョブネットは下記のとおりです。

  JN1318000
  JN1318200

  実行しているbatファイルは二つのジョブネット共にログ出力だけの
 非常にシンプルなつくりです。多重度を上げる時は同じbatファイルを
 コピーしてbatファイルIDを変更して別ジョブネットで実行しています。

P.8の件、テスト実行であった旨了解いたしました。
気になる点の①②ですが「テスト実行」の動きでは起こり得るものとご理解ください。

  3.テスト実行のマニュアルから、フローの正当性を確認したい際にテスト実行
 していますので「テスト実行の動きでは起こり得る」のは問題ではないでしょうか。

Job Arranger マニュアル 3.テスト実行
https://www.jobarranger.info/document/doku.php?id=4.0:operation:jobnet:manual_execution:05jobnet-exec-test
「ジョブネット作成直後、フローの正当性を確認したい際にテスト実行を行います。」
「ジョブアイコンは実際にエージェントまでリクエストを発行しますが、コマンドの実行は行いません。」

ジョブコントローラ変数の仕様についてですが、
変数はジョブネット直列のフロールートでは更新されても、そのフロールート内で維持されます。

  同一ジョブネット内で並行処理開始アイコンでフローが分かれたわかれた場合、
 ジョブコントローラ変数の値がどうなるか理解できません。
 P.8のCAL-5とCAL-9でフローが分かれるとジョブコントローラ変数は同じでしょうか、
 別になるのでしょうか。
 並行処理終了アイコンの後、ジョブコントローラ変数はどうなるでしょうか。

並行実行したときでもそれぞれのフロールートで維持されます。
但し同時多重起動の並列実行では、保証の限りではありませんので推奨いたしません。
(これまでのところ問題となった報告事例はありませんが)

  並行処理アイコンの後続処理でジョブコントローラ変数で動作保証しない
 ので使ってはいけないということでしょうか。

もう一点確認ですが、JobArrangerはrpmでのインストールでしょうか。
(ソースコンパイルでのインストールではないでしょうか)

  rpmからインストールしています。(4.0から4.1へバージョンアップ)

$ sudo yum install jobarranger-server-mysql-4.0.0-1.el7.x86_64.rpm
$ sudo yum install jobarranger-server-mysql-4.1.0-1.el7.x86_64.rpm

    以上、お願いします。

Updated by Anonymous over 4 years ago

お世話になります。

・DBのフルダンプファイル
授受は本チケットへの添付になりますが可能でしょうか。

 添付ファイルサイズの上限が2MBですが、アップロード圧縮しても71MBあります。
 どうすればよいでしょうか。

Updated by 保守サポート 担当 over 4 years ago

圧縮分割zipで頂けますか?
分割をまとめる際の為に利用したtool情報も頂けると助かります。

また、データを大きくしていると思われますZabbixの履歴やアクション、イベント等のデータはダンプファイルから削除しても問題ありません。
それでかなり小さくできると思います。

よろしくお願いいたします

Updated by Anonymous over 4 years ago

7zipで圧縮した各種ファイルを送ります

Updated by 保守サポート 担当 over 4 years ago

資料のご提供有難うございました。
分割で頂きましたDBファイルも検証環境に取り込み調査を開始しております。

JN1318000の2/28迄のエラー実行中の状態も確認できました。
試しに同ジョブネットを実行してみましたが、IFアイコンで分岐しました。
こちらはMariaDBの10.1を使用しております。
ご利用中のDBの以下について確認いただけますでしょうか。

・使用DBのスペック情報
・使用DBのバージョンにバク情報はないか。
・他のDB(Postgresや上位のMariaDBバージョン)環境で(データインポートし)同事象が起きるか?

こちらでも調査は継続いたします。
よろしくお願いいたします。

Updated by Anonymous over 4 years ago

お世話になります。

・使用DBのスペック情報

  評価用OpenStackに構築したため、最小構成です

  フレーバー名 m1.small
  メモリー   2GB
  仮想CPU    1仮想CPU
  ディスク   20GB

・使用DBのバージョンにバク情報はないか。

  yum updateを実施しましたが、MariaDBに関するupdateはありませんでした

centos@centos7:~$ mysql --version
mysql Ver 15.1 Distrib 5.5.64-MariaDB, for Linux (x86_64) using readline 5.1

centos@centos7:~$ sudo yum update
 <省略>
Updating : libcurl-7.29.0-54.el7_7.2.x86_64
Updating : 1:net-snmp-libs-5.7.2-43.el7_7.3.x86_64
Updating : zabbix-web-4.0.18-1.el7.noarch
Updating : zabbix-web-mysql-4.0.18-1.el7.noarch
Updating : sg3_utils-libs-1.37-18.el7_7.2.x86_64
Updating : systemd-libs-219-67.el7_7.3.x86_64
Updating : systemd-219-67.el7_7.3.x86_64
Updating : kernel-tools-libs-3.10.0-1062.12.1.el7.x86_64
Updating : kernel-tools-3.10.0-1062.12.1.el7.x86_64
Updating : zabbix-agent-4.0.18-1.el7.x86_64
Updating : zabbix-server-mysql-4.0.18-1.el7.x86_64
Updating : systemd-sysv-219-67.el7_7.3.x86_64
Updating : zabbix-proxy-mysql-4.0.18-1.el7.x86_64
Updating : sg3_utils-1.37-18.el7_7.2.x86_64
Updating : curl-7.29.0-54.el7_7.2.x86_64
Updating : python-perf-3.10.0-1062.12.1.el7.x86_64
Updating : zabbix-sender-4.0.18-1.el7.x86_64
Updating : sudo-1.8.23-4.el7_7.2.x86_64
Updating : zabbix-get-4.0.18-1.el7.x86_64
Updating : sqlite-3.7.17-8.el7_7.1.x86_64
Installing : kernel-3.10.0-1062.12.1.el7.x86_64
Updating : binutils-2.27-41.base.el7_7.2.x86_64
 <省略>

・他のDB(Postgresや上位のMariaDBバージョン)環境で(データインポートし)同事象が起きるか?

 現時点でジョブネットを移行した他の環境では発生していません

db.r5.xlarge
5.7.mysql_aurora.2.07.0

  以上、お願いします。

Actions #51

Updated by 保守サポート 担当2 over 1 year ago

  • Status changed from 回答中 to 終了
Edit Actions

Also available in: Atom PDF