シナリオ: 診断情報を収集するための MMI API の実行

XYZ Corporation で Maximo® Asset Management 環境に問題が発生し、システム管理者が IBM® 技術サポートと一緒に問題管理レポート (PMR) を開きます。IBM 技術サポートおよび開発部門は、顧客の Maximo 環境から特定のリソースの診断情報を収集する必要があると判断しました。

IBM 技術サポートおよび開発部門は、ロギング・アプリケーションの「モニター環境情報」ダイアログにある使用可能なリソースを確認し、システム管理者が特定の MMI API を実行する必要があると判断しました。場合によっては、情報を収集するために必要な API がすぐに使用可能でないこともあります。その場合、IBM 開発部門は、必要な情報を収集できるスクリプトを提供することがあります。

IBM は、http://<host>:<port>/maximo/oslc/members/<memberid>/<api> のような URL を入力して Web ブラウザーで API を実行するようにシステム管理者に指示します。 システム管理者は、IBM による分析のために、PMR で結果の診断出力を送信します。

API の出力

システム管理者がブラウザーに必要な URL を入力して MMI API を実行すると、その出力がブラウザーに直接表示されます。

ブラウザーに JSON ビューアーのアドオンまたは拡張機能がインストールされていない限り、出力はフォーマット設定されておらず、簡単に読むことはできません。JSON ビューアーには、Mozilla Firefox ブラウザー用と Google Chrome ブラウザー用があります。Microsoft Internet Explorer には、JSON ビューアーはありません。JSON ビューアーを見つけるには、ブラウザーを開き、「JSON ビューアー」を Web 検索します。 例えば、Firefox には、JSONView というアドオンがあります。Chrome には、JSONView という拡張機能があります。

システム管理者はブラウザーの出力をテキスト・ファイルに保存し、IBM による分析のために PMR でそのファイルを送信します。

スクリプトの作成

いくつかの前提条件スキルを満たしたシステム管理者が IBM 技術サポートおよび開発部門の支援を受けずにスクリプトを作成する場合は、以下のサンプル・スクリプトをテンプレートとして使用できます。
重要: 前提条件スキルを満たしているか IBM からの指示がない限り、スクリプトを作成しないでください。

前提条件スキル

提供されているスクリプトの範囲外のリソース用のスクリプトを作成するには、以下のスキルが必要となります。
  • システム管理者レベル
  • REST API 呼び出しの経験
  • プログラミングおよびスクリプト言語のスキル

サンプル・スクリプト

システム管理者が、各オブジェクト・イベント・タイプに関連付けられているリスナーの数を判別したいと考えているものとします。このシステム管理者は、リスナーのデータを分析して、特定の資産でのリスナーに関係する可能性があるパフォーマンスの問題を調査したいと考えています。この目標を達成するには、Maximo サーバーのイベント・トピック・ツリーにアクセスして、指定したトピック、オブジェクト・イベント・タイプを検索し、関連付けられているリスナーの数を確認する手段が必要になります。以下の Jython スクリプトは、この要件を満たしています。
from psdi.server import MXServer
if request.getWhere() is not None and request.getWhere().get("spi:topic") is not None:
  eventTopicToFind = request.getWhere().get("spi:topic")[0]

  eventTopic = MXServer.getMXServer().getEventTopicTree().findEventTopic(eventTopicToFind)

  listenerCount = eventTopic.getListenerCount()
  br.setProperty("spi:listenerCount",listenerCount)
MMI フレームワークのスクリプトには、いくつかの変数が含まれています。
  • request - MMI API 要求オブジェクト。このスクリプトは、要求オブジェクトを使用して、ユーザーが関心を持っているオブジェクト・イベント・タイプを判別します。
  • br - API がユーザーに返す応答。

このスクリプトは、要求オブジェクトを使用して、オブジェクト・イベント・タイプを判別します。その際、eventTopicToFind = request.getWhere().get("spi:topic")[0]Whereパラメーターを使用します。

br パラメーターには、単純な setProperty(string,any) インターフェースがあります。スクリプトはこのインターフェースを使用して、ユーザーに返送する情報を収集します。スクリプトは br setProperty API を使用して、整数 listenerCountbr オブジェクトに設定します。 このオブジェクトは、API の利用者への応答をフォーマット設定するために使用されます。

スクリプトを MMI に追加するには、ロギング・アプリケーションの「モニター環境情報」ダイアログを開き、「新規行」を選択し、「クラス名またはスクリプト名」フィールドにスクリプト名を指定します。スクリプトは、限定された表記 script:<script name> で指定する必要があります (例えば、script:LISTENERS)。

スクリプトを実行するには、URL 構文 http://<host>:<port>/maximo/oslc/members/<memberid>/<event topic context>?oslc.where=spi:topic="maximo.asset.add" を使用します。

URL の例: http://127.0.0.1/maximo/oslc/members/OS4zMi4yMS4xMzcvTVhTZXJ2ZXI-/eventtopic?oslc.where=spi:topic="maximo.asset.add"

MMI API の実行および出力の表示と出力の IBM への送信については、Maximo Management Interface wiki を参照してください。