This topic applies only to the IBM Business Process Manager Advanced configuration.

存储转发限定符

存储转发限定符可用于在运行时发生异常时存储异步消息。 缺省情况下,将不启用该限定符。

该限定符允许您检测服务的问题(例如,在它不可用时),并存储发至服务的消息。 修正问题之后,可以使用业务空间存储转发窗口小部件重新提交消息。 该限定符的目标是,在目标服务不可用时停止处理消息并防止发生失败事件。

可以对任何导入、SCA 导出或组件指定该限定符。 可以将其应用于组件的所有接口、特定接口或特定操作。 异常触发该限定符之后,消息将保留在队列中。

以下部分说明如何设置该限定符、提供有关如何将其用于常见异常的指导并讨论绑定的首选交互样式(同步或异步):

如何设置该限定符

要添加存储转发限定符并将其与异常关联,请执行以下步骤:

  1. 选择导入或组件的属性视图,然后单击详细信息选项卡。
  2. 选择限定符子选项卡,然后单击添加
  3. 添加限定符窗口中,选择存储转发,然后单击确定。 该限定符的属性字段将打开。
  4. 配置名称字段中,输入限定符的名称。 该名称应适用于与其关联的服务。 例如,如果它与从 EIS 系统中获取员工信息的服务关联,那么可以将其称为 EmployeeDataFromEISSystem。 如果正在使用 Business Space 窗口小部件监控消息存储和停止存储(如果需要),那么该名称将显示在该窗口小部件中以标识该限定符。
  5. 要添加异常,请单击添加添加异常窗口将列出位于类路径中并扩展 java.lang.RuntimeException 类的所有类。 您可以编辑用于搜索的文本。 选择一个类,然后单击确定。 类名将添加到窗格中,标准名称将添加到异常名称字段中。 如果使用异常名称字段旁边的浏览,那么也可以根据第一个限定名进行选择,该限定名将检索特定类名。
  6. 要匹配的消息字段中,(可选)指定要在与异常关联的消息中匹配的消息。 星号 (*) 字符可用作通配符。
  7. 异常链下拉列表提供一些选项,因为原始异常通常会随时间推移与其他异常合并。 这种情况将创建从原始异常到顶级或外部级别的异常链。 该限定符将接收顶级异常,并根据您选择的选项对其进行检查。
    • 自原始异常开始匹配合并异常(缺省值):如果直接遇到指定的异常或另一个异常合并指定的异常,那么消息存储将开始。 它与“匹配合并异常”具有相同的结果,但可能会影响性能,因为该选项会先检查最嵌套的合并异常。
    • 仅匹配顶级异常:如果遇到指定的异常,那么消息存储将开始。 将不检查合并异常。
    • 匹配合并异常:如果遇到指定的异常或者如果遇到合并异常并且该异常直接或间接合并指定的异常,那么消息存储将开始。 从链中的顶级异常开始进行匹配。
    • 仅匹配原始异常:如果遇到异常,那么会将其递归展开。 如果展开过程导致找到指定的异常,那么消息存储将开始。
  8. 选择匹配从该类型继承的类型将包含从您所选异常继承的异常。 缺省情况下,未选中此选项。
切记:

将不存储失败后的第一条消息。 这是一种安全性机制,可避免有害消息。 有害消息是指已超出接收应用程序的最大传递尝试次数的消息。

您的组件可以具有多个操作并且可能具有多个接口。 如果其中某个操作触发了消息存储,那么将为所有接口上的所有操作存储消息。 换言之,一旦检测到服务的一个操作存在问题,整个服务(而不仅仅是遇到该问题的特定操作)会被认为受影响。

准则

以下将讨论如何为多个常见异常设置该限定符。 此外,还将提供有关该限定符所适用的级别(组件、接口或操作)如何更改该限定符作用域的信息。 已添加一个链接来帮助您从运行时文档中查找有关该限定符的更多信息。

如果要向在运行时不可用的 Web service 分配异常,那么您应采用以下方式设置该限定符:

  1. 将异常设置如下:ServiceUnavailableException(缺省值)。
  2. 将剩余字段保持不变。
  3. 如果要匹配该异常的特定消息,请将该消息的文本添加到要匹配的消息字段。

如果要向未安装并因此在运行时不可用的 SCA 导入分配异常,那么您应采用以下方式设置该限定符:

  1. 将异常设置如下:ServiceUnavailableException(缺省值)。
  2. 将剩余字段保持不变。
  3. 如果要匹配该异常的特定消息,请将该消息的文本添加到要匹配的消息字段。

如果 HTTP 导入与外部服务通信并且已知该服务未导致许多失败事件,请对该导入设置该限定符。 一旦该导入无法与外部服务通信(HTTP 状态代码 503),就会检测到失败情况。 消息将刚好存储在导入组件之前。 请采用以下方式设置该限定符:

  1. 将异常设置如下:ServiceUnavailableException(缺省值)。
  2. 将异常链选项设置为自原始异常开始匹配合并异常
  3. 将剩余字段保持不变。
  4. 对于 HTTP 导入,首选交互样式为同步。 请将其更改为异步。 请参阅首选交互样式,以获取有关绑定的首选交互样式的更多信息。

如果 SCA 导入与外部服务通信并且已知该服务未导致许多失败事件,请对该导入设置该限定符。 一旦该导入无法与外部服务通信,就会检测到失败情况。 消息将刚好存储在导入组件之前。 请采用以下方式设置该限定符:

  1. 将异常设置如下:ServiceRuntimeException
  2. 将异常链选项设置为自原始异常开始匹配合并异常
  3. 将剩余字段保持不变。
  4. SCA 导入缺省设置为其引用的 SCA 导出的首选交互样式,而 SCA 导出又具有其目标组件的首选交互样式。 请参阅首选交互样式,以获取有关绑定的首选交互样式的更多信息。

该限定符的作用域将根据其所适用的级别而有所变化:

  • 组件级别:一个或多个异常适用于组件上的所有接口和操作。
  • 接口级别:一个或多个异常适用于接口及其所有操作。 请注意,您指定的异常是对接口组件指定的异常之外的异常。
  • 操作级别:一个或多个异常仅适用于操作。 请注意,您指定的异常是对操作的组件或接口指定的异常之外的异常。

您可以在相关链接中的存储事件主题中找到有关该限定符的更多信息。

首选交互样式

首选交互样式为组件指定首选通信方式:同步或异步。 它在接口级别进行设置并且不受保证。 将显示每个绑定的缺省设置。 请注意,一些设置可进行更改。

表 1. 绑定的首选交互样式设置
绑定 导入缺省 导出缺省
HTTP 同步(可编辑) 同步
JCA(EIS 系统) 同步(可编辑) 同步(可编辑)
JMS 异步 异步
MQ 异步 异步
SCA 同步(可编辑) 同步(可编辑)
Web Service 同步(可编辑) 同步