分散トランザクション処理機能 TP1/Extension for .NET Framework 使用の手引

[目次][用語][索引][前へ][次へ]

Adm

Admの概要

名前空間

Hitachi.OpenTP1.Server

継承関係

System.Object
  +- Hitachi.OpenTP1.Server.Adm

説明

Admクラスは,システム運用の管理のメソッドを提供します。

メソッドの一覧

名称 説明
CallCommand(System.String, System.Int32&, System.String&, System.String&, System.Int32) オンライン中にコマンドを入力したときと同様に,UAPからコマンドを渡します。
CallCommand(System.String, System.Int32&, System.String&, System.Int32, System.String&, System.Int32, System.Int32) オンライン中にコマンドを入力したときと同様に,UAPからコマンドを渡します。
Complete() SUP.NETの開始処理が終了したことを,OpenTP1に報告します。
GetStatus() このメソッドを呼び出したユーザサーバの状態を報告します。

メソッドの詳細

CallCommand

説明
オンライン中にコマンドを入力したときと同様に,UAPからコマンドを渡します。
このときのプロセスは,コマンドが処理を完了するまで待ち,コマンドの終了ステータスを戻します。コマンドの処理が終了すると,標準出力情報と標準エラー出力情報が返ります。
コマンドを実行するUAPを使うOpenTP1には,コマンドを格納しているディレクトリをサーチパスに追加してください。
サーチパスを追加する方法を次に示します。どれかの方法を用いてください。
  • プロセスサービス定義のprcsvpathオペランドにコマンドのパス名を指定
  • prcpathコマンドでサーチパスを追加
  • ユーザサービス定義に環境変数を"putenv PATH"と指定

宣言
【C#の場合】
public static int CallCommand(
  string command,
  ref int statusCode,
  ref string stdoutMessage,
  ref string stderrMessage,
  int flags
);
【Visual Basicの場合】
Public Shared Function CallCommand( _
  ByVal command As String, _
  ByRef statusCode As Integer, _
  ByRef stdoutMessage As String, _
  ByRef stderrMessage As String, _
  ByVal flags As Integer _
) As Integer
【J#の場合】
public static int CallCommand(
  System.String command,
  int statusCode,
  System.String stdoutMessage,
  System.String stderrMessage,
  int flags
);

パラメタ
command
実行するコマンドの文字列を設定します。
statusCode
指定したコマンドのリターン値を格納します。
stdoutMessage
指定したコマンドの標準出力に出力された文字列を格納します。
デフォルト取得サイズ(4096)を超えた分は,切り捨てられます。
stderrMessage
指定したコマンドの標準エラー出力に出力された文字列を格納します。
デフォルト取得サイズ(4096)を超えた分は,切り捨てられます。
flags
標準出力または標準エラー出力メッセージのデータを完全には取得できなかった場合の,CallCommandメソッドの動作を設定します。
  • TP1ServerFlags.DCADM_DELAY
    実行したコマンドの処理を中断して,例外を発行します。
  • TP1ServerFlags.DCNOFLAGS
    取得できた分のデータを格納して,エラーリターンします。

戻り値
メソッドのリターンコードを返します。
リターンコード 説明
0 (DC_OK) 正常終了しました。
-1855(DCADMER_STATNOTZERO) コマンドの終了コードは0以外(コマンドの実行が異常終了)です。
標準出力および標準エラー出力のデータを格納しました。
-1856(DCADMER_MEMORY_OUT) 標準出力のデータが,デフォルト取得サイズを超えました。
デフォルトサイズ分の標準出力のデータを格納しました。
-1857(DCADMER_MEMORY_ERR) 標準エラー出力のデータが,デフォルト取得サイズを超えました。
デフォルトサイズ分の標準エラー出力のデータを格納しました。
-1858(DCADMER_MEMORY_OUTERR) 標準出力のデータと標準エラー出力のデータの両方が,デフォルト取得サイズを超えました。
デフォルトサイズ分の標準出力および標準エラー出力のデータを格納しました。

例外
Hitachi.OpenTP1.Server.TP1ServerException
次の情報が出力されます。
  • メッセージ
    OpenTP1提供関数内でエラーが発生した場合は,次のように出力されます。
    "OpenTP1提供関数実行時にエラーが発生しました。"
    それ以外の場合は,各エラーに対応したメッセージが出力されます。
  • クラス名
    例外が発生したクラス名が出力されます。
  • メソッド名
    例外が発生したメソッド名が出力されます。
  • 引数名(OpenTP1提供関数呼び出し前の引数チェックでエラーになった場合にだけ出力)
    例外が発生する原因となった引数名が出力されます。
  • エラーコード
    発生原因に応じ,次のエラーコードが出力されます。
    エラーコード 説明
    DCADMER_MEMORY_ERR 標準エラー出力のデータが,デフォルトの取得サイズを超えました。
    DCADMER_MEMORY_OUT 標準出力のデータが,デフォルトの取得サイズを超えました。
    DCADMER_MEMORY_OUTERR 標準出力のデータと標準エラー出力のデータの両方が,デフォルトの取得サイズを超えました。
    DCADMER_PARAM 引数に設定した値が間違っています。
    DCADMER_PROTO RpcクラスのOpenメソッドを呼び出していません。
    DCADMER_STATNOTZERO コマンドの終了コードは0以外(コマンドの実行が異常終了)です。
    DCADMER_SYSTEMCALL システムコール(close,pipe,dup,またはread)の呼び出しに失敗しました。

注意事項
サーチパスに指定したディレクトリ間で,コマンド名が重複しないように注意してください。コマンド名が重複している場合,正しいコマンドが起動されないで別のコマンドが起動されます。
また,コマンド名は,OpenTP1が提供するコマンド群(%DCDIR%\binの下)のコマンド名とも重複しないようにしてください。
なお,「%DCDIR%」はOpenTP1インストールディレクトリを表しています。

 

CallCommand

説明
オンライン中にコマンドを入力したときと同様に,UAPからコマンドを渡します。
このときのプロセスは,コマンドが処理を完了するまで待ち,コマンドの終了ステータスを戻します。コマンドの処理が終了すると,標準出力情報と標準エラー出力情報が返ります。
コマンドを実行するUAPを使うOpenTP1には,コマンドを格納しているディレクトリをサーチパスに追加してください。
サーチパスを追加する方法を次に示します。どれかの方法を用いてください。
  • プロセスサービス定義のprcsvpathオペランドにコマンドのパス名を指定
  • prcpathコマンドでサーチパスを追加
  • ユーザサービス定義に環境変数を"putenv PATH"と指定

宣言
【C#の場合】
public static int CallCommand(
  string command,
  ref int statusCode,
  ref string stdoutMessage,
  int stdoutMessage_len,
  ref string stderrMessage,
  int stderrMessage_len,
  int flags
);
【Visual Basicの場合】
Public Shared Function CallCommand( _
  ByVal command As String, _
  ByRef statusCode As Integer, _
  ByRef stdoutMessage As String, _
  ByVal stdoutMessage_len As Integer, _
  ByRef stderrMessage As String, _
  ByVal stderrMessage_len As Integer, _
  ByVal flags As Integer _
) As Integer
【J#の場合】
public static int CallCommand(
  System.String command,
  int statusCode,
  System.String stdoutMessage,
  int stdoutMessage_len,
  System.String stderrMessage,
  int stderrMessage_len,
  int flags
);

パラメタ
command
実行するコマンドの文字列を設定します。
statusCode
指定したコマンドのリターン値を格納します。
stdoutMessage
指定したコマンドの標準出力に出力された文字列を格納します。
stdoutMessage_lenパラメタで指定したサイズを超えた分は,切り捨てられます。
stdoutMessage_len
取得する標準出力のサイズを設定します。
stderrMessage
指定したコマンドの標準エラー出力に出力された文字列を格納します。
stderrMessage_lenパラメタで指定したサイズを超えた分は,切り捨てられます。
stderrMessage_len
取得する標準エラー出力のサイズを指定します。
flags
標準出力または標準エラー出力メッセージのデータを完全に取得できなかった場合の,CallCommandメソッドの動作を設定します。
  • TP1ServerFlags.DCADM_DELAY
    実行したコマンドの処理を中断して,例外を発行します。
  • TP1ServerFlags.DCNOFLAGS
    取得できた分のデータを格納して,エラーリターンします。

戻り値
メソッドのリターンコードを返します。
リターンコード 説明
0 (DC_OK) 正常終了しました。
-1855(DCADMER_STATNOTZERO) コマンドの終了コードは0以外(コマンドの実行が異常終了)です。
標準出力および標準エラー出力のデータを格納しました。
-1856(DCADMER_MEMORY_OUT) 標準出力のデータが,指定取得サイズを超えました。
指定されたサイズ分の標準出力のデータを格納しました。
-1857(DCADMER_MEMORY_ERR) 標準エラー出力のデータが,指定取得サイズを超えました。
指定されたサイズ分の標準エラー出力のデータを格納しました。
-1858(DCADMER_MEMORY_OUTERR) 標準出力のデータと標準エラー出力のデータの両方が,指定取得サイズを超えました。
指定されたサイズ分の標準出力のデータおよび標準エラー出力のデータを格納しました。

例外
Hitachi.OpenTP1.Server.TP1ServerException
次の情報が出力されます。
  • メッセージ
    例外の内容が出力されます。
    OpenTP1提供関数内でエラーが発生した場合は,次のように出力されます。
    "OpenTP1提供関数実行時にエラーが発生しました。"
    それ以外の場合は,各エラーに対応したメッセージが出力されます。
  • クラス名
    例外が発生したクラス名が出力されます。
  • メソッド名
    例外が発生したメソッド名が出力されます。
  • 引数名(OpenTP1提供関数呼び出し前の引数チェックでエラーになった場合にだけ出力)
    例外が発生する原因となった引数名が出力されます。
  • エラーコード
    発生原因に応じ,次のエラーコードが出力されます。
    エラーコード 説明
    DCADMER_MEMORY_ERR 標準エラー出力のデータが,デフォルトの取得サイズを超えました。
    DCADMER_MEMORY_OUT 標準出力のデータが,デフォルトの取得サイズを超えました。
    DCADMER_MEMORY_OUTERR 標準出力のデータと標準エラー出力のデータの両方が,デフォルトの取得サイズを超えました。
    DCADMER_PARAM 引数に設定した値が間違っています。
    DCADMER_PROTO RpcクラスのOpenメソッドを呼び出していません。
    DCADMER_STATNOTZERO コマンドの終了コードは0以外(コマンドの実行が異常終了)です。
    DCADMER_SYSTEMCALL システムコール(close,pipe,dup,またはread)の呼び出しに失敗しました。

注意事項
サーチパスに指定したディレクトリ間で,コマンド名が重複しないように注意してください。コマンド名が重複している場合,正しいコマンドが起動されないで別のコマンドが起動されます。
また,コマンド名は,OpenTP1が提供するコマンド群($DCDIR/binの下)のコマンド名とも重複しないようにしてください。
なお,「%DCDIR%」はOpenTP1インストールディレクトリを表しています。

 

Complete

説明
SUP.NETの開始処理が終了したことを,OpenTP1に報告します。
Completeメソッドが正常に終了したことで,SUP.NETの起動は完了します。
SPP.NETでは,Completeメソッドを呼び出す必要はありません。
オフラインの業務をするSUP.NETからはCompleteメソッドは呼び出せません。

宣言
【C#の場合】
public static void Complete(
);
【Visual Basicの場合】
Public Shared Sub Complete( _
)
【J#の場合】
public static void Complete(
);

パラメタ
なし

戻り値
なし

例外
Hitachi.OpenTP1.Server.TP1ServerException
次の情報が出力されます。
  • メッセージ
    例外の内容が出力されます。
    OpenTP1提供関数内でエラーが発生した場合は,次のように出力されます。
    "OpenTP1提供関数実行時にエラーが発生しました。"
    それ以外の場合は,各エラーに対応したメッセージが出力されます。
  • クラス名
    例外が発生したクラス名が出力されます。
  • メソッド名
    例外が発生したメソッド名が出力されます。
  • エラーコード
    発生原因に応じ,次のエラーコードが出力されます。
    エラーコード 説明
    DCADMER_COMM プロセス間通信でエラーが発生しました。
    DCADMER_PARAM 引数に設定した値が間違っています。
    DCADMER_PROTO ユーザサーバが正常開始中,または再開始中ではありません。
    RpcクラスのOpenメソッドを呼び出していません。
    DCADMER_STS_IO ステータス情報の入出力エラーが発生しました。

 

GetStatus

説明
このメソッドを呼び出したユーザサーバの状態を報告します。
ユーザサーバの状態はリターン値で報告されます。

宣言
【C#の場合】
public static int GetStatus(
);
【Visual Basicの場合】
Public Shared Function GetStatus( _
) As Integer
【J#の場合】
public static int GetStatus(
);

パラメタ
なし

戻り値
ユーザサーバの状態を返します。
  • TP1ServerValues.DCADM_STAT_START_NORMAL
    ユーザサーバは正常開始中です。
  • TP1ServerValues.DCADM_STAT_START_RECOVER
    ユーザサーバは再開始中です。
  • TP1ServerValues.DCADM_STAT_ONLINE
    ユーザサーバはオンライン中です。
  • TP1ServerValues.DCADM_STAT_STOP
    ユーザサーバは終了中です。

例外
Hitachi.OpenTP1.Server.TP1ServerException
次の情報が出力されます。
  • メッセージ
    例外の内容が出力されます。
    OpenTP1提供関数内でエラーが発生した場合は,次のように出力されます。
    "OpenTP1提供関数実行時にエラーが発生しました。"
    それ以外の場合は,各エラーに対応したメッセージが出力されます。
  • クラス名
    例外が発生したクラス名が出力されます。
  • メソッド名
    例外が発生したメソッド名が出力されます。
  • エラーコード
    発生原因に応じ,次のエラーコードが出力されます。
    エラーコード 説明
    DCADMER_COMM プロセス間通信でエラーが発生しました。
    DCADMER_PARAM 引数に設定した値が間違っています。
    DCADMER_PROTO ユーザサーバが正常開始中,または再開始中ではありません。
    RpcクラスのOpenメソッドを呼び出していません。
    DCADMER_STS_IO ステータス情報の入出力エラーが発生しました。