executionTimeout は IMSInteractionSpec クラスのプロパティーです。設定した実行タイムアウト値は、IMS Connect が使用する値に変換されます。この変換は、IMS Connect の要件を満たすような方法で行われます。
重要: 他のタイムアウト値が対話に影響することがあります。
IMS™ 対話に設定された実行タイムアウト値よりも
他のタイムアウト値が小さい場合は、
他のタイムアウト値によって対話の有効期限が切れることがあります。他のタイムアウト値の例を、以下に示します。
- J2C 接続ファクトリーの接続タイムアウト・プロパティー
- EJB トランザクション・タイムアウト値
- ブラウザーのタイムアウト値
- サーブレット HTTP セッションまたは EJB セッション・タイムアウト値
例えば、WebSphere Application Server が z/OS
プラットフォーム上で実行されている場合、サーバーは、コントローラーと 1 つ以上のサーバントのセットの、
2 つのパーツで構成されます。アプリケーション処理は、サーバント領域にディスパッチされます。アプリケーション処理は、デフォルトでは、タイムアウトが設定されます。一般的に、ディスパッチ内のアプリケーションがそのタイムアウトに達したら、
それがディスパッチされているサーバント領域は異常終了され、再始動されます。サーバーは稼働したままで、処理を続行します。このため、WebSphere Application Server
のタイムアウト値より大きい実行タイムアウト値を選択する場合や、実行タイムアウト値として
-1 (無限に待機) を選択する場合は、注意が必要です。さらに、WebSphere Application Server のタイムアウトを使用不可にする計画がある場合は、
使用不可にした場合に暗黙的に発生する動作についてよく理解するために、サーバーの資料を確認する必要があります。
別の例として、ブラウザー応答に指定されたタイムアウト値よりも大きな実行タイムアウト値を構成した場合は、
先にブラウザー・タイムアウト値に達するため、実行タイムアウト値は決して使用されません。
IMSInteractionSpec クラスの executionTimeout プロパティー値は、以下の 2 つのうちのいずれかの方法で設定することができます。
- Rational Application Developer の使用
- setExecutionTimeout メソッドの使用
Rational Application Developer を使用して行う最初の方法では、新規
J2C Java Bean の IMS バインディング・プロパティーを最初に定義するときに、
実行タイムアウト値を設定することができます。
新規の J2C Java Bean に関して既に定義されている IMS
バインディング・プロパティーを編集するには、以下のステップを実行します。
- Java エディターを使用して適切な IMS バインディング Java ファイルを
開きます。
- IMSInteractionSpec クラスのドックレット・タグを見つけます。
- executionTimeout プロパティーを追加するようにドックレット・タグを変更します。
executionTimeout プロパティーがリストされていない場合は、それに値を指定します。
executionTimeout プロパティーがリストされている場合は、値を変更します。
- エディターを閉じ、「はい」をクリックして、変更を保管します。
注: 以下の『IMSInteractionSpec の executionTimeout プロパティーの公開』および
『setExecutionTimeout メソッドの使用』で記載されている方法を使用して、
対話ごとに異なるタイムアウト値を個々にコーディングすることもできます。
Java クライアント・アプリケーション・コード内で実行タイムアウト値をコーディングすると、Rational
Application Developer で設定した実行タイムアウト値はすべてこの値によって指定変更されます。
2 番目の方法では、setExecutionTimeout メソッドを使用して実行タイムアウト値を設定できます。
CCI アプリケーションを作成している場合は、IMSInteractionSpec の
setExecutionTimeout メソッドにアクセスできます。setExecutionTimeout メソッドを使用する場合は、新しい IMSInteractionSpec のインスタンスを生成するか、または特定の対話から IMSInteractionSpec を取得する必要があります。その後で、IMSInteractionSpec クラスが提供する setExecutionTimeout メソッドを使用して、IMSInteractionSpec の executionTimeout 値を設定します。例:
interactionSpec.setExecutionTimeout(timeoutValue);
IMSInteractionSpec の executionTimeout 値を設定したら、この interactionSpec を特定の対話に割り当てます。