トランザクショナル分散オブジェクト基盤 TPBroker Object Transaction Monitor プログラマーズガイド

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

TSCAdm(Java)

TSCAdmはシステム提供クラスです。

TSCAdmは,アプリケーションプログラムの初期化処理,TSCClientの取得,およびTSCServerの取得をするクラスです。

形式

 
public class TSCAdm
{
  public static final int Direct=0;
  public static final int Regulator=1;
 
  public static void initServer(String[] args,
                       org.omg.CORBA.ORB orb);
  public static void initClient(String[] args,
                    java.util.Properties option,
                       org.omg.CORBA.ORB orb);
  public static void initClient(Applet app,
                  java.util.Properties option,
                     org.omg.CORBA.ORB orb);
 
  public static void serverMainloop();
  public static void shutdown();
  
  public static void endServer();
  public static void endClient();
  
  public static TSCClient getTSCClient(TSCDomain tsc_domain,
                                             int way);
  public static TSCClient getTSCClient(TSCDomain tsc_domain);
  public static TSCServer getTSCServer(TSCDomain tsc_domain);
  
  public static void releaseTSCClient(TSCClient tsc_client);
  public static void releaseTSCServer(TSCServer tsc_server);
 
  public static int get_status();
 
};

インポートクラス

 
import JP.co.Hitachi.soft.TPBroker.TSC.TSCAdm;

メソッド

●public static void initServer(String[] args,

                                                 org.omg.CORBA.ORB orb)
 
項目 型・意味
引数 String[] args コマンド引数
org.omg.CORBA.ORB orb ORBのリファレンス
戻り値 ありません。
例外 TSCBadInvOrderException
TSCBadParamException
TSCCommFailureException
TSCInitializeException
TSCInternalException
TSCNoMemoryException
TSCNoPermissionException
TSCNoResourcesException

サーバアプリケーションの初期化処理を実行します。このメソッドは,プロセスで1回だけ発行できます。TSCAdm.endServer()メソッド,またはTSCAdm.endClient()メソッドの発行によって終了処理したあとでも,このメソッドは発行できません。

このメソッドのargs引数にはプロセスのmain()メソッドの第1引数をそのまま指定してください。プロセス開始時にコマンドラインで指定された情報を削除または変更してargs引数に指定すると,正しく動作しないことがあります。tscstartprcコマンドを使用して開始したサーバアプリケーションのコマンドラインには,tscstartprcコマンドに指定したコマンドライン引数がすべて渡されます。

●public static void initClient(String[] args,

                                                     java.util.Properties option,
                                                     org.omg.CORBA.ORB orb)
 
項目 型・意味
引数 String[] args コマンド引数
java.util.Properties option OTMの動作をカスタマイズするために設定できるプロパティ
org.omg.CORBA.ORB orb ORBのリファレンス
戻り値 ありません。
例外 TSCBadInvOrderException
TSCBadParamException
TSCCommFailureException
TSCInitializeException
TSCInternalException
TSCNoMemoryException
TSCNoPermissionException
TSCNoResourcesException

注※
optionを使用する場合,例えば次のように記述します。
 
      java.util.Properties opt = new java.util.Properties();
      opt.put("-TSCDomain","hitachi");

クライアントアプリケーションの初期化処理を実行します。

args引数およびoption引数に同じオプションがある場合,args引数のオプションが有効になります。

このメソッドのargs引数にはプロセスのmain()メソッドの第1引数をそのまま指定してください。プロセス開始時にコマンドラインで指定された情報を削除または変更してargs引数に指定すると,正しく動作しないことがあります。

このメソッドは,TSCAdm.endClient()メソッドの発行によって終了処理をした場合は再発行できますが,TSCAdm.endServer()メソッドの発行によって終了処理をしたあとは再発行できません。TSCAdm.endClient()メソッドの発行後にこのメソッドを再発行した場合,2回目以降の発行で指定したargc引数およびoption引数の値は無効となり,初回の発行で指定した値が有効になります。ただし,このメソッドを複数回発行するとクライアントアプリケーションの性能に影響を与えるため,推奨できません。

●public static void initClient(Applet app,

                                             java.util.Properties option,
                                             org.omg.CORBA.ORB orb)
 
項目 型・意味
引数 Applet app このメソッドが実行されるアプレット※1
java.util.Properties option OTMの動作をカスタマイズするために設定できるプロパティ※2
org.omg.CORBA.ORB orb ORBのリファレンス
戻り値 ありません。
例外 TSCBadInvOrderException
TSCBadParamException
TSCCommFailureException
TSCInitializeException
TSCInternalException
TSCNoMemoryException
TSCNoPermissionException
TSCNoResourcesException

注※1
アプレットタグにオプションを記述する場合,例えば次のようにアプレットタグに記述します。
 
<param name=-TSCDomain value=hitachi>

注※2
optionを使用する場合,例えば次のように記述します。
 
java.util.Properties opt = new java.util.Properties();
opt.put("-TSCDomain","hitachi");

Javaアプレットの場合に,Appletクラスを使用したクライアントアプリケーションの初期化処理を実行します。

このメソッドはOTM - Clientだけで使用できます。OTMで使用した場合は,例外が返ります。

また,このメソッドは,TSCAdm.endClient()メソッドの発行によって終了処理をした場合は再発行できますが,TSCAdm.endServer()メソッドの発行によって終了処理をしたあとは再発行できません。TSCAdm.endClient()メソッドの発行後にこのメソッドを再発行した場合,2回目以降の発行で指定したoption引数の値は無効となり,初回の発行で指定した値が有効になります。ただし,このメソッドの複数回発行するとクライアントアプリケーションの性能に影響を与えるため,推奨できません。

●public static void serverMainloop()

項目 型・意味
戻り値 ありません。
例外 TSCBadInvOrderException

リクエストを受信待ち状態にします。このメソッドはサーバアプリケーションでだけ発行できます。

●public static void shutdown()

項目 型・意味
戻り値 ありません。
例外 TSCBadInvOrderException

リクエストの受信待ち状態を解除します。このメソッドはサーバアプリケーションでだけ発行できます。

●public static void endServer()

項目 型・意味
戻り値 ありません。
例外 TSCBadInvOrderException
TSCNoMemoryException

サーバアプリケーションの終了処理を実行します。

このメソッドはプロセスで1回だけ発行できます。このメソッド発行後はそのプロセスでOTMの機能は使用しないでください

●public static void endClient()

項目 型・意味
戻り値 ありません。
例外 TSCBadInvOrderException
TSCNoMemoryException

クライアントアプリケーションの終了処理を実行します。

このメソッドの発行後は,そのプロセスでOTMまたはOTM - Clientの機能を使用できません。また,このメソッドで例外が発生した場合は,クライアントアプリケーションを終了させる必要があります。

●public static TSCClient getTSCClient(TSCDomain tsc_domain,

                                                                  int way)
 
項目 型・意味
引数 TSCDomain tsc_domain TSCドメインのリファレンス
int way 接続経路
戻り値 TSCClientオブジェクト
例外 TSCBadInvOrderException
TSCBadParamException
TSCCommFailureException
TSCInternalException
TSCNoMemoryException
TSCNoPermissionException
TSCNoResourcesException
TSCTransientException

指定したTSCDomainを基に,リクエストするTSCデーモンのTSCClientのリファレンスを取得するメソッドです。

wayには,接続経路として,次に示すどちらかを指定します。

ファイル検索方式でマルチノードリトライ接続を実行する場合,このメソッドに指定したTSCDomainおよびwayの組み合わせに一致する情報が,接続先情報ファイル中に記述されていなければなりません。一致する情報が接続先情報ファイルにない場合,TSCBadParamException例外が発生します。なお,ファイル検索方式でマルチノードリトライ接続を実行するには,アプリケーションプログラムの開始時に,次に示すようにコマンドオプション引数を指定します。

●public static TSCClient getTSCClient(TSCDomain tsc_domain)

項目 型・意味
引数 TSCDomain tsc_domain TSCDomainのリファレンス
戻り値 TSCClientオブジェクトリファレンス
例外 TSCBadInvOrderException
TSCBadParamException
TSCCommFailureException
TSCInitializeException
TSCInternalException
TSCNoMemoryException
TSCNoPermissionException
TSCNoResourcesException
TSCTransientException

指定したTSCDomainを基に,リクエストするTSCデーモンのTSCClientのリファレンスを取得するメソッドです。接続経路には,アプリケーションプログラムの開始時に,コマンドオプション引数-TSCRequestWayに指定した値を使用します。

ファイル検索方式でマルチノードリトライ接続を実行する場合,このメソッドに指定したTSCDomain,およびコマンドオプション引数-TSCRequestWayの組み合わせに一致する情報が,接続先情報ファイル中に記述されていなければなりません。一致する情報が接続先情報ファイルにない場合,TSCBadParamException例外が発生します。なお,ファイル検索方式でマルチノードリトライ接続を実行するには,アプリケーションプログラムの開始時に,次に示すようにコマンドオプション引数を指定します。

●public static TSCServer getTSCServer(TSCDomain tsc_domain)

項目 型・意味
引数 TSCDomain tsc_domain TSCDomainのリファレンス
戻り値 TSCServerオブジェクト
例外 TSCBadInvOrderException
TSCBadParamException
TSCCommFailureException
TSCInternalException
TSCNoMemoryException
TSCNoPermissionException
TSCNoResourcesException

指定したTSCDomainを基に,自サーバへリクエストを振り分けるTSCデーモンのTSCServerのリファレンスを取得するメソッドです。

●public static void TSCClient releaseTSCClient(TSCClient tsc_client)

項目 型・意味
引数 TSCClient tsc_client TSCClientオブジェクト
戻り値 ありません。
例外 TSCBadInvOrderException
TSCBadParamException
TSCCommFailureException
TSCInternalException
TSCNoMemoryException
TSCNoPermissionException

TSCClientを解放します。

●public static void releaseTSCServer(TSCServer tsc_server)

項目 型・意味
引数 TSCServer tsc_server TSCServerオブジェクト
戻り値 ありません。
例外 TSCBadInvOrderException
TSCBadParamException
TSCCommFailureException
TSCInternalException
TSCNoMemoryException
TSCNoPermissionException

TSCServerを解放します。

●public static int get_status()

項目 型・意味
戻り値 プロセスステータス

運用管理で管理するプロセスステータスを返します。プロセスステータスを示す定数を表5-3,表5-4に示します。

表5-3 TSCAdmクラスで検出するクライアントアプリケーションのプロセスステータス(Java)

定数名 状態 内容
TSCAdm.Living オンライン稼働中 TSCAdm.initClientを発行してから,終了要求を受け付けるまでの状態
TSCAdm.Dying 正常終了処理中 終了要求を受け付けてから,TSCAdm.endClientを発行するまでの状態
TSCAdm.Dead 終了 TSCAdm.initClientの発行以前,またはTSCAdm.endClientの発行以降の状態

クライアントアプリケーションの状態遷移については,マニュアル「TPBroker Object Transaction Monitor ユーザーズガイド」のクライアントアプリケーションの状態の検出に関する説明を参照してください。

表5-4 TSCAdmクラスで検出するサーバアプリケーションのプロセスステータス(Java)

定数名 状態 内容
TSCAdm.Living 正常開始処理中 TSCAdm.initServerを発行してから,TSCAdm.serverMainloopを発行するまでの状態
TSCAdm.Active オンライン稼働中 TSCAdm.serverMainloopを発行してから,終了要求を受け付けるまでの状態
TSCAdm.Dying 正常終了処理中 終了要求を受け付けてから,TSCAdm.endServerを発行するまでの状態
TSCAdm.Dead 終了 TSCAdm.initServerの発行以前,またはTSCAdm.endServerの発行以降の状態

サーバアプリケーションの状態遷移については,マニュアル「TPBroker Object Transaction Monitor ユーザーズガイド」のサーバアプリケーションの状態の検出に関する説明を参照してください。

マルチスレッド環境でのメソッド呼び出し規則

マルチスレッド環境で,TSCAdmクラスのメソッドを呼び出す規則を次に示します。

メソッド 複数のスレッド上からの同時呼び出し
initServer できます。
initClient できます。
serverMainloop できます。
shutdown できます。
endServer できます。
endClient できます。
getTSCClient できます。
getTSCServer できます。
releaseTSCClient できます。
releaseTSCServer できます。
get_status できます。

注※
複数のスレッド上から同時に呼び出すことはできますが,有効となるのは一つの呼び出しだけです。