Chonaso's Commentary

InternetやIT技術などについて知ったこと、試したこと、考えたことを書いていきます。

Hinemosを導入する上で気を付けること

訳あってHinemosをジョブコントローラとして利用しているシステムがあります。 ジョブコントローラは以前にとある商用プロダクトを導入したことがあったためか「Hinemosでよろしく」といきなり導入を無茶振りされました。

導入は1年半ほど前ですが、なんかもう色々苦労しました。 今はそれなりに運用できています。

Hinemosは歴史の長いOSSの割にびっくりするほど情報がないので何かの参考になればと思いエントリ化しました。

なお、Hinemosは監視アプリケーションとしての機能もありますが、監視には別のプロダクトを使用しているため監視機能は全く使っていません。

ジョブネットのグラフィカル表示は有償サポート

開始から終了まで一直線なものであればほぼ問題ないですが、複雑な分岐が入った途端に何か別のもの(紙とか)に書いて見ながら入力しないと厳しいです。 あと「今何が実行中か」はわかりますが、全体俯瞰は無理です。

ジョブ設定のインポート/エクスポートは有償サポート

別環境で検証して検証できたらその設定を商用環境へ、ができません。 さすがに複雑なジョブ設定を手で1個1個転記するのは危ないので、DBからダンプ・変換をかけて商用に入れています。 しかし、一部の設定はDBには反映されず(おそらく)アプリサーバ内部(オンメモリ)でだけで状態を保持しているものがあったりするので、これはこれで危ないです。

64bit版エージェントは有償サポート

32bit版ライブラリを使うことで普通に動いているので実は困っていないです。

ジョブの排他制御ができない

こんな基本的な機能が無いなんて思いもしませんでした。 同一ジョブが複数起動したときの動作を決めたいケースはごく普通にあると思います。 (最近のバージョンで「多重度」という概念ができたようですが、排他というよりはパフォーマンス観点での多重度という感じです。)

ログ機能

ジョブコマンドが出力する標準出力や標準エラー出力が頭の方しか残らない。 しかも標準出力と標準エラー出力が一緒くたにされ、混ざった状態になっています。

外部パラメータ機能が弱い

セッションIDやジョブ名は取ることができますが、上位のジョブ(ジョブユニット、ジョブネットワーク)の情報などは取れません。

結局、排他制御やログ関連はHinemosとジョブコマンドの間に共通のラッパースクリプトみたいなものを設けて対応しました。

ジョブが使いまわせない

Hinemosでのジョブの実行単位はジョブユニットと呼び、その配下にジョブ、ジョブネット(ジョブの親ジョブ)を作りますが、 ジョブユニット:ジョブ/ジョブネットは1:Nのため複数のジョブユニットから同一ジョブを実行することができません。 それぞれのジョブユニットで別々のジョブとして登録しなければなりません。

スケジュールの設定表現力が乏しい・わかりにくい

日次・時次あたりは可能ですが、30分毎などができないため、毎時00分と毎時30分、みたいな感じで2つスケジュールを登録する感じです。5分毎なら12個です。

スケジュール単体では範囲指定・例外指定ができないのでカレンダを組み合わせて行いますが、わざわざ分かれているメリットがよくわかってません。

終了値と終了ステータスのダブル指標

これハマりました。スキップ設定を行った場合、直前のジョブは実行されないため終了ステータスがありません。 後続のジョブの実行条件に依存ジョブのステータスだけ登録した場合動きません。

クライアントがイマイチ

もっともHinemos以外のクライアントも似たようなものかもしれません。 Eclipseベースなためか、通信のオーバヘッドがデカいのか重いです。(Webベースのクライアントもあるようですが有償です) ライセンス制約がないのでインストールし放題というのはうれしい場合もありそうです。

アカウント管理・認証が独自

これも地味につらいです。

ジョブコントローラや監視システムを入れるような環境であれば、アカウントの一元化はごく一般的です。 かつてはLDAP対応していたのになぜ辞めてしまったのでしょうか…。

とにかく情報が無い

「日本生まれのOSSなので日本語情報が豊富」とはいいうものの、欲しい情報がなかなか手に入りません。 「OSSなんで最悪ソース読むわ」を地でいく感じです。

OSSはコミュニティあって成立するものだな、というのを感じます。

たとえば同じく日本発のOSSであるSeasar2は海外ではさっぱりですが、国内ではそれなりに使われていますし情報も豊富です。 あるいはベンダーが開発していてエンプラ寄りなOSSでもコミュニティがあるプロダクトはたくさんあります。

一方、Hinemosについてはコミュニティとして成立している場が見当たらないです。 ロードマップやドキュメントが充実していればまだ違ったかもしれませんが。


とにかく情報がないので、トラブった時のヤバさといったらないです。 一度、急にパフォーマンスが悪くなって(過負荷で無応答状態)困った時がありましたが、 当然G先生も全く役に立たず結局自分で調べてトライ&エラーでなんとか復旧できたのですが、 正直「タダより高いものはない」といった感想です。

ということで、有償サポートのステマでした。

このエントリを書いていて、「実践的なHinemos設定や運用をまとめて本でも書いたらちょっとは売れるのかなぁ」とか思ってしまいました。 2年前の自分なら間違いなく買っ...いや、立ち読みして「Hinemosやめとこ」って思うかもしれないですね。

Hinemos StartUpガイド(ver.4.1対応版)

Hinemos StartUpガイド(ver.4.1対応版)