8.7. 管理多个 JBoss EAP 版本
最新版本的 JBoss EAP 可以管理运行较早版本的 JBoss EAP 服务器和主机。根据您需要管理的 JBoss EAP 版本,请参见相应的部分。
8.7.1. 将 JBoss EAP 7.x 域控制器配置为管理员 JBoss EAP 6 实例
JBoss EAP 7.1 域控制器可以管理运行 JBoss EAP 6 的主机和服务器,只要它们是 JBoss EAP 6.2 或更高版本。
对于管理不同补丁版本的 JBoss EAP 7.0 域控制器,无需任何配置更改。但是,JBoss EAP 7.0 域控制器必须运行一个等于或大于其管理的主机控制器上的版本的补丁版本。
完成以下任务,在 JBoss EAP 7 受管域中成功管理 JBoss EAP 6 实例。
完成这些任务后,您可以使用管理 CLI 从 JBoss EAP 7 域控制器管理 JBoss EAP 6 服务器和配置。请注意,JBoss EAP 6 主机将无法利用新的 JBoss EAP 7 功能,如批处理。
由于管理控制台针对 JBoss EAP 的最新版本进行了优化,因此您不应用它来更新 JBoss EAP 6 主机、服务器和配置文件。在从 JBoss EAP 7 受管域管理 JBoss EAP 6 配置时,应改为使用管理 CLI。
8.7.1.1. 将 JBoss EAP 6 配置添加到 JBoss EAP 7 域控制器
若要让域控制器管理 JBoss EAP 6 服务器,您必须在 JBoss EAP 7 域配置中提供 JBoss EAP 6 配置详细信息。您可以通过将 JBoss EAP 6 配置文件、套接字绑定组和服务器组复制到 JBoss EAP 7 domain.xml 配置文件来实现
此操作。
如果与 JBoss EAP 7 配置中的现有名称有任何冲突,您需要重命名资源。为确保正确行为,还需要做一些额外的调整。
以下步骤使用 JBoss EAP 6 默认
配置文件、standard -sockets
套接字绑定组和 main-server-group
服务器组。
-
编辑 JBoss EAP 7
domain.xml
配置文件。建议先备份此文件,然后再编辑。 将适用的 JBoss EAP 6 配置文件复制到 JBoss EAP 7
domain.xml
文件。此流程假定 JBoss EAP 6
默认
配置文件已复制并重命名为eap6-default
。JBoss EAP 7
domain.xml
<profiles> ... <profile name="eap6-default"> ... </profile> </profiles>
添加此配置集使用的必要扩展。
如果您的 JBoss EAP 6 配置文件使用 JBoss EAP 7 中不再存在的子系统,您必须将适当的扩展添加到 JBoss EAP 域配置中。
JBoss EAP 7
domain.xml
<extensions> ... <extension module="org.jboss.as.configadmin"/> <extension module="org.jboss.as.threads"/> <extension module="org.jboss.as.web"/> <extensions>
将适用的 JBoss EAP 6 套接字绑定组复制到 JBoss EAP 7
domain.xml
文件。此流程假定 JBoss EAP 6
标准套接字绑定
组已复制并重命名为eap6-standard-sockets
。JBoss EAP 7
domain.xml
<socket-binding-groups> ... <socket-binding-group name="eap6-standard-sockets" default-interface="public"> ... </socket-binding-group> </socket-binding-groups>
将适用的 JBoss EAP 6 服务器组复制到 JBoss EAP 7
domain.xml
文件。此流程假定 JBoss EAP 6
main-server-group
服务器组已复制并重命名为eap6-main-server-group
。您还必须更新此服务器组,以使用 JBoss EAP 6 配置文件、eap6-default
和 JBoss EAP 6 套接字绑定组eap6-standard-sockets
。JBoss EAP 7
domain.xml
<server-groups> ... <server-group name="eap6-main-server-group" profile="eap6-default"> ... <socket-binding-group ref="eap6-standard-sockets"/> </server-group> </server-groups>
8.7.1.2. 更新 JBoss EAP 6 配置文件的行为
根据 JBoss EAP 版本和所需行为,需要对 JBoss EAP 6 实例使用的配置集进行其他更新。根据现有 JBoss EAP 6 实例使用的子系统和配置,您可能需要进行其他更改。
启动 JBoss EAP 7 域控制器并启动其管理 CLI,以执行下列更新:这些示例假定 JBoss EAP 6 配置文件为 eap6-default
。
移除
bean-validation
子系统:JBoss EAP 7 将 bean 验证功能从
ee
子系统移到其自身的子系统bean-validation
。如果 JBoss EAP 7 域控制器看到 legacyee
子系统,它将添加新的bean-validation
子系统。但是,JBoss EAP 6 主机将不会识别此子系统,因此必须移除它。JBoss EAP 7 域控制器 CLI
/profile=eap6-default/subsystem=bean-validation:remove
设置 CDI 1.0 行为。
仅当您想要用于 JBoss EAP 6 服务器的 CDI 1.0 行为时,这才是必需的,而不是 JBoss EAP 7 中之后使用的 CDI 版本的行为。如果您希望 CDI 1.0 的行为,请对
weld
子系统进行以下更新:JBoss EAP 7 域控制器 CLI
/profile=eap6-default/subsystem=weld:write-attribute(name=require-bean-descriptor,value=true) /profile=eap6-default/subsystem=weld:write-attribute(name=non-portable-mode,value=true)
启用 JBoss EAP 6.2 的数据源统计信息.
仅当您的配置文件供 JBoss EAP 6.2 服务器使用时才需要。JBoss EAP 6.3 引入了
支持 statistics
的属性,默认为false
,不收集统计数据;但是,JBoss EAP 6.2 的行为是收集统计数据。如果 JBoss EAP 6.2 主机和运行较新的 JBoss EAP 版本的主机使用此配置文件,则主机之间的行为会不一致,这是不允许的。因此,供 JBoss EAP 6.2 主机使用的配置文件应对其数据源进行以下更改:JBoss EAP 7 域控制器 CLI
/profile=eap6-default/subsystem=datasources/data-source=ExampleDS:write-attribute(name=statistics-enabled,value=true)
8.7.1.3. 设置 JBoss EAP 6 服务器的服务器组
如果您重命名了服务器组,您需要更新 JBoss EAP 6 主机配置,以使用 JBoss EAP 7 配置中指定的新服务器组。本例使用 JBoss EAP 7 domain.xml
中指定的 eap6-main-server-group
服务器组。
JBoss EAP 6 host-slave.xml
<servers> <server name="server-one" group="eap6-main-server-group"/> <server name="server-two" group="eap6-main-server-group"> <socket-bindings port-offset="150"/> </server> </servers>
与主机正在运行的版本相比,主机无法使用较新版本的 JBoss EAP 中引入的功能或配置设置。
8.7.1.4. 阻止 JBoss EAP 6 实例接收 JBoss EAP 7 更新
受管域中的域控制器将配置更新转发到其主机控制器。您必须使用 host-exclude
配置来指定应在特定版本中隐藏的资源。为您的 JBoss EAP 6 版本选择适当的预配置 host-exclude
选项: EAP62
、EAP63
、EAP64
或 EAP64z
。
host
属性指定特定版本使用的服务器组的列表。这些服务器组及其关联的配置文件、套接字绑定组和部署资源将提供给此版本的主机,但所有其他内容都将从这些主机中隐藏。
-exclude 配置的 active-
server-groups
本例假定版本为 JBoss EAP 6.4.z,并将 JBoss EAP 6 服务器组 eap6-main-server-group
添加为活动服务器组。
JBoss EAP 7 域控制器 CLI
/host-exclude=EAP64z:write-attribute(name=active-server-groups,value=[eap6-main-server-group])
如果需要,您可以使用 active-socket-binding-groups
属性指定供服务器使用的额外套接字绑定组。这只适用于没有与 active-server-groups 中指定的服务器组关联的套接字绑定组
。