socketTimeout 値を設定する場合は、executionTimeout 値を考慮する必要があります。 executionTimeout プロパティーは、IMS Connect が IMS™ にメッセージを送信し、IMS から応答を受信するために許されている最大期間です。 socketTimeout 値には executionTimeout 値が含まれます。したがって、socketTimeout 値には executionTimeout プロパティーよりも大きな値を設定する必要があります。socketTimeout 値が executionTimeout 値よりも小さい値に設定されていれば、ソケットに不要なタイムアウトが発生することがあるためです。以下の表は、executionTimeout 値ごとの推奨 socketTimeout 値を示しています。
実行タイムアウト値 (ミリ秒) | 実行タイムアウトの動作 | ソケット・タイムアウトの推奨値 |
0 (または値なし) | IMS Connect 構成ファイルのデフォルト値が使用されます。 | ソケット・タイムアウト値には、IMS Connect 構成ファイルで指定された実行タイムアウトのデフォルト値よりも大きな値を設定する必要があります。 |
1 ~ 3,6000,000 | 指定期間 (ミリ秒) が経過すると、待機応答がタイムアウトになります。 | ソケット・タイムアウト値には、実行タイムアウト値よりも大きな値を設定する必要があります。 |
-1 | 待機応答は無期限です。 | 接続待機期間が無期限になるように、ソケット・タイムアウト値を 0 に設定します。 |
ソケット・タイムアウト値は、2 つの方法で設定できます。 1 つは、JCA Common Client Interface (CCI) を 使用して、IMSInteractionSpec が提供する getter および setter メソッドにアクセスするアプリケーションを 作成する方法です。もう 1 つは、Rational Application Developer に 組み込まれたツールを使用する方法です。
CCI アプリケーションを使用 してソケット・タイムアウト値を設定する方法
CCI アプリケーションを作成している場合は、IMSInteractionSpec の setSocketTimeout メソッドにアクセスできます。setSocketTimeout メソッドを使用する場合は、新しい IMSInteractionSpec のインスタンスを生成するか、または特定の対話から IMSInteractionSpec を取得する必要があります。その後で、IMSInteractionSpec クラスが提供する setSocketTimeout メソッドを使用して、IMSInteractionSpec の socketTimeout 値を設定します。例 :
interactionSpec.setSocketTimeout(timeoutValue1); interaction.execute(interactionSpec,input,output); interactionSpec.setSocketTimeout(timeoutValue2); interaction.execute(interactionSpec,input,output);
Rational Application Developer を使用してソケット・タイムアウト値を設定する方法
Rational Application Developer を使用して行う最初の方法では、新規 J2C Java Bean の IMS バインディング・プロパティーを最初に定義するときに、 ソケット・タイムアウト値を設定することができます。 IMS サービスに 関して既に定義されている IMS バインディング・プロパティーを編集するには、 以下のステップを実行します。