策略概述
策略可控制特定节点属性(例如连接凭证)以及消息流行为的某些方面(包括流速率)。 策略提供了可以复用的共享定义和受管定义。
- 开发者可以使用策略来控制运行时行为,并在多个位置复用配置信息,从而消除重复工作。 策略用于在运行时覆盖消息流属性,可以更新诸如连接详细信息之类的信息,而不必更新消息流。
- 管理员可以使用策略为每个环境定义关键配置数据,并覆盖消息流开发人员指定的属性。 如果不同环境(例如,开发、测试和生产系统)的连接详细信息不同,那么此功能非常有用。 管理员还可以使用可能不可供开发者使用的敏感数据来更新策略。
- 操作员可以使用策略动态监视和修改配置数据。
{PolicyProjectName}:PolicyName如果找不到指定的策略,那么无法启动消息流。MbPolicy myUserPolicy = getPolicy("UserDefined", "{MyPolicyProject}:MyUserPolicy");策略是 XML 文档,由缺省安装目录中的 XML 模式定义 (Policy.xsd) 进行定义。 例如,在 Windows上,可以在 C:\Program Files\IBM\ACE\version\common\schemas\Policy中找到策略定义文件。
可配置服务
策略将替换 App Connect Enterprise中的可配置服务。 您可以使用 mqsiextractcomponents 命令将现有可配置服务迁移到策略 (请参阅 mqsiextractcomponents 命令)。
在 App Connect Enterprise中不推荐使用 mqsicreateconfigurableservice 命令,并且不再创建可配置服务。 但是,如果在 IBM Integration Bus 脚本中使用 mqsicreateconfigurableservice 命令,那么此命令将在 App Connect Enterprise 中创建同等策略 (如果支持) (请参阅 mqsicreateconfigurableservice 命令 (不推荐))。
mqsicreateconfigurableservice 命令创建的策略在缺省策略项目 (DefaultPolicies) 中创建,并与 集成节点相关联。 这些策略由该 集成节点上的所有 集成服务器 继承。 通过将策略的更新版本部署到该 集成服务器,可以覆盖 集成服务器 从 集成节点 继承的策略。 或者,可以将更新后的策略放在 集成服务器 工作目录的 overrides 子目录中 (请参阅 覆盖的优先顺序)。
策略项目
- 策略项目可能包含特定 集成服务器的所有策略。
- 该项目可能包含 集成服务器的特定类型的所有策略 (例如,所有 JDBC 提供程序策略)。
- 可能包含特定应用程序的所有策略。
缺省策略项目和策略
在 集成服务器的 server.conf.yaml 文件中定义了名为 DefaultPolicies 的缺省策略项目。 mqsicreateconfigurableservice 命令创建的策略是在此缺省策略项目中创建的。 您还可以通过在 集成服务器 上的 server.conf.yaml 文件中为该 集成服务器 设置资源来指定用于控制这些资源的特定缺省策略 (请参阅 通过修改 server.conf.yaml 文件来配置集成服务器)。 例如,server.conf.yaml 文件的以下摘录显示了您可以指定缺省“监视概要文件”策略来为消息流配置监视功能。 有关更多信息,请参阅 监视概要文件。
Defaults:
#defaultApplication: '' # Name a default application under which independent resources will be placed
#policyProject: 'DefaultPolicies' # Name of the Policy project that will be used for unqualified Policy references. Default is 'DefaultPolicies'
Policies:
# Set default policy names, optionally qualified with a policy project as {policy project}:name
#monitoringProfile: '' # Default Monitoring profile
创建策略后,在 server.conf.yaml 文件中设置策略的名称。 如果缺省策略位于缺省策略项目中,那么不需要指定策略项目的名称。 如果缺省策略位于非缺省策略项目中,请使用策略项目的名称限定策略名称 ({policyProject}:PolicyName)。
策略部署
可以在独立 BAR 文件或具有关联消息流的 BAR 文件中的策略项目中部署策略。 作为管理员,您还可以使用 集成服务器的 overrides 子目录来覆盖已部署的策略。 有关更多信息,请参阅 在运行时使用 overrides 目录覆盖已部署的策略。 如果在消息流或消息流节点上专门设置了策略名称,必须先部署策略,然后才能启动消息流。 如果没有在消息流或消息流节点上显式指定策略,必须先部署策略或使用消息流部署策略。
您可以在部署策略后通过重新部署策略项目来更改和重新部署这些策略。 重新部署动态策略时,使用该策略的所有消息流都将停止并重新启动。 对于非动态策略(在应用程序和消息流使用这些策略时无法进行部署),必须在部署操作中通过在 mqsideploy 或 ibmint deploy 命令上指定 --restart-all-applications 参数来重新启动所有应用程序。 有关可重新部署的策略类型的更多信息,请参阅 策略属性。
已部署的策略显示在 集成服务器 工作目录的 run 子目录中具有策略项目名称的子目录内。 您可以在 IBM App Connect Enterprise Toolkit 的 Integration Explorer 或 Web 用户界面的 策略 选项卡上查看已部署策略的属性 (请参阅 访问 Web 用户界面)。 您还可以通过使用 REST API 或 Web 用户界面来查看运行时已部署的流正在使用的属性。
有关策略部署的更多信息,请参阅 使用 IBM App Connect Enterprise Toolkit 创建策略中的 "后续操作"。
覆盖的优先顺序
您可以通过将更新后的策略项目放在 集成服务器 工作目录的 overrides 子目录中并重新启动 集成服务器 来覆盖已部署的策略 (请参阅 在运行时使用 overrides 目录覆盖已部署的策略)。
- HTTP 或 HTTPS 连接器策略中的属性会完全覆盖 HTTP 或 HTTPS 连接器在 server.conf.yaml 文件的 ResourceManagers 部分中设置的那些属性。
- 工作目录的 overrides 子目录下策略中的值会覆盖已部署策略中的值。
- 已部署策略中的值将覆盖由 mqsicreateconfigurableservice 命令创建的集成节点级别策略中的值。
- 集成节点级别策略中的值优先于在 BAR 文件中覆盖或在节点上设置的值。
- 当操作属性值不存在策略时, BAR 文件中覆盖的值优先于节点上设置的值。
- 当操作属性值不存在策略或 BAR 文件覆盖时,节点上设置的值优先。
策略将替换 IBM App Connect Enterprise 11.0中的可配置服务。 在之前的版本中,如果您将可配置服务用于覆盖运行时的节点属性,配置服务中的空白属性将使用空值覆盖节点属性。 但是,当使用策略时,策略中的空白属性不会使用空值覆盖节点属性。 在这种情况下,将使用由节点属性设置的值。
策略类型
除了 策略属性中列出的策略类型外,监视概要文件以及策略集和绑定是可用于在运行时覆盖属性的策略形式。 有关这些类型的策略的更多信息,请参阅 监视概要文件 和 策略集。