Hitachi

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


4.3.2 クライアントスタブの使用方法

クライアントスタブを使用してサービス要求をする手順を次に示します。

  1. TP1ConnectionManagerクラスのインスタンスを生成,または取り出します。

    プロパティを特定のプロファイルから読み込む場合はコンストラクタの引数にプロファイルIDを指定します。インスタンスの生成はアプリケーションごとに行うことを推奨します。

  2. TP1ConnectionManagerクラスのGetConnectionメソッドでTP1Connectionオブジェクトを取得します。

    コネクションプールに使用できるコネクションがあった場合は,この時点でコネクションプールからコネクションを取り出した状態になります。

  3. クライアントスタブをTP1Connectionクラスのインスタンスごと,およびサービスグループごとにインスタンス化します。

  4. 必要に応じてプロパティ(Flags,WatchTime)を設定します。

    クライアントスタブの初期値はFlagsにRpcInfo.DCNOFLAGS,WatchTimeに-1が設定されています。Flagsプロパティ,およびWatchTimeプロパティの詳細については,RpcInfoクラスの各プロパティの説明を参照してください。

  5. カスタムレコードを引数とするサービスメソッドの場合,入力用および出力用のカスタムレコードクラスをインスタンス化します。XmlDocumentを引数とするサービスメソッドの場合,引数用のXmlDocumentクラスをインスタンス化します。

  6. カスタムレコードを引数とするサービスメソッドの場合,入力用カスタムレコードのプロパティに入力データを設定します。XmlDocumentを引数とするサービスメソッドの場合,引数用のXmlDocumentに入力データ用XMLスキーマに従ったXML文書の内容を設定します。

  7. サービスメソッドを呼び出します。

  8. カスタムレコードを引数とするサービスメソッドの場合,出力用カスタムレコードのプロパティから応答データを参照します。XmlDocumentを戻り値とするサービスメソッドの場合,出力データ用XMLスキーマに従って,返されたXML文書の内容を参照します。

  9. TP1ConnectionクラスのDisposeメソッドを発行して,コネクションをコネクションプールに戻します。

    複数のTP1Connectionオブジェクトを使う場合は,それぞれのインスタンスが不要になった時点でDisposeメソッドを発行します。

注意事項

ASP.NET Webアプリケーションで使用する場合,TP1ConnectionクラスのDisposeメソッドを,次の時点で必ず発行してください。

  • 各UIイベントハンドラの終了時

  • Webサービスメソッドの終了時

Disposeメソッドを適切に発行しないと,メモリリークの原因となります。

また,TP1ConnectionManagerクラスは,ASP.NETではアプリケーション状態,またはアプリケーションインスタンスに保持することを推奨します。各UIイベントハンドラやWebサービスメソッドごとに生成と削除を繰り返した場合,性能劣化やメモリ使用効率低下の原因となります。