機能説明
Mp_RespRemoteCmd()関数発行後にコマンド実行結果の受信が完了し、Mp_GetRemoteCmdMap()関数を呼び出すことにより、コマンド実行結果のデータを取り出します。
呼び出し形式
#include <mp_opagt_api.h> BOOL Mp_GetRemoteCmdMap( fp,buf,id,status,resp,node,NodeID, DatabaseID ); HANDLE fp; /* Mp_OpenRemoteCmd()で獲得したハンドルを指定 */ /* する */ void *buf; /* Mp_RespRemoteCmd()で指定したバッファを指定 */ /* する */ int *id; /* コマンド要求に対応する識別子の格納領域のア */ /* ドレスを指定する */ int *status; /* 応答ステータスの格納領域のアドレスを指定す */ /* る */ char *resp; /* コマンドの実行結果、詳細コードの格納領域の */ /* アドレスを指定する */ char *node; /* コマンドを応答したシステムのノード名の格納 */ /* 領域のアドレスを指定する */ DWORD *NodeID; /* NULLを指定する */ DWORD *DatabaseID; /* NULLを指定する */
パラメタ
Mp_OpenRemoteCmd()で獲得したハンドルを指定します。
Mp_RespRemoteCmd()で指定したバッファを指定します。
Mp_ExecRemoteCmd()の復帰コードに対応する識別子が格納されます。これにより、どのコマンド要求に対するコマンド応答かを識別できます。
statusは、コマンド応答の種別です。応答ステータスを、以下に示します。どちらかの値が格納されます。
コマンド結果応答
標準出力に出力されたコマンドの結果です。
標準エラー出力に出力されたコマンドの結果です。
コマンド最終応答
コマンド応答が正常に終了しました(復帰コードあり)。
コマンド応答が終了しました(異常終了等)。
statusがコマンド結果応答の場合、実行されたコマンドの出力結果が格納されます。2048バイト分呼び出し元で準備します。statusがコマンド最終応答の場合、先頭4バイトにコマンドの詳細コードが格納されます。
応答ステータスがSTATUS_ENDの場合、respの内容を以下に示します。
0 1 2 3 4(バイト) +--------+--------+--------+--------+ |sig |code |rsv |rsv | +--------+--------+--------+--------+
NTにコマンドを発行した場合は0です。
UNIXにコマンドを発行した場合、コマンドがシグナルを受信して終了した場合0でない値が復帰します。(詳しくは、wait関数のマニュアルを参照してください。)
コマンドの終了コードが格納されます。
ただし、正確な値が格納されるのは0-255までです。
予約域です。
備考.ホストバイトオーダで記述しています。
応答ステータスがSTATUS_AEDの場合、respの先頭4バイトにintで、以下に示す詳細コードが設定されます。
コマンド実行中にシステムが停止しました。
要求されたシステムが停止しています。
資源不足等でコマンドの実行に失敗しました。
コマンドは実行しましたが、その結果の獲得に失敗しました。
通信パスに異常が発生しました。
コマンド実行結果のテキストが長すぎて処理できません。
ハードウェアが保守中のため、コマンドを投入できません。
キーボードロック中で、コマンドを投入できません。
内部論理エラーが発生しました。
タイムアウトが発生しました。
コマンドの送信に失敗しました。
FTOPSII(SYSCOM)がスローダウンしました。
アテンションリセット中断が発生しました。
機能レベルが低いために、コマンドを投入できません。
FTOPSIIへのコマンド投入は不可能です。
コマンド応答が正常に終了しました(復帰コードなし)。
下位システムのシステム監視エージェントサービスが停止しているために、コマンドを投入できません。
下位システムのシステム監視エージェントサービスが停止している、またはRASによる接続処理が行われていないため、コマンドを投入できません。
下位システムのIPアドレスが未定義のために、コマンドを投入できません。
下位システムに対して接続依頼中のために、コマンドを投入できません。
コマンドを応答したシステムのノード名が格納されます。
MPOP_NODENAMELENバイト分呼び出し元で準備します。
実行に必要な権限/実行環境
【Windows版】
運用管理サーバ/部門管理サーバ/業務サーバでは、Administrator権限/DmAdmin権限/DmOperation権限が必要です。
運用管理クライアント/クライアントでは、Administrator権限が必要です。
運用管理サーバ/部門管理サーバ/業務サーバで実行可能です。
運用管理クライアント/クライアントでは、[イベント監視]を選択インストールしたとき実行可能です。
復帰値
正常終了。コマンド実行結果を正常に受信。
異常終了。詳細なエラーコードは、GetLastError()で取得してください。
API格納場所
“リモートコマンドのAPI”を参照してください。