ラベル JOE の投稿を表示しています。 すべての投稿を表示
ラベル JOE の投稿を表示しています。 すべての投稿を表示

2019年11月12日火曜日

JobSchedulerジョブ作成備忘録


  • jobschedulerは基本ISO-8859-1 Latin-1しか対応していなさそう、UTF-8やSJIS等のマルチバイトは使えなさそう。ジョブのtitleなどに日本語を使うと保存する時にエラーになるがエラーにならない項目もある、その場合は実行させた場合やJOCの画面でエラーメッセージが表示する。
  • リモート実行させる場合、Process Classを作成しジョブ定義で先のProcess Classを指定する。
  • コマンドやbatファイルはLanguageでshellを指定
  • ジョブの終了ステータスはスクリプトの戻り値が0で正常、0以外は異常終了、JP1のように警告終了はないのかな。
  • リモートジョブのbatファイルの保存先となるベースフォルダは[Agentインストールパス]¥agentになる、Agent実行ファイル(例 jobscheduler_agent_[ポート番号].cmd)にSCHEDULER_HOMEパラメータで変更可能
  • サーバ(jobscheduler engineが実行しているサーバ)のbatファイルのデフォルト保存フォルダは[インストールフォルダ]¥[データフォルダ]¥jobscheduler_1.13
  • scriptタブでbatファイルを複数行記述しても1つ目しか実行されない
  • Includesタブから複数のbatファイルを指定することで複数実行可能、ただしscriptに記述コマンドより先に実行される。
  • scriptタブでcmd.exe /c xxx.batとしして複数記述することでbatファイルを複数起動させることは可能、ただしbatファイルのリターンコードをジョブで判定できないかも。
  • JP1のジョブユニットがjobschedulerのジョブに対応する感じ、JP1のジョブネットのように複数のジョブを実行させる場合はjob chainで実現できそう。
  • job chainを実行させる際は、job chain orderを定義しorderから実行するらしい。
  • 祝日、祭日の設定はジョブ毎にも可能だが共通的なファイルを作成して参照させることが可能、ファイル名は[任意].holiday.xmlの必要があるらしい。
  • ジョブを曜日でスケジュール実行させる場合に曜日をグルーピング設定しないと各曜日毎に実行時刻や休日の動作指定をする必要がある。

2019年11月9日土曜日

JobScheduler1.13(インストール)

JP1に代わるジョブスケジュールソフトを探していて気になっていたJobSchedulerを試してみることに。

【ダウンロード】


sso-berlin.comサイトから以下のインストーラをダウンロード


  • JobScheduler Master 1.13 Windows 64bit
  • JobScheduler JOC Cockpit (required to control JobScheduler Master) 1.13 Windows 32/64bit
  • JobScheduler Universal Agent 1.13 Windows 64bit
  • JobScheduler Object Editor

【ライセンス】


JobSchedulerはオープンソース(GNU Public License)で利用可能らしいけれどユニバーサル・エージェントの同時複数タスク実行は有償ライセンスが必要らしい

【インストール環境】


・Windows2012Server 64bit
・Windows7 64bit

【JAVA】


・jdk1.8.0._u144 _x64
サーバは既にインストールしていた別のサーバからjdkをコピーしてJAVA_HOMEを設定した状態(インストーラーからインストールしていなかったために色々はまった・・・)

【Database】

別サーバで稼働中のOracle(11.2.0.4)を使用

【JobScheduler Engine(JobScheduler Master)】


JobScheduler本体、インストール自体はそれほど難しくなくインストレーションガイドや紹介サイトを参考にすればそれほど難しくないはずだったけれど・・・

setup.cmdを実行しても実行されない、setup.cmdを見てみると内部で使用している環境変数JRE_HOMEに設定できないのが原因らしい、きっとちゃんとJDK(JRE)をインストールしなかったのが悪い、とりあえずsetup.cmdにJRE_HOMEの設定を追加して無事起動。

インストーラーに従ってインストールは完了したもののサービスが起動せず・・・ログファイルを確認してみるとjvm.dllが見つからないというエラーメッセージ

"loadLibrary, Java Virtul machine jvm.dll"

きっとこれもJAVAのインストールの仕方が原因で偶然見つけた対応方法としてconfig¥sos.iniの[java]セクションのvmパラメータを有効にしてフルパスでjvm.dllを指定して無事起動

【JOC - JobScheduler Operations Center】


JobScheduler Masterは管理画面がなくJOCのインストールすることでWEB経由に管理が可能になるらしい、JOCはJobScheduler Masterと同じサーバにインストールしようはなくhttpプロトコルで通信できるらしい。

setup.cmdを実行するとインストーラー起動せず(またか・・・)、JOCのsetup.cmdはjava.exeに環境変数が使用されていないのでとりあえずシステム環境変数のPATHに追加してjava.exeを実行できるようにしてインストール完了。

ブラウザからJOCにアクセスしてみても表示せず・・・サービスが起動していない、またjvm.dllが見つからないのかと思い色々ファイルを探してみるもののそれらしい設定がない。

JOCはApache Commons Daemonを使用してサービス化しているようなのでレジストリを確認してみるあやしい箇所があり修正してみたところ無事起動


HKEY_LOCAL_MACHINE¥SOFTWARE¥Wow6432¥Node¥Apache Software Foundation¥Procrun 2.0¥sos_joc¥Parameters¥Javaの以下のキーを

(修正前)
JavaHome=JRE
Jvm=auto

(修正後)
JavaHome=明示的にJDKのパスを設定
Jvm=フルパスでjvm.dllを明示的に設定

ブラウザからhttp://localhost:[ポート番号※]/にアクセスすると無事ログイン画面が表示
※ポート番号はインストール中のJettyポート番号として設定した番号

ID:root
Pass:root

デフォルトは英語表記だけれどユーザプロファイルの設定画面から日本語の選択が可能

【JOE - JobScheduler Object Editor】


インストーラーは他と同じく日本語を選べるがJOEを起動してみると英語表記(日本語選択はない)。
JobScheduler MasterをインストールするとJOEも含まれているようでJOEをあらためてインストールする必要はなかったかもしれない

【JobScheduler Universal Agent】


リモートでのジョブ実行を試す予定なのでWindows7端末にAgentをインストールしてみるとサービスが起動しない・・・。
エラーメッセージから127.0.0.1でlistenできないような雰囲気、インストールした端末はLANを2ポート持っていて1つはリンクアップしていない状態。

試しに有効になっているLANのアドレスに変更したところ無事起動できた。

ジョブの作成は別途にメモするとしてJobScheduler EngineからWindows7端末上でジョブを実行させてみるとエラー、端末上のサービスを確認するとAgentサービスが停止している。
Agentサービスは起動はするもののジョブの実行指示を受けるとエラーが発生しサービス停止するらしい。

試しに手動でAgentを起動させてみると無事ジョブ実行出来たのでサービスの実行ユーザ(ローカルシステム:LocalSystem)からAdministratorsグループのユーザに変更してみたところやはり問題なくジョブ実行できるようになりとりあえず完了。(ローカルシステムで動作しない理由は不明のまま)

とりあえず無事インストール完了、JAVAのインストールがいい加減だったおかげで色々苦労してしまった・・・。