4.6.1 TCP/IP通信機能を使用する場合のメソッド発行手順
TCP/IP通信機能を使用して,OpenTP1のMHPや他システムと通信する場合のメソッド発行手順を次に示します。なお,TCP/IP通信にはインデクスドレコードを使用します。
-
TP1ConnectionManagerクラスのインスタンスを生成または取り出します。
構成定義を特定のプロファイルから読み込む場合は,コンストラクタの引数にプロファイルIDを指定します。インスタンスの生成はアプリケーションごとに行うことを推奨します。TCP/IP通信とRPCとを併用する場合は,RPCで使用するプロファイルIDとは異なるプロファイルIDで構成定義を設定することを推奨します。
-
TP1ConnectionManagerクラスのGetTcpipConnectionメソッドでTcpipConnectionオブジェクトを取得します。
コネクションプールに使用できるコネクションがあった場合は,この時点でコネクションプールからコネクションを取り出した状態になります。
-
TcpipInfoクラスのインスタンスを生成します。
-
TcpipInfoオブジェクトにタイムアウト値,通信形態を設定します。
-
TP1ConnectionManagerクラスのCreateIndexedRecordメソッドを発行して入力用インデクスドレコードを生成します。
-
入力用インデクスドレコードに入力データを設定します。
-
TP1ConnectionManagerクラスのCreateIndexedRecordメソッドを発行して出力用インデクスドレコードを生成します。
-
出力データ用領域を確保して,出力用インデクスドレコードに設定します。
-
TcpipConnectionクラスのExecuteメソッドを発行してTCP/IP通信をします(何度でも発行できます)。
再度TCP/IP通信をする場合は,4.〜9.のどれかから行います。
各オブジェクトは複数回のTCP/IP通信で再利用できます。
-
出力用インデクスドレコードからデータを取り出します。
-
TcpipConnectionクラスのDisposeメソッドを発行して,コネクションをコネクションプールに戻します。
- 注意事項
-
ASP.NET Webアプリケーションで使用する場合,TcpipConnectionクラスのDisposeメソッドは,次の時点で必ず発行してください。
-
各UIイベントハンドラの終了時
-
Webサービスメソッドの終了時
Disposeメソッドを適切に発行しないと,メモリリークの原因となります。
また,TP1ConnectionManagerクラスはASP.NETではアプリケーション状態,またはアプリケーションインスタンスに保持することを推奨します。各UIイベントハンドラやWebサービスメソッドごとに生成と削除を繰り返した場合,性能劣化やメモリ使用効率低下の原因となります。
-