设置套接字超时值

设置 socketTimeout 值时,需要考虑 executionTimeout 值。executionTimeout 属性就是 IMS Connect 将消息发送至 IMS™,然后接收来自 IMS 的响应这一过程可以花费的最长时间。socketTimeout 值包括了 executionTimeout 值。因此,socketTimeout 值应该大于 executionTimeout 属性,这是因为如果将套接字超时值设置为小于 executionTimeout 值,套接字就可能会发生不必要的超时。下表列示了基于 executionTimeout 值的 socketTimeout 值。

执行超时值(毫秒) 执行超时行为 建议的套接字超时值
0(或者没有任何值) 使用 IMS Connect 配置文件中的缺省值。 套接字超时值应该大于 IMS Connect 配置文件中指定的执行超时缺省值。
1 - 3,6000,000 在经过指定的毫秒值之后,等待响应就超时。 套接字超时值应该大于执行超时值。
-1 等待响应是无穷的。 将套接字超时值设置为 0,以便连接会无限等待。

可以采用两种方法来设置套接字超时值。可以编写一个使用 JCA 公共客户机接口(CCI)来访问随 IMSInteractionSpec 一起提供的 getter 和 setter 方法的应用程序,或者使用 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 绑定属性,完成下列步骤:

  1. 使用 Java 编辑器打开相应的 IMS 绑定 Java 文件。
  2. 找到 IMSInteractionSpec 类的 doclet 标记。
  3. 修改 doclet 标记以添加 executionTimeout 属性(如果未将它列示出来的话),并为它指定。如果它已经列示出来,则修改
  4. 关闭编辑器并单击以保存更改。
相关概念
执行超时
套接字超时
相关任务
设置执行超时值
相关参考
有效的执行超时值
连接属性
IMSInteractionSpec 属性
使用条款 | 反馈
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.