AutoSys

 

起動の仕方:

> . /opt/DKBautosys/Current/autouser/autosys.ksh.<マシン名> (kshの場合)

> DISPLAY=<IPアドレス>:0.0 (自分のIPアドレス)

> export DISPLAY
> autosc &

EXCEEDを立ち上げておくのを忘れずに。

 

環境変数とプロファイル:

プロファイルに環境変数を登録してそれをjilで使うことができるのだが、プロファイルの設定には注意が必要だ。

プロファイルはbourne shell(ボーン・シェル、いわゆるsh)のシンタックスに従わなくてはならない。

これを簡単にテストするには、

Ø       exec /bin/sh

Ø       . <プロファイル名>

として、プロファイルがshでソースできるか調べればよい。

 

コンポーネント:

ES: Event Server (database)

EP: Event Processor

RA: Remote Agent

 

特性:

Jobの起動時にEPRAを起動し、その状態はEPESに書き込みするが、ジョブの結果はRAが直接ESに書き込む。

exit code <= max_exit_successならジョブは成功したとみなすことができる。

EPを直接SQLで編集するとCheckSumがあるので、ジョブが壊れることがある(フィールドによっては壊れない場合も)。

VirtualMachineは、複数のRealMachineを持つことができ、ロードバランシングが可能である。

 

ジョブステータス:

ON_ICE:

ジョブが利用不可能になっている状態。

ON_ICEは単なるジョブの凍結ではなく、そのジョブを凍結し、かつこのジョブがSUCCESSしたものと設定する。

よって、このジョブにS()dependencyを持つジョブは直ちにスタートすることになる。(ON_HOLDの場合そうはならない)

 

INACTIVE:

ジョブがACTIVATEDのままで、BoxジョブがTERMINATEすると、ACTIVEのジョブはINACTIVEになる。

 

STARTING:

ジョブの実行条件が満たされ、EPRAに起動を命令している状態。

 

RUNNING:

ジョブもしくはBOXジョブが実行している状態。

 

SUCCESS:

ジョブが成功した状態。

 

FAILURE:

ジョブが失敗した状態。(一般的にはExitコードが0より大きいと失敗するが、Exitコードの閾値は設定の変更が可能)

 

TERMINATED:

ジョブが強制終了させられた状態。

 

RESTART:

ジョブの起動をEPRAに通知したが成功せず、再度起動を要請している状態。再起動の回数はジョブごとに設定できる。

 

QUE_WAIT:

ジョブの実行条件は満たされたが、リソースの空きロード量が不足しているため、待機している状態。

 

ACTIVATED:

BoxジョブがRUNNINGのとき、中のジョブでスタートしていないものはACTIVATEDになる。

 

ON_HOLD:

ジョブを停止している状態。JOB_OFF_HOLDイベントを送信するまでジョブは動かない。

 

Dependency

s(JOB_A):ジョブASUCCESSの場合、真となる。

f(JOB_A):ジョブAFAILUREの場合、真となる。

t(JOB_A):ジョブATERMINATEDの場合、真となる。

d(JOB_A):ジョブASUCCESSFAILURETERMINATEDの場合、真となる。

n (JOB_A):ジョブARUNNINGでない場合、真となる。

e(JOB_A)=4: ジョブAの終了コードが4の場合、真となる。

v(GLOVAL VARIABLE)=8: グローバル変数の値が8の場合、真となる。

 

ファイルウォッチャーJOB:

ファイルの存在を監視するジョブ。

ファイルのサイズや名前にワイルドカードを用いたりと細かい設定が可能。

 

コマンド

autorep:

Ø       autorep –G ALL       グローバル変数が一覧できる

Ø       autorep -J %<Job Name>% -q で詳細

Ø       autorep -J %<Job Name>% -r -1 で一日前

Ø       autorep –M ALL で登録されているマシン名を閲覧

Ø       autorep –o 0 -J <Job Name>で次回実行されるオーバーライドされたジョブの実行条件が参照できる。

Ø       autorep –o n -J <Job Name>n回前に実行されたオーバーライドされたジョブの実行条件が参照できる。

 

autostatus:

Ø       autostatus –G ALL    グローバル変数が一覧できる

 

sendevent:

Ø       sendevent -J <Job Name> -e FORCE_STARTJOBで強制実行

Ø       sendevent -J <Job Name> -e JOB_ON_ICEでジョブをON_ICEステータスに設定する(将来の時点ですることも可能 –t

Ø       sendevent -J <Job Name> -e KILLJOBでジョブを強制終了する

Ø       sendevent -G "global_name=value"でグローバル変数を設定できる 

Ø       sendevent –J <Job Name> -e CHANGE_STATUS –s <ステータス>でジョブのステータスの変更が可能 (ステータスはSUなどの省略形ではなく、SUCCESSなどの完全形を指定)

Ø       sendevent –T <”Time of Event”> -e FORCE_STARTJOBでジョブの強制実行の時間を指定できる(MM/DD/[YY]YY hh:mmのフォーマットで。hh0-23の範囲で指定。ダブルクォーテーションでくくる必要あり)

 

イベント一覧

STARTJOB             FORCE_STARTJOB

KILLJOB              DELETEJOB

CHANGE_STATUS        CHANGE_PRIORITY

JOB_ON_HOLD          JOB_OFF_HOLD

JOB_ON_ICE           JOB_OFF_ICE

SEND_SIGNAL

 

job_depends:

Ø       job_depends -t -J ALL -F "10/14/2006 08:00" -T "10/14/2006 20:00"でこの間に起動し得るプロセスの一覧を取得する

Ø       job_depends –J <ジョブ名> -cでジョブの現在の状態に対するDependencyを表示する

(これはJob Activity ConsoleDependent Jobsからも参照可能)

 

jil:

Ø       jil < <JIL File> JILファイルをリダイレクトして、ジョブを定義することができる

Ø       jil –VでジョブのDependencyESに存在するかどうかの検証ができる。

 

サブコマンド

 含めるBoxは事前に存在している必要がある

 コロンはエスケープされる必要がある i.e) 10時を指定する場合、10\:00

 #もしくは/**/でコメントが挿入できる

override_job: <ジョブ名>でジョブを一度だけ別の条件で実行することが可能

update_job: <ジョブ名>で既存のジョブの設定が変更できる、

注)ジョブの設定を変更する場合は、delete_job/insert_jobではなく、update_jobを使うことが推奨される。これはdelete_jobを使うと、そのジョブの過去の履歴が消えてしまうが、update_jobの場合は消されることなくその後も履歴の参照が可能だからである。

 

属性

環境変数やグローバル変数を値に含めることができる

export <環境変数>=<>

として、環境変数をプロファイルで設定して、これを${<環境変数>}として、jilファイルで用いればよい

 

condition: でジョブのDependencyを設定できる。

auto_hold:BOXが起動した直後にそのJOBを自動的にON_HOLDにすることができる

auto_delete:JOBが完了した直後にそのJOBを自動的に削除することができる

box_failure:

box_success:BOXジョブの終了状態を規定できる(デフォルトはすべてが成功したらSUCCESSだが、これを使えばあるJOB_AFAILURE、あるJOB_BSUCCESSの場合、BOXジョブはSUCCESSといったような細かい設定が可能。ただし、すべてのジョブが終わらなければジョブはRUNNINGのままである。

heartbeat_interval:でハートビートのインターバルが設定できる(デフォルトではハートビートは行わない)。あるジョブがハートビートを行うにはそのジョブが呼ぶアプリケーション内で、

   $AUTOSYS/code/heartbeat.sh

を呼ぶ。

profile:ジョブごとに個別のプロファイルの設定が可能

n_retrys:ジョブを何回RESTARTするかの回数

avg_runtime:XPERT(シミュレーション機能)でそのジョブが終了するのに何分かかるかをジョブの設定時に仮に設定しておくことができる。

box_terminator: [y|n]   あるジョブが失敗した場合、それを含むBOXジョブがTEになる。

job_terminator: [y|n]   あるBOXジョブがTERMINATEDした場合、それに含まれるジョブが、RUNNINGの場合、そのまま走り続ける。ACTIVATEDの場合、INACTIVEになる。

 

 

autotrack:

発生したイベントをトラックする。

トラックのレベルを設定できる。(0,1,2デフォルトは0)

Ø       autotrack –l  でトラックのレベルが確認できる。

Ø       autotrack –v で詳細表示

 

 

autosyslog:

> autosyslog –e                   EPのログが見れる

> autosyslog –J <ジョブ名>        RA上のジョブのログが見れる。(ただしデフォルトではジョブが成功するとRAのジョブログが直ちに削除される)

> autosyslog –J <ジョブ名> –p    ジョブのプロファイルの中身が見れる

 

chk_auto_up:

AutoSysが正しく起動しているかどうか確認できる。

 

chase:

ESではSTARTING/RUNNINGになっているジョブが本当に走っているかRAに調査を依頼する。結果は標準出力に出力される。

 

clean_files:

RAログファイルを削除する。

 

cron2jil:

クーロンジョブをJILフォーマットに書き換える。

 

xql:

ESSQLでの問い合わせを行う。

 

autoflags:

Ø       autoflag –aAutoSysのバージョンが確認できる。

 

autoping:

AutoSys用のping

 

 

カレンダー

システム上にカレンダーが設定できる。

Set/Block Dateで動かしたい日、動かしたくない日の設定等を変えられる。動かしたい日を月の末日だけにするといった指定もできるので、

つきの最後の平日にのみそのJOBを動かすといったカレンダーの作成も可能。

Export/Importでカレンダーの内容をテキストファイルとやり取りできる

 

モニタ・ブラウザ

モニタは関心のあるJOBのリアルタイムでの監視が可能。

ブラウザは関心のあるJOBのヒストリカルの実行状況が閲覧できる。

monbro:

Ø       monbro –N <モニタ・ブラウザ名>で自分で作成したモニタ・ブラウザの参照が可能。

 

 

WEBインタフェース

素晴らしいインタフェースで、ジョブの視覚的な管理(色や矢印など)が可能の上、リアルタイムでログ等もウェブブラウザから参照できる。

ただし、信頼性に難点があり、時折実際の実行状況とシンクロしないといった致命的な面もあるので、まだまだ実用には程遠いか。

 

XPERT

ジョブの状態遷移のシミュレーションが可能。

BOXジョブとジョブの関係、それぞれのDependency等が視覚的に確認できる。

ジョブの状態遷移のリアルタイムでのモニタリングができ、さらにそのシミュレーションが可能。

 

シミュレーション用コントロールパネル

注)将来の時間でしかシミュレーションできない

 

TimeScape:

時間軸をもとにジョブのステータスを表示。

 

時間当たりの幅を変えるには、<Options><Edit Runtime Options><Inches Per Hour>

 

表示する全体の時間を伸縮するには、<Monitor><Relative Time>など