JP1/Integrated Management - Central Information Master リファレンス
機能
JP1/IM - CMが管理する構成情報から,特定の構成管理情報を検索し,取得するための問い合わせコマンドです。このコマンドは,JP1/AJS2 - AgentまたはJP1/Baseのプラグインサービスからも実行できます。
形式
jcmobjsearch [-h 論理ホスト名]
[-u JP1ユーザー名 [-p パスワード]]
[-f 出力形式]
[-a]
-c 検索文字列
実行権限
Administrators権限
格納先ディレクトリ
CMasterパス\bin\
引数
-h 論理ホスト名
クラスタシステムで運用している場合に,論理ホスト名を指定します。省略した場合,環境変数JP1_HOSTNAMEに指定した論理ホスト名が仮定されます。環境変数JP1_HOSTNAMEを指定していない場合,物理ホスト名が仮定されます。クラスタシステムを使用していない場合に,指定は不要です。
-u JP1ユーザー名
JP1ユーザー名を指定します。この引数を省略した場合,JP1_USERNAME環境変数で定義されたJP1ユーザー名を使用してユーザー認証します。この引数を省略し,JP1_USERNAME環境変数も定義されていない場合,このコマンドを実行しているOSユーザーにマッピングされたJP1ユーザー名の定義をJP1/IM - CMユーザーマッピング定義から求めてユーザー認証します。
-p パスワード
-uオプションで指定したJP1ユーザー名に対するパスワードを指定します。
-uオプションが省略されている場合,このオプションは指定できません。このオプションを省略した場合,JP1/IM - CMユーザーマッピング定義内で,このコマンドを実行しているOSユーザーに-uオプションで指定されたJP1ユーザーの定義が存在するかを確認し,存在した場合には-uオプションで指定されたJP1ユーザーの定義を取得してユーザー認証します。存在しなかった場合には標準エラー出力にメッセージを表示し,コマンドを終了します。
-f 出力形式
出力結果がUROIを含む場合,どの形式で出力するかを選択します。指定できる形式は[id],[hdm]の2種類です。出力結果がUROIを含まない場合は,このオプションは使用しません。指定を省略した場合は[id]を仮定します。
-a
JP1/Baseのプラグインサービスのアダプタコマンドとして動作させる場合に指定します。このオプションを指定する場合は,コマンドの標準入力と標準出力には,JP1/Baseのプラグインサービスで規定させるアダプタコマンドのヘッダ情報が必要です。
-c 検索文字列
問い合わせるための検索内容を指定します。検索文字列には,次の形式で検索条件を指定します。
UROI%操作内容%検索条件
それぞれの要素について次に説明します。
- UROI
- JP1/IM - CMが規定したデータモデルで管理されているオブジェクトに対して,外部からオブジェクトを特定する際に必要な識別子を表します。UROIは,WWWアドレスであるURLのような文字列表現で指定します。指定方法には次の二通りがあります。
- インスタンス識別子を用いた指定方法
- データモデルの階層を用いた指定方法
- UROIは次の形式で指定します。
- 識別種別://識別文字列
- それぞれの要素について説明します。
- 識別種別
- 識別種別は,UROIの指定方法によって次の[id]と[hdm]のどちらかを指定します。インスタンス識別子を用いた指定方法の場合は,[id]を指定してください。データモデルの階層を用いた指定方法の場合は,[hdm]を指定してください。
- 識別文字列
- 識別文字列は,オブジェクトを指定するための文字列を指定します。識別種別によって,指定方法が異なります。識別種別による指定方法について,次に示します。
- ・[id]を指定した場合
- 「クラス名.インスタンス識別文字列」の形式で指定します。
- クラス名には,JP1/IM - CMで管理しているデータモデルのクラス名を指定します。
- インスタンス識別文字列には,オブジェクトの識別子を指定します。オブジェクトの識別子には,「付録A.2 プロパティ一覧」にある,「InstanceID」プロパティの実現値を指定してください。
- ・[hdm]を指定した場合
- 「レイヤー種別.オブジェクト名.オブジェクト名.…」の形式で指定します。
- レイヤー種別は,JP1/IM - CMが扱う階層を指定します。論理構成の場合は[logical],または物理構成の場合は[physical]のどちらかを指定してください。
- オブジェクト名には,「付録A.2 プロパティ一覧」にある,[DisplayName]プロパティの実現値を指定してください。オブジェクト名は,階層順序に従ってオブジェクト名を「.」区切りで並べて記述します。オブジェクト名に「*」を指定すると,その階層のすべてのオブジェクトが対象となります。「*」を指定できるのは,階層指定の最下位の階層だけです。
- 操作内容
- 問い合わせの操作の内容を指定します。使用できる操作内容を次に示します。
表2-9 操作内容一覧
操作内容の文字列 指定したUROI形式 操作内容 id hdm search_objects × ○ UROIで指定したデータモデル階層の該当するオブジェクトを列挙します。 get_property_value ○ × UROIで指定したオブジェクトの検索条件で指定されたプロパティの値を取得します。 get_properties ○ × UROIで指定したオブジェクトのプロパティ名を取得します。 get_class_name ○ × UROIで指定したオブジェクトのクラス名を取得します。 get_upper_objects ○ × UROIで指定したオブジェクトのデータモデル上で上位階層にあるオブジェクトを列挙します。 get_lower_objects ○ × UROIで指定したオブジェクトのデータモデル上で下位階層にあるオブジェクトを列挙します。 get_mapping_objects ○ × UROIで指定したオブジェクトにマッピングされた別レイヤーのオブジェクトを列挙します。 (凡例)○:指定できる,×:指定できない
- 検索条件
- 検索する条件を,データモデルの名称に基づいて指定します。検索条件の形式を次に示します。
- 検索項目:[項目名][演算子と値]
- 検索項目
- 検索する対象の項目を指定します。指定できる値は[class_name][instance_name][property]のどれかです。
- 項目名
- 検索項目に[property]を指定した場合に,プロパティ名を指定します。
- 演算子
- 指定した値と検索対象との条件を指定します。指定できる演算子を次に示します。
表2-10 指定できる演算子一覧
演算子 検索項目の指定 説明 .EQ. class_name 指定したクラス名と一致する instance_name 指定した[DisplayName]プロパティの実現値と一致する property 指定した項目名が保持する値と一致する .GT. property 指定した項目名が保持する値より大きい .LT. property 指定した項目名が保持する値より小さい .GE. property 指定した項目名が保持する値以上 .LE. property 指定した項目名が保持する値以下 .NE. class_name 指定したクラス名と一致しない instance_name 指定した[DisplayName]プロパティの実現値と一致しない property 指定した項目名が保持する値と一致しない
- 値
- 項目名に対する値を指定します。指定する値は操作内容,検索項目,および演算子によって異なります。
- 操作内容と検索条件の組み合わせの仕様,および複数指定できるかについて次の表に示します。
表2-11 操作内容と条件式の組み合わせ
操作内容 検索条件 複数指定 検索項目 項目名 演算子 値 search_objects class_name 指定不可 .EQ.
.NE.各クラスのクラス名 可 instance_name 指定不可 .EQ.
.NE.共通クラス定義の[DisplayName]プロパティの実現値 可 property 各クラス定義のプロパティ名 制限
なしプロパティの実現値 可 get_property_value property 各クラス定義のプロパティ名 指定
不可指定不可 不可 get_properties※ 指定不可 指定不可 指定
不可指定不可 不可 get_class_name※ 指定不可 指定不可 指定
不可指定不可 不可 get_upper_objects class_name 指定不可 .EQ.
.NE.各クラスのクラス名 可 instance_name 指定不可 .EQ.
.NE.共通クラス定義の[DisplayName]プロパティの実現値 可 property 各クラス定義のプロパティ名 制限
なしプロパティの実現値 可 get_lower_objects class_name 指定不可 .EQ.
.NE.各クラスのクラス名 可 instance_name 指定不可 .EQ.
.NE.共通クラス定義の[DisplayName]プロパティの実現値 可 property 各クラス定義のプロパティ名 制限
なしプロパティの実現値 可 get_mapping_objects class_name 指定不可 .EQ.
.NE.各クラスのクラス名 可 instance_name 指定不可 .EQ.
.NE.共通クラス定義の[DisplayName]プロパティの実現値 可 property 各クラス定義のプロパティ名 制限
なしプロパティの実現値 可 注※ get_propertiesとget_class_nameを使用する場合は,先行する検索コマンドで対象になるインスタンスのIDを求めておく必要があります。処理対象はそのインスタンスだけになるため,検索条件は指定できません。
注意事項
UROI・検索条件に「%」「.」を含む文字列を指定する場合は,「%」「.」を2個連続して指定します。
検索条件の値を指定する場合は,必ず「\"」で囲んでください。また,UROI・検索条件に「"」を含む文字列を指定する場合は,「"」を2個連続して指定してください。
次に例を示します。
- UROIに「%」,「.」を含む場合
hdm://logical.旅費精算(%%表示有..).*%search_objects% class_name:.EQ.\"LogicalServer\".AND.property:MiddlewareName.EQ.\"HiRDB\"
- 検索条件の値に「"」を含む場合(Descriptionの値は,「"テスト"」)
hdm://logical.旅費精算.*%search_objects% class_name:.EQ.\"LogicalServer\".AND.property:Description.EQ.\"""テスト""\"
戻り値
0 正常終了 1 異常終了
出力形式
戻り値が0の場合は,検索結果を標準出力に出力します。出力フォーマットは,操作内容によって違います。次に操作内容による出力フォーマットを示します。
表2-12 操作内容と出力フォーマット
操作内容 出力フォーマット search_objects <UROI><改行>… get_property_value <property値> get_properties <プロパティ名><改行>… get_class_name <クラス名> get_upper_objects <UROI><改行>… get_lower_objects <UROI><改行>… get_mapping_objects <UROI><改行>… -aオプションを指定した場合は,検索結果の出力前にJP1/Baseのプラグインサービス用の応答ヘッダが付きます。
応答ヘッダは,プラグインAPIが標準出力内容から分離してプラグインサービスAPIのコール元に返すため,利用者側では-aオプションを指定しない場合と同じ出力結果が得られます。
戻り値が1の場合は,エラーメッセージを標準エラー出力します。
使用例1
論理システム内の特定の階層にあるオブジェクトの識別文字列を取得する場合。
jcmobjsearch -f hdm -c hdm://logical.旅費精算システム.旅費精算グループ1.*%search_objects%class_name:.EQ.\"LogicalWebServer\"上記のコマンドを実行すると,旅費精算システム内の旅費精算グループ1の直下にあるすべての論理Webサーバの識別文字列の一覧が出力されます。
出力例を以下に示します。
hdm://logical.旅費精算システム.旅費精算グループ1.旅費精算_Web_サーバ1 hdm://logical.旅費精算システム.旅費精算グループ1.旅費精算_Web_サーバ2
使用例2
論理システム内の特定の階層にあるオブジェクトのインスタンスIDを取得する場合。
jcmobjsearch -f id -c hdm://logical.旅費精算システム.旅費精算グループ1.*%search_objects%class_name:.EQ.\"LogicalWebServer\"上記のコマンドを実行すると,旅費精算システム内の旅費精算グループ1の直下にあるすべての論理WebサーバのインスタンスIDの一覧が出力されます。
出力例を以下に示します。
id://LogicalWebServer.Ig7rdb#Sdv id://LogicalWebServer.Ig7rfc#Dea
使用例3
使用例2で取得した論理Webサーバの下位オブジェクトのインスタンスIDを取得する場合。
jcmobjsearch -f id -c id://LogicalWebServer.Ig7rdb#Sdv%get_lower_objects%class_name:.EQ.\"Process\"上記のコマンドを実行すると,旅費精算システム内の旅費精算_Web_サーバ1の直下にあるすべてのプロセスのインスタンスIDの一覧が出力されます。
出力例を以下に示します。
id://Process.Ih7rdb#Sdv id://Process.Ih7rfc#Cea
使用例4
条件を満たすオブジェクトのインスタンスIDの一覧を取得する場合。
jcmobjsearch -f id -c hdm://physical.旅費精算システム.*%search_objects%property:NumOfCPUs.GE.\"4\"上記のコマンドを実行すると,旅費精算システム(リソースパック)内の物理ホストのうち,CPUを4個以上搭載した物理ホストのインスタンスIDの一覧が出力されます。
出力例を以下に示します。
id://PhysicalHost.Ie7rdb#Sdv id://PhysicalHost.Ie7rfc#Cea
使用例5
特定の物理ホストが所属する論理システムの識別文字列を取得する場合。
- 物理ホストが所属するリソースパックのインスタンスIDを求める。
上記のコマンドを実行すると,物理ホストが所属するリソースパックのインスタンスIDが出力されます。
jcmobjsearch -f id -c id://PhysicalHost.Ie7rdb#Sdv %get_upper_objects%class_name:.EQ.\"ResourcePack\"
出力例を以下に示します。
id://ResourcePack.Ir7ddb#Tdv- リソースパックにマッピングされた論理システムの識別文字列を求める。
上記のコマンドを実行すると,リソースパックにマッピングされた論理システムの識別文字列が出力されます。
jcmobjsearch -f hdm -c id://ResourcePack.Ir7ddb#Tdv %get_mapping_objects%class_name:.EQ.\"LogicalSystem\"
出力例を以下に示します。
hdm://logical. 旅費精算システム
All Rights Reserved. Copyright (C) 2006, 2007, Hitachi, Ltd.