機能説明
【Windows版】
Mp_ExecRemoteCmd()関数発行後、Mp_RespRemoteCmd()関数とMp_GetRemoteCmdMap()関数を組み合わせて発行することにより、コマンド実行結果を1行ずつ読み出します。
Mp_RespRemoteCmd()関数は、システム監視エージェントサービスに対して、コマンド実行結果の受信を要求し、すぐに呼び出し元に戻ります。
呼び出し元は、Mp_RespRemoteCmd()関数の第2パラメタの、OVERLAPPED構造体を利用して、コマンド結果受信のオーバラップ処理を完了してから、Mp_GetRemoteCmdMap()関数を呼び出してください。
【UNIX版】
Mp_ExecRemoteCmd()関数発行後、Mp_RespRemoteCmd()関数を発行することにより、コマンド実行結果を1行ずつ読み出します。
Mp_RespRemoteCmd()関数は、システム監視エージェントサービスに対して、コマンド実行結果の受信を要求し、すぐに呼び出し元に戻ります。
呼び出し形式
【Windows版】
#include <mp_opagt_api.h> BOOL Mp_RespRemoteCmd(fp, olr, buf); HANDLE fp; /* Mp_OpenRemoteCmd()で獲得したハンドル */ OVERLAPPED *olr; /* コマンド実行結果受信の非同期I/O で使用*/ /* するOVERLAPPED構造体のアドレス */ char *buf; /* 受信データのヘッダ部分を格納する */ /* 領域(12バイト)のアドレス */
【UNIX版】
#include <mp_opagt_api.h> int Mp_RespRemoteCmd(fp, id, status, resp, node, rsv); int fp; /*Mp_OpOpenRemoteCmd()で獲得したファイル記述子*/ int *id; /*コマンド要求に対応する記述子格納領域のアドレ*/ /*ス */ int *status; /*応答ステータス格納領域のアドレス */ char *resp; /*コマンドの実行結果、詳細コード格納領域のアド*/ /*レス */ char *node; /*コマンドを応答したシステム名格納領域のアドレ*/ /*ス */ char *rsv; /*リザーブ領域 */
パラメタ
【Windows版】
Mp_OpenRemoteCmd()で獲得したハンドルを指定します。
メッセージ実行結果受信の非同期で使用するOVERLAPPED構造体のアドレスを指定します。
受信データのヘッダ部分だけを格納する領域アドレスを指定します。12バイト分呼び出し元で準備します。
【UNIX版】
Mp_OpenRemoteCmd()で獲得した記述子を指定します。
Mp_ExecRemoteCmd()によるコマンド要求の戻り値に対応させる記述子格納領域のアドレスを指定します。
statusは、コマンドデータの種別です。応答ステータスには、以下のものがあり、どれかの値が格納されます。
標準出力に出力されたコマンドの結果です。
標準エラー出力に出力されたコマンドの結果です。
コマンド応答が正常に終了しました(復帰コードあり)。
コマンド応答が終了しました(異常終了等)。
statusがコマンド結果応答の場合、実行されたコマンドの出力結果が格納されます。2048バイト分呼び出し元で準備します。statusがコマンド最終応答の場合、先頭4バイトにコマンドの詳細コードが格納されます。
応答ステータスがSTATUS_ENDの場合、詳細コードは以下の関数を使用して獲得してください。
WIFEXITED
WEXITSTATUS
上記関数の詳細はwait関数関連のマニュアルを参照してください。
応答ステータスがSTATUS_AEDの場合、詳細コードは、以下に示すコードのどれかです。
コマンド実行中にシステムが停止しました。
要求されたシステムが停止しています。
資源不足等でコマンドの実行に失敗しました。
コマンドは実行しましたが、その結果の獲得に失敗しました。
通信パスに異常が発生しました。
コマンド実行結果のテキストが長すぎて処理できません。
ハードウェアが保守中のため、コマンドを投入できません。
キーボードロック中で、コマンドを投入できません。
内部論理エラーが発生しました。
タイムアウトが発生しました。
コマンドの送信に失敗しました。
FTOPSII(SYSCOM)がスローダウンしました。
アテンションリセット中断が発生しました。
機能レベルが低いために、コマンドを投入できません。
FTOPSIIへのコマンド投入は不可能です。
コマンド応答が正常に終了しました(復帰コードなし)。
下位システムのシステム監視エージェントサービスが停止しているために、コマンドを投入できません。
下位システムのシステム監視エージェントサービスが停止しているか、RASによる接続処理が行われていないために、コマンドを投入できません。
下位システムのIPアドレスが未定義のために、コマンドを投入できません。
下位システムに対して接続依頼中のために、コマンドを投入できません。
コマンドを応答したシステム名格納領域のアドレスを指定します。
実行に必要な権限/実行環境
【Windows版】
運用管理サーバ/部門管理サーバ/業務サーバでは、Administrator権限/DmAdmin権限/DmOperation権限が必要です。
運用管理クライアント/クライアントでは、Administrator権限が必要です。
運用管理サーバ/部門管理サーバ/業務サーバで実行可能です。
運用管理クライアント/クライアントでは、[イベント監視]を選択インストールしたとき実行可能です。
【UNIX版】
運用管理サーバ/部門管理サーバ/業務サーバではシステム管理者(スーパーユーザ)権限が必要です。
運用管理クライアント/クライアントでは、Administrator権限が必要です。
運用管理サーバ/部門管理サーバ/業務サーバで実行可能です。
運用管理クライアント/クライアントでは、[イベント監視]を選択インストールしたとき実行可能です。
復帰値
【Windows版】
ReadFile()関数の復帰情報がそのまま応答されます。詳細なエラーコードは、GetLastError()で取得してください。
【UNIX版】
正常。コマンド実行結果を正常に受信。
異常。内部動作異常。
API格納場所
“リモートコマンドのAPI”を参照してください。