“服务调用”调解原语属性

您可以使用 IBM® Integration Designer 用户界面中的属性字段或者使用 XML 格式来指定调解原语属性的值。在 IBM Integration Designer 中显示的属性字段名称一般不同于在使用 XML 代码构建调解流时使用的属性名称。在以下信息中,图标用于识别 IBM Integration Designer 中使用的每个属性名称以及相应的 XML 名称。(在适当情况下,还描述了 IBM Integration Designer 中未显示的必需 XML 名称。)

引用名称 referenceName

要调用的服务引用的名称。引用名称与 WSDL 接口相关。最初,引用名称是通过 IBM Integration Designer 窗口设置的,之后将无法更改。您必须创建新的“服务调用”调解原语以更改引用名称。

对于子流中的“服务调用”调解原语,引用在子流上定义且在创建子流实例时解析为父流中的引用。
字段详细信息 值和注释
必需
有效值 字符串
注:

操作名称 operationName

要调用的服务操作的名称。操作名称与 WSDL 操作相关。最初,操作名称是通过 IBM Integration Designer 窗口设置的,之后将无法更改。您必须创建新的“服务调用”调解原语以更改操作名称。

字段详细信息 值和注释
必需
有效值 字符串
注:

使用动态端点(如果已在消息头中设置) useDynamicEndpoint

确定是否应该使用 SMO 头字段目标(如果存在)来覆盖引用操作指定的服务端点。您可以使用“端点查找”调解原语来设置目标字段,或者您可以自己设置该字段。

注: “端点查找”调解原语在 WSRR 中搜索服务信息,且只能检索特定类型的端点。有关更多信息,请参阅:“端点查找”调解原语
字段详细信息 值和注释
必需
有效值 布尔值
注:
缺省值 true

异步超时(秒) asyncTimeout

某个调用与某个延迟的响应异步时,等待响应的时间。 异步超时属性未用于与回调异步的调用。

字段详细信息 值和注释
必需
有效值 整数
注:

如果异步超时0,那么不会等待,立即进行响应。如果异步超时-1,那么将无限期等待。发生超时时,将触发超时终端。就重试而言,将超时视为未建模故障。

缺省值 5

使用回调以异步方式调用流组件时,要求调解流等待服务响应。 forceSync

此属性仅对请求-响应操作有效,其中调用样式属性为“异步(兼容性)”或“缺省值(兼容性)”。 将该属性设置为 true选中该复选框),强制以同步方式执行服务调用。如果为 true,那么异步调用会导致延迟响应,而不是回调。如果整个调解流将在单个事务中运行(在此情况下,引用限定符“异步”也必须设置为“调用”,因为缺省限定符设置“落实”会导致死锁),那么将此属性设置为 true。如果将此属性设置为 false,并且调解原语参与“扇出/扇入”操作或包含在子流中,那么运行时环境将覆盖您的设置并将强制以同步方式执行服务调用。

字段详细信息 值和注释
必需
有效值 布尔值
注:
缺省值 false

调用样式 invocationStyle

使用同步样式时,服务与调解流在同一处理线程下执行。如果使用异步样式,在调用服务时会使用新处理线程。异步样式允许调解流在从服务接收到响应之前继续前进。调用样式可影响应用于服务调用的事务作用域,以及在服务响应失败的情况下是否可能出现超时。以下的表可以用于标识要使用哪种调用样式。

表 1. 请求/响应调用中的调用样式
请求/响应
作为目标
同步
具有延迟响应的异步方式
具有回调的异步方式
异步(兼容性)
缺省值(兼容性)
表 2. 单向调用中的调用样式
单向
作为目标
同步
异步单向
表 3. 请求/响应服务调用
属性 调用调解流组件的方式 目标的首选交互样式 调用样式
作为目标 同步   同步
异步单向 同步 同步
具有延迟响应的异步方式 异步或任意 具有回调的异步方式
具有回调的异步方式
同步     同步
具有延迟响应的异步方式     具有延迟响应的异步方式
具有回调的异步方式     具有回调的异步方式
表 4. 单向服务调用
属性 调用调解流组件的方式 目标的首选交互样式 调用样式
作为目标 同步 同步 同步
异步单向 异步或任意 异步单向
具有延迟响应的异步方式
具有回调的异步方式
同步     同步
异步单向     异步单向
表 5. 在请求/响应操作中使用不推荐的调用样式
属性 调用调解流组件的方式 目标的首选交互样式 使用回调以异步方式调用流组件时,要求调解流等待服务响应。 调用样式
异步(兼容性) 同步     同步
具有延迟响应的异步方式或异步单向     具有延迟响应的异步方式
具有回调的异步方式   True 具有延迟响应的异步方式
False 具有回调的异步方式
缺省值(兼容性) 同步、具有延迟响应的异步方式或异步单向 同步任意   同步
异步   具有延迟响应的异步方式
具有回调的异步方式 同步   同步
异步任意 True 具有延迟响应的异步方式
False 具有回调的异步方式
字段详细信息 值和注释
必需
有效值
缺省值 0
将此属性设置为缺省意味着调用样式由其他因素确定,例如目标的首选交互样式或者调解模块的导出使用的交互样式。
同步 1
如果设置为同步,那么会同步执行服务调用。当服务或绑定支持此功能时,此设置可允许服务包含在调解流的事务作用域内。
异步 2
将该属性设置为异步意味着异步执行服务调用,此服务在调解流事务的作用域之外。对于单向操作,引用限定符可以用于控制是否立即发送异步服务请求,或者调解流事务何时落实。异步设置还可以允许为延迟的响应设置异步超时。
注:
缺省值 缺省

参数映射 parameterMappings

仅在“消息富集”方式中工作时才启用参数映射表。您可以使用参数映射表来指定 XPath 表达式(这些表达式标识输入消息内要变换的元素),还指定其他 XPath 表达式(其定义必须放置响应消息元素的位置)。

字段详细信息 值和注释
参数 parameterType
预配置的只读值,识别要变换或更新的元素是否组成输入、输出或故障消息的一部分。有效类型是字符串。
名称 name
输入、输出或故障参数类型的预配置只读名称。有效类型是字符串。
类型 type
消息中的元素值的类型。有效类型是字符串。
value
指定 XPath 1.0 表达式,以识别要变换或更新的消息元素。使用 XPath 表达式构建器来构建定制 XPath 表达式。

将请求头传播至正在调用的服务 propagateRequestHeader

仅当在“消息富集”方式中工作时,才会启用将请求头传播到调用的服务复选框。如果您希望使用在输入终端收到的输入消息的头来填充发送到服务的请求消息,请选中此复选框。清除了此复选框时,从请求消息中排除该头。

字段详细信息 值和注释
必需
有效值 布尔值
注:
缺省值 false

从正在调用的服务传播响应头 propagateResponseHeader

仅当在“消息富集”方式中工作时,才会启用从调用的服务传播响应头复选框。如果您希望使用来自所调用服务的响应消息头填充输出消息,请选中此复选框。清除了此复选框时,将使用传递到调解原语的输入消息的头。

字段详细信息 值和注释
必需
有效值 布尔值
注:
缺省值 false

enrichmentMode

使用此属性来启用“消息富集”方式,其中由“服务调用”调解原语的输入终端接收的输入消息的一部分用于服务调用。

字段详细信息 值和注释
必需
有效值 布尔值
注:
缺省值 false

重试时间 retryOn

确定故障响应是否以及如何导致重试。该属性仅适用于请求-响应操作。

字段详细信息 值和注释
必需
有效值
从不 0
任意故障 1
已建模的故障 2
未建模的故障 3
注:

要启用重试,必须将重试条件属性的值设置为:任意故障未建模故障已建模故障。已建模故障是 WSDL 文件中显式列出的故障;任何其他故障都是未建模故障。

缺省值 永不

重试计数 retryCount

在触发输出终端之前应该重试服务调用的次数。触发的输出终端可以属于以下类型:已建模故障、超时失败

字段详细信息 值和注释
必需
有效值 整数
注:

该值可以是零或正整数。

缺省值 0

重试延迟(秒) retryDelay

两次重试尝试之间的延迟(以秒为单位)。

字段详细信息 值和注释
必需
有效值 整数
注:

该值可以是零或正整数。

缺省值 0

尝试备用端点 tryAlternateEndpoints

确定重试时是否应该使用 SMO 中的任何备用端点。设置为 true选中该复选框)以尝试备用端点。

仅当同时指定了使用动态端点时,此功能才可用。如果初始服务请求返回了任何故障,并且重试计数大于零,那么备用端点列表中的第一个端点用于重试。如果重试返回故障,并且下一次重试不会超过重试计数,那么将使用下一个备用端点。使用备用端点列表中的最后一个端点后,将会再次使用初始端点。

例如,假设第一个端点为 ServiceA,备用端点为 ServiceBServiceC。如果重试计数为 5,服务调用的顺序如下:ServiceAServiceBServiceCServiceAServiceBServiceC

字段详细信息 值和注释
必需
有效值 布尔值
注:
缺省值 true

注意事项

  • 异步超时属性设置为 -1(无限期等待)会影响性能。如果服务调用与延迟的响应异步,将耗用服务器资源,直到收到回复为止。
  • 在使用并行处理时,您应该考虑通过回调异步进行服务调用对事件排序的影响。
  • “调用”样式属性覆盖整个模块中指定的其他缺省属性。

样本 XML 代码

<node name="ServiceInvoke" type="ServiceInvoke">
  <property name="referenceName" value="myInterfacePartner"/>
  <property name="operationName" value="emit"/>
  <inputTerminal type="myInterface:myRequestMsg"/>
  <outputTerminal name="timeout" type="myInterface:myRequestMsg">
    <wire targetNode="MessageLogger1"/>
  </outputTerminal>
  <failTerminal/>
</node>