スコープ監視、ステータス監視に関する問題点(?) 続報その1

この記事は11年以上前に書かれたものです。 情報が古い可能性があります。

最近忙しくて、なかなかHinemosの学習に時間が取れないFです。

タイトルの件について、少しずつ調査を進めているところですが、今回は少し趣を変えて、HinemosのEJBコンポーネントにJavaで直接アクセスしてみることで、少しずつHinemosの挙動を理解していこうと思います。

ちなみに、EJBに関する用語等はできるだけ正確な表記を心がけたつもりですが、私はEJBに関してはまだまだ初心者レベルですので、正しくない表現等を使用している箇所があるかもしれません。あらかじめご了承ください。

さて、HinemosはEJB2.0のアプリケーションであり、その大半(というかほとんど)がEJBコンポーネントで構成されていますので、EJB2.0の作法に従って、外部のクライアントからアクセスすることができます。そして、アクセスするためのインターフェースは全てホームインターフェースビジネスインターフェースとして定義されており、ソースアーカイブのHinemosManager/ejbsrc配下に収められています。

今回はこれらのうち、ステータス監視情報を取得するインターフェースを使用して、リモートホストからHinemosマネージャへ接続し、現在の状態を取得して表示するクライアントアプリケーションを作成してみます。まず、ソースコードは以下のとおりです。


StatusInfoTest.java


少しだけ解説しますと、セッションBeanであるMonitorControllerのオブジェクトを取得した後、そのgetStatusList()メソッドを呼び出して、ステータス監視情報をArrayListの形で取得します。そのArrayListはステータス監視情報(StatusInfoData)のリストなので、これを一つずつ取り出し、そのなかから監視項目ID、ファシリティID、及び重要度を取得して表示しています。

なお、メソッドに引数としてファシリティIDを与えると、そのファシリティIDの配下のファシリティを全て取得します(ただし、そのファシリティIDは含まれないようです)。一方、ファシリティIDを与えない(又は空文字を与えた)場合は、ステータス監視情報取得のSQL発行の際に、ファシリティIDをWHERE句に指定しない(つまり、全てのファシリティのステータス情報を取得する)ようです。ちなみにこれは、前回の記事でご紹介した挙動と一致しています。

そして次は、jndi名前解決のためのプロパティファイルです。ホスト名やユーザID等は適宜修正してください。


jndi.properties


なお、上記のソースをコンパイルするためには、以下のライブラリが必要です。全て、インストール済みのHinemosマネージャのライブラリディレクトリからコピーしてきます。

  • HinemosCommon.jar
  • HinemosIF.jar
  • HinemosManager.jar
  • jbossall-client.jar
  • quartz.jar

最後に、実行時の手間を少しでも減らすため、ここでは以下のPerlスクリプトを利用することにします(なお、Perlは5.10.0以降が必要です)。


test.pl


Javaソースのコンパイルが成功したら、Perlスクリプトを実行します。まずは、ファシリティIDを指定しない場合です。

上記は、私の環境で登録している全てのステータス監視項目です(前回から少し登録内容を変えています。)。ちなみにこれは、監視[ステータス]の”スコープ”(ルートスコープ)をクリックした場合に相当するようです。

次に、ファシリティIDを指定して実行してみます。

指定したスコープ(SCOPE_ALL)の配下の監視情報だけが表示されました。こちらは、監視[ステータス]の”SCOPE_ALL”というスコープをクリックした場合に相当するようですが、やはり、”SCOPE_ALL”自身の監視情報が取得できていません。指定したファシリティIDが対象になっていない点については、まだ調査が完了していないためはっきりとは言えませんが、どうやらこのgetStatusList()メソッドのさらに内部で呼び出されているメソッドに原因があるようです。

次回は、もう少し内部まで掘り下げて調査してみたいと思います(おって、続報をお知らせしたいと思います)。それでは。


ご意見やお問い合わせについて

この記事へのご意見やお問い合わせについては、こちら(お問い合わせフォーム)もしくは
Hinemos営業担当【hsd-sales@atomitech.jp】までご連絡ください。

※お問い合わせフォームからご連絡の場合には、お問い合わせ内容で「Hinemosについて」を選択し、
 本文の冒頭に「Hinemos研究日記_【タイトル名】」とご記載ください。
※メールアドレスへご連絡の場合には、件名を「Hinemos研究日記_【タイトル名】」でご連絡ください。