Interstage Application Server アプリケーション作成ガイド (コンポーネントトランザクションサービス編)
|
目次
索引

|
5.2.2.1 プログラミングの概要
クライアントオブジェクトとサーバオブジェクト内のプロセスをバインドするために、セションIDを使用します。
セションIDをサーバオブジェクトの呼び出し時に、パラメタに設定することによりシステムがクライアントオブジェクトとサーバオブジェクト内のプロセスをバインドします。
セションID採番方法は、“セションIDを採番するためのトランザクションアプリケーションの作成”を参照してください。
セションIDのパラメタへの設定方法は以下のようになります。
- オクテット型の配列で配列サイズは48バイトのパラメタを含むオペレーションをIDL定義に定義します。
- IDL定義で定義したパラメタ名をワークユニット定義に定義します。
- サーバオブジェクト呼び出し時に、採番したセションIDを1.および2.で定義したパラメタに設定します。
- サーバオブジェクトでは、バインドを継続したい場合、セション継続APIを発行します。
- 2回目以降の呼び出し時も、3.の手順を行います。
- バインドを継続する必要がなくなった場合、セション継続APIを発行せずにサーバオブジェクトから復帰します。
IDL定義
IDL定義の記述例を示します。

ワークユニット定義
ワークユニット定義の記述例を示します。

プロセスバインド管理機能を使用するために必要なワークユニット定義を以下に示します。
[Application Program]セクションに以下の定義を設定します。
- Bind Type:バインド形式
- バインド形式を指定します。
- "DISABLE" : プロセスバインド機能を使用しない。
"PROCESS " : プロセス
"INSTANCE" : インスタンス
- プロセスバインド機能を使用する場合、必須です。
- Application Language:(アプリケーション言語)がC言語または、COBOL(COBOLはWindows(R)版、Solaris OE版のみです)の場合、"PROCESS "を設定してください。Application Language:(アプリケーション言語)がC++言語の場合、"INSTANCE"設定してください。
- SessionID Param:セションID通知パラメタ
- IDL定義で定義したセションIDを設定するためのパラメタ名を設定します。
- プロセスバインド機能を使用する場合、必須です。
- Method Name to Begin Session:セションを開始するメソッド名
- セションを開始するメソッド名を設定します。
- プロセスバインド機能を使用する場合、必須です。
- Maximum Session Active Time for Client:クライアント思考時間の最大時間
- クライアント思考時間の最大時間を秒単位で設定します。
- 0〜86400の整数値。
- 本ステートメントは省略可能です。
- 本ステートメントを省略した場合、省略値として300が設定されます。
- 0を指定した場合は時間監視を行いません。
- Recover Exit Program:異常出口プログラム
- クライアント思考時間超過となった場合に呼び出される異常出口プログラム名を設定します。
- 本ステートメントは、Application Language:(アプリケーション言語)がC言語または、COBOL(COBOLはWindows(R)版、Solaris OE版のみです)の場合のみ有効です。Application Language:(アプリケーション言語)がC++言語の場合、本ステートメントは無視されます。
- 本ステートメントは省略可能です。
- Request Assignment Mode:要求メッセージ振り分け方式
- クライアントからの要求メッセージを、要求待ちのサーバアプリケーションプロセスに振り分ける方式を指定します。
- プロセスバインド機能を使用する場合、本ステートメントに必ず“FIFO”を指定してください。
ワークユニット定義時の注意事項
- アプリケーション開発言語がC言語、COBOL(COBOLはWindows(R)版、Solaris OE版のみです)の場合、Bind Type:ステートメントに"INSTANCE"を設定することはできません。ワークユニット定義の登録に失敗します。
- アプリケーション開発言語がC++言語の場合、Bind Type:ステートメントに"PROCESS"を設定することはできません。ワークユニット定義の登録に失敗します。
- Bind Type:ステートメント に"PROCESS"または、"INSTANCE"を設定し、SessionID Paramステートメントを設定していない場合、ワークユニット定義の登録に失敗します。
- Bind Type:ステートメントに"PROCESS"または、"INSTANCE"を設定し、Method Name to Begin Sessionステートメントを設定していない場合、ワークユニット定義の登録に失敗します。
- Method Name to Begin Session:ステートメントに設定したメソッドのパラメタにSessionID Paramステートメントで設定したパラメタがない場合、ワークユニットの起動に失敗します。
- SessionID Param:ステートメントで設定したパラメタ名がIDL定義内でセションIDの形式と異なった型として定義されている場合、ワークユニットの起動に失敗します。
- Request Assignment Mode:ステートメントを省略した場合、または“LIFO”を指定した場合、1プロセスにセションが集中し性能劣化を引き起こすことがあります。
All Rights Reserved, Copyright (C) 富士通株式会社 2005