M3 事件概述

背景

本文档描述了 M3 中的事件订阅概念。它还简要概述了 M3 解决方案中的事件及其管理方式。

M3 事件概述

M3 中的事件是对触发业务对象的任务或系统的更改。包含数据和事件谓词的此业务对象成为 WebSphere 业务集成系统中的一个事件。

当 M3 BE 数据库 (db) 中发生重大更改或者在程序启动或停止时,会自动触发 M3 事件。从技术角度来看,当数据库记录提交到数据库时,事件由 M3 BE Foundation 层生成。基于程序的事件通过 M3 BE Foundation 运行时层创建。这是 M3 BE 应用程序逻辑的跨平台运行时框架,它为数据库访问、应用程序作业和子系统进程管理、客户端/服务器交互、输出管理和监视提供服务。

数据库 (db) 事件:数据库 (db) 事件是最常用的事件,并在创建、更新和删除任何数据库记录时生成。这些事件包含更改前后字段值的完整数据库记录,例如主键、时间戳、发起数据库更改的程序、启动进程的初始程序以及启动进程的用户的标识。

注意

仅保留在内存中的信息不包含在 M3 事件系统中,也不会在 M3 基础层之外执行数据库更新,例如外部 SQL 更新。

M3 事件系统基于由事件中心管理的“发布者 - 订阅者”关系,并且仅发布具有活动订阅者的事件。发布者自身不知道订阅者,只将事件发送到事件中心。事件中心的主要目的是确保事件由订阅者接收并且接收顺序与生成顺序相同。事件通常仅保留在内存中,以最大限度地提高性能,但如果订阅者无法接收已发布的事件,则可将其保存到日志中。交付给订阅者之后,事件将从事件中心中删除。

M3 事件用于多种场景,例如通过 Infor Enterprise Collaborator (MEC) 保持 Infor Enterprise Search (IES) 索引在线更新,触发业务对象文档 (BOD) 和其他消息。M3 BE 也可以订阅触发 M3 功能的事件,下面将进一步描述相关内容。

M3 事件订阅

M3 BE 用户可以在事件订阅 (CMS045) 中创建他们自己的事件订阅,用户可以在其中输入事件名称、发布者和可能的事件操作,例如创建、更新或删除。例如,在订阅 M3 BE 数据库事件时,事件名称等于数据库中的表名(大写字母,如对于主物料为 MITMAS),而发布者为 M3。对于程序事件,事件名称等于程序名称。如果订阅来自其他发布者的事件,请参阅应用程序的文档以获取有关如何将订阅添加到其事件中的更多信息。

用户还可以定义在什么情况下应使用事件订阅。其次,用户可以定义事件在相关功能中的使用。完成定义后,必须重启相关的 M3 BE 自动作业,才能在事件中心中激活订阅并缓存 M3 BE 中执行的定义,从而实现最佳性能。

通过使用事件操作,可以订阅某些类型的事件。例如,在“D”定义为操作的情况下,订阅仅针对数据库中的删除事件执行。这是一项很有用的功能,因为它会自动限制需要验证的事件的数量。

事件订阅针对跨所有可能的公司和分部的 M3 环境/租户执行。但是,事件活动的结果仅显示并用在事件的公司和分部中。例如,对于环境/租户中的所有公司,事件日志的定义可能相同,但仅对用户登录的公司显示结果。

注意

仅建议对更新次数有限的表使用 M3 事件。若加载至此订阅的事件过多,则可能会导致 M3 Business Engine、Event Hub 和相关产品中出现严重性能问题。