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

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

TSCSessionProxy(C++)

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

TSCSessionProxyは,TSCObjectの代理クラスです。TSCSessionProxyを呼び出すと,OTMのスケジューリング機構を経由してステートフルにTSCObjectが呼び出されます。TSCSessionProxyのTSCProxyObjectとの違いを次に示します。

TSCSessionProxyの特徴

形式

 
class TSCSessionProxy
{
 public:
  void _TSCStart();
  void _TSCStop();
 
  TSCInt _TSCSessionInterval();
  void _TSCSessionInterval(TSCInt session_interval);
 
  const char* _TSCInterfaceName();
  const char* _TSCAcceptorName();
 
  TSCInt _TSCTimeout();
  void _TSCTimeout(TSCInt timeout);
 
  TSCInt _TSCPriority();
  void _TSCPriority(TSCInt priority);
 
  TSCContext_ptr _TSCContext();
}
 

インクルードファイル

 
#include <tscproxy.h>
 

メソッド

●void _TSCStart()

項目 型・意味
戻り値 ありません。
例外 TSCBadInvOrderException
TSCBadParamException
TSCCommFailureException
TSCInitializeException
TSCInternalException
TSCNoMemoryException
TSCNoPermissionException
TSCNoResponseException
TSCObjectNotExistException
TSCTransientException

セションを開始します。

セションを開始するとTSCユーザプロキシとサーバアプリケーションのインスタンスを対応づけます。また,アクセプタ名称を指定していないコンストラクタでインスタンスを生成した場合は,_TSCStart()メソッドで対応づけたインスタンスのアクセプタ名称を_TSCStop()メソッドの発行時まで引き継ぎます。

なお,このメソッドを複数のスレッド上から同時に呼び出すことはできません。

_TSCStart()メソッドが正常終了した場合は,セション呼び出しが成功しても失敗しても,必ず_TSCStop()メソッドを発行してください。

●void _TSCStop()

項目 型・意味
戻り値 ありません。
例外 TSCBadInvOrderException
TSCBadParamException
TSCCommFailureException
TSCInitializeException
TSCInternalException
TSCNoMemoryException
TSCNoPermissionException
TSCNoResponseException
TSCTransientException

セションを解放します。

セションを解放するとTSCユーザプロキシとサーバアプリケーションのインスタンスの対応づけも解放されます。

なお,このメソッドを複数のスレッド上から同時に呼び出すことはできません。

●TSCInt _TSCSessionInterval()

項目 型・意味(単位)
戻り値 セション呼び出しインターバル監視時間(秒)

セション呼び出しインターバル監視時間を取得します。

このメソッドを複数のスレッド上から同時に呼び出した場合,結果は保証されません。

●void _TSCSessionInterval(TSCInt session_interval)

項目 型・意味(単位)
引数 TSCInt session_interval セション呼び出しインターバル監視時間(秒)
戻り値 ありません。
例外 TSCBadParamException

セション呼び出しインターバル監視時間を秒単位で設定します。メソッド呼び出しごとに変更できます。

アプリケーションプログラムの開始時に-TSCSessionIntervalオプションを指定しない場合は,監視時間のデフォルト値は"180"(秒)です。-TSCSessionIntervalオプションを指定する場合は,監視時間のデフォルト値は-TSCSessionIntervalオプションの指定値になります。

このメソッドを複数のスレッド上から同時に呼び出した場合,結果は保証されません。

●const char* _TSCInterfaceName()

項目 型・意味
戻り値 インタフェース名称

インタフェース名称を取得します。

インタフェース名称のメモリ領域の管理責任はTSCSessionProxyクラスにあるので,ユーザは削除しないでください。

●const char* _TSCAcceptorName()

項目 型・意味
戻り値 TSCアクセプタ名称

TSCアクセプタ名称を取得します。

取得するTSCアクセプタ名称を次に示します。

TSCアクセプタ名称のメモリ領域の管理責任はTSCSessionProxyクラスにあるので,ユーザは削除しないでください。また,セション呼び出し中に取得したTSCアクセプタ名称のメモリ領域は_TSCStop()メソッド発行後には参照できません。

このメソッドを複数のスレッド上から同時に呼び出した場合,結果は保証されません。

●TSCInt _TSCTimeout()

項目 型・意味(単位)
戻り値 タイムアウト時間(秒)

タイムアウト値(呼び出し時の監視時間)を取得します。

このメソッドを複数のスレッド上から同時に呼び出した場合,結果は保証されません。

●void _TSCTimeout(TSCInt timeout)

項目 型・意味(単位)
引数 TSCInt timeout タイムアウト時間(秒)
戻り値 ありません。
例外 TSCBadParamException

タイムアウト値(呼び出し時の監視時間)を秒単位で設定します。"0"を指定した場合は,時間監視をしません。監視時間は,メソッド呼び出しごとに変更できます。

アプリケーションプログラムの開始時に-TSCTimeOutオプションを指定しない場合は,監視時間のデフォルト値は"180"(秒)です。-TSCTimeOutオプションを指定する場合は,監視時間のデフォルト値は-TSCTimeOutオプションの指定値になります。

このメソッドを複数のスレッド上から同時に呼び出した場合,結果は保証されません。

タイムアウト値が有効になるメソッドを次に示します。

●TSCInt _TSCPriority()

項目 型・意味
戻り値 プライオリティ値

プライオリティ値(メソッド呼び出し時の優先順位)を取得します。

このメソッドを複数のスレッド上から同時に呼び出した場合,結果は保証されません。

●void _TSCPriority(TSCInt priority)

項目 型・意味
引数 TSCInt priority プライオリティ値
戻り値 ありません。
例外 TSCBadParamException

プライオリティ値(メソッド呼び出し時の優先順位)を設定します。

priorityに1〜8の値を指定することで,キューイング取り出し時の優先順位を変更できます。priorityに指定する値が小さいほど優先度は高くなります。プライオリティ値はリクエスト単位に変更できます。

アプリケーションプログラムの開始時に-TSCRequestPriorityオプションを指定しない場合は,プライオリティ値のデフォルト値は"4"です。-TSCRequestPriorityオプションを指定する場合は,プライオリティ値のデフォルト値は-TSCRequestPriorityオプションの指定値になります。

このメソッドを複数のスレッド上から同時に呼び出した場合,結果は保証されません。

プライオリティ値が有効になるのは_TSCStart()メソッドだけです。

●TSCContext_ptr _TSCContext()

項目 型・意味
戻り値 TSCコンテキスト

TSCコンテキストを取得します。

戻り値のTSCコンテキストのメモリ領域の管理責任はTSCSessionProxyクラスにあるので,ユーザは削除しないでください。

なお,このメソッドを複数のスレッド上から同時に呼び出すことはできません。

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

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

メソッド 複数のスレッド上からの同時呼び出し
_TSCStart() ×
_TSCStop() ×
_TSCSessionInterval()
_TSCSessionInterval(TSCInt) ×
_TSCInterfaceName()
_TSCAcceptorName()
_TSCTimeout()
_TSCTimeout(TSCInt) ×
_TSCPriority()
_TSCPriority(TSCInt) ×
_TSCContext ×
クライアント側からのオブジェクト呼び出し ×

(凡例)
○:できます。
×:できません。

インスタンスの内部参照(アクセス)規則

TSCSessionProxyクラスのインスタンスがほかのクラスのインスタンスを内部参照(アクセス)する規則を次に示します。

メソッド 複数のスレッド上からの内部参照
_TSCStart() ありません。
_TSCStop() ありません。
_TSCSessionInterval() ありません。
_TSCSessionInterval(TSCInt) ありません。
_TSCInterfaceName() ありません。
_TSCAcceptorName() ありません。
_TSCTimeout() ありません。
_TSCTimeout(TSCInt) ありません。
_TSCPriority() ありません。
_TSCPriority(TSCInt) ありません。
_TSCContext ありません。
クライアント側からのオブジェクト呼び出し 生成時に指定したTSCClient型のインスタンス

セション呼び出し機能使用中のメソッド呼び出し規則

セション呼び出し機能使用中(_TSCStart()メソッド呼び出し完了から_TSCStop()メソッド呼び出し完了まで)の,TSCSessionProxyクラスのインスタンスのメソッドを呼び出す規則を次に示します。

メソッド セション呼び出し中での呼び出し
_TSCStart() ×
_TSCStop()
_TSCSessionInterval()
_TSCSessionInterval(TSCInt)
_TSCInterfaceName()
_TSCAcceptorName()
_TSCTimeout()
_TSCTimeout(TSCInt)
_TSCPriority()
_TSCPriority(TSCInt)
_TSCContext
クライアント側からのオブジェクト呼び出し

(凡例)
○:できます。
×:できません。