捕获 Business Automation Workflow 事件以供外部使用

Draft comment:
This topic only applies to BAW, and is located in the BAW repository. Last updated on 2025-01-20 10:38
要收集事件 (可能出于审计原因) ,您可以配置动态事件框架 (DEF) 并预订要接收的事件。

关于本任务

使用 JMS 事件侦听器的 DEF,可以接收从 BPMN 和 BPEL 应用程序发出的 DEF 事件。 要使用事件侦听器,必须:
  1. 创建目标 JMS 队列以接收事件。
  2. 配置 JMS 事件侦听器的 DEF。
  3. 提供定制事件收集器以从目标 JMS 读取事件。
IBM® Business Automation Workflow 包含两个样本脚本,可用于配置 DEF 以接收事件。 这些脚本位于 install_root/BPM/Lombardi/tools/def 中。
表 1. 样本脚本
脚本 用途
SampleConfigureEventsToJMS.py 定义要使用的队列连接工厂、队列、事件预订和认证别名
SampleReloadDEF.py 使 DEF 动态刷新其配置
BPEL 应用程序的配置
只有在为业务流程管理器和人员任务容器启用公共事件基础结构日志记录时,BPEL 应用程序才能发出 DEF 事件。
  1. 登录到 WebSphere® Application Server 管理控制台。
  2. 单击 服务器 > 集群 > WebSphere Application Server 集群 > 集群名称 > Business Process Choreographer > 业务流程管理器
  3. 确保选中启用公共事件基础结构日志记录
  4. 单击 服务器 > 集群 > WebSphere Application Server 集群 > 集群名称 > Business Process Choreographer > 人员任务管理器
  5. 确保选中启用公共事件基础结构日志记录
  6. 如果您进行了一些更新,请保存配置,然后重新启动集群。

过程

  1. 要创建所需的 WebSphere 资源:
    1. 在单元作用域级别创建 JMS 队列连接工厂。
      Business Automation Workflow 管理控制台中,单击 资源 > JMS > 队列连接工厂
    2. 在单元作用域级别创建 JMS 队列。
      单击 资源 > JMS > 队列
    3. Business Automation Workflow 部署环境总线上定义目标。
      单击 服务集成 > 总线 ,然后单击总线。 单击目标并添加新的队列目标。
  2. 更新 SampleConfigureEventsToJMS.py 脚本。
    1. 指定以下值:
      defListenterId
      用于唯一标识此侦听器的字符串值
      eventQueueJndiName
      表示 WebSphere 中创建的队列资源的 JNDI 名称的字符串值
      eventQueueCFJndiName
      表示 WebSphere 中创建的队列连接工厂资源的 JNDI 名称的字符串值
      eventQueueCF_AuthorizationAlias
      表示 WebSphere 中创建的授权别名的字符串值
      提示: 您可以创建此脚本的第二个副本,以在需求更改时定义更多应用程序。 为每个应用程序创建唯一的 defListenerId 值,但使用相同的队列资源,这意味着其他三个值可以保持不变。
    2. 指定预订数组。
      预订数组中的每个预订都是单个字符串,七个部分键之间用正斜杠 (/) 分隔符分隔。 各个预订之间用逗号分隔。 七个部分键分别为
      Application Name / Version / ComponentType / Component Name / Element Type /
      Element Name / Nature
      有关每个部件的描述,请参阅 事件点键和过滤器
      要侦听所有应用程序的每个事件,请使用通配符,如以下示例所示:
      subscriptions=[
      '*/*/*/*/*/*/*'
      ]
      以下示例显示了如何注册以接收 Hiring Sample 的事件:
      subscriptions=[
      'HSS/*/BPD/*/PROCESS/*/*',
      'HSS/*/BPD/*/ACTIVITY/*/*',
      'HSS/*/BPD/*/GATEWAY/*/*',
      'HSS/*/BPD/*/EVENT/*/*'
      ]
  3. 运行脚本以配置 DEF。
    1. 在命令行上,转至 Deployment Manager 概要文件主目录下的 bin 目录。 运行 SampleConfigureEventsToJMS.py 脚本。
      wsadmin –lang jython –f c:\SampleConfigureEventsToJMS.py
    2. 运行 SampleReloadDEF.py 脚本以动态刷新 DEF。
      wsadmin –lang jython –f c:\SampleReloadDEF.py
    运行样本脚本后,将在 dmgr_profile_home/config/cells/cellName 目录中创建 defconfig.xml 文件。

下一步

您可以在管理控制台中检查队列上的事件。
  1. 单击 服务集成 > 总线 ,然后单击 Business Automation Workflow 部署环境总线。
  2. 单击目标并查找目标队列。 单击 队列点。 单击 运行时 选项卡。 在“常规属性”下,可以设置当前消息深度。 在 其他属性下,单击 消息 以查看消息。
提示: 高消息阈值 的缺省值为 50,000 ,但您应该将其更改为您满意的更高值。 提供实施以从队列中排出事件。 例如,可以使用消息驱动的 bean (MDB),以从事件队列读取并将 XML 写入文件或外部数据库。