Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 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

    ステータス情報の入出力エラーが発生しました。