A.2. 消息传递子系统迁移操作警告

迁移 操作无法处理所有资源和属性。下表列出了您在运行 messaging 子系统的迁移或 描述 迁移 操作时可能会看到的一些警告。

注意

如果您在迁移操作的输出中看到"Can not migrate"或"Can not migrate "条目,这表示服务器配置迁移成功完成,但无法自动迁移所有元素和属性。您必须遵循"migration-warnings"提供的建议来修改这些配置。

Warning 消息它是什么,如何修复它

无法执行 迁移 操作:服务器必须只处于 管理员模式

迁移 操作需要以 admin-only 模式启动服务器,具体方法是将 --start-mode=admin-only 添加到 server start 命令中:

$ EAP_HOME/bin/standalone.sh --start-mode=admin-only

无法从资源 X 迁移属性 local-bind-address。改为使用 socket-binding 属性来配置此 广播组

该消息包含说明及其修复方法。

无法从资源 X 迁移属性 local-bind-port。改为使用 socket-binding 属性来配置此 广播组

该消息包含说明及其修复方法。

无法从资源 X 迁移属性 group-address。改为使用 socket-binding 属性来配置此 广播组

该消息包含说明及其修复方法。

无法从资源 X 迁移属性 group-port。改为使用 socket-binding 属性来配置此 广播组

broadcast-group 资源不再接受 local-bind-addresslocal-bind-portgroup-addressgroup-port 属性。它仅接受 socket-binding 属性。警告是资源 X 具有不支持的属性的通知。您必须手动设置资源的 socket-binding 属性,并确保它与定义的 socket-binding 资源对应。

迁移期间丢弃提供 X 的类。要在新的 messaging-activemq 子系统中使用它们,您必须扩展基于 Artemis 的 拦截器

在 JBoss EAP 7 中,消息传递拦截器支持有很大不同。迁移期间丢弃在先前版本的子系统中配置的拦截器。如需更多信息,请参阅Migrate Messaging Interceptors

无法迁移 X 的 HA 配置。其 共享存储和 备份 属性包含表达式,因此无法明确地确定如何为 messaging -activemq 服务器创建对应的 ha-policy

这意味着 hornetq-server X共享存储或 备份 属性包含一个表达式,如 ${xxx},迁移操作无法将其解析为具体表达式。该值将被丢弃,并且 messaging- activemq 的 ha- policy 必须手动更新。

无法从资源 X 迁移属性 local-bind-address。改为使用 socket-binding 属性来配置此 discovery-group

该消息包含说明及其修复方法。

无法从资源 X 迁移属性 local-bind-port。改为使用 socket-binding 属性来配置此 discovery-group

该消息包含说明及其修复方法。

无法从资源 X 迁移属性 group-address。改为使用 socket-binding 属性来配置此 discovery-group

该消息包含说明及其修复方法。

无法从资源 X 迁移属性 group-port。改为使用 socket-binding 属性来配置此 discovery-group

discovery-group 资源不再接受 local-bind-addresslocal-bind-portgroup-addressgroup-port 属性。它仅接受 socket-binding。警告是资源 X 具有不支持的属性的通知。您必须手动设置资源的 socket-binding 属性,并确保它与定义的 socket-binding 资源对应。

无法基于 connection -factory X 创建 legacy-connection -factory。它使用与 Artemis in-vm 连接器不兼容的 HornetQ in-vm 连接器

传统的 HornetQ 远程 connection-factory 资源迁移到 legacy-connection-factory 资源,以允许 JBoss EAP 6 客户端连接到 JBoss EAP 7。但是,只有在 connection-factory 使用远程连接器时才创建 legacy -connection -factory 资源。使用 in-vm 的任何 connection- factory 都不会迁移 ,因为 in-vm 客户端基于 JBoss EAP 7,而非 JBoss EAP 6。此警告是通知 in-vm connection-factory 没有迁移。

无法从资源 Y 迁移属性 X.属性使用表达式,该表达式可以根据系统属性以不同的方式解析。迁移后,必须用实际值而非表达式重新添加此属性。

当迁移过程中无法将属性 X 解析为具体值时会出现这个警告。该值将被丢弃,并且必须手动迁移 属性。在以下情况下会出现这种情况:

  • cluster-connection forward-when-no-consumers:

    此布尔值属性已被 message-load-balancing-type 属性取代,该属性值为 OFF、STRICTON_DEMAND

  • broadcast-groupdiscovery-groupjgroups-stackjgroups-channel 属性

    它们引用其他资源,JBoss EAP 7 不再接受这些表达式。

无法从资源 Y 迁移属性 X.新的 messaging-activemq 子系统不支持此属性。

新的 messaging-activemq 子系统不再支持一些属性,只被丢弃:

  • HornetQ-serverfailback-delay
  • HTTP-connectoruse-nio 属性
  • http-acceptoruse-nio 属性
  • remote-connectoruse-nio 属性
  • remote-acceptoruse-nio 属性

无法从资源 X 中迁移属性 failback-delay。Artemis 检测故障恢复确定性,不再需要指定发生故障恢复的延迟。

该消息包含说明内容。

替换已弃用的广播组或 discovery-group Attributes

如果您建议将已弃用的 broadcast-groupdiscovery-group 属性替换为 socket-binding 属性,您可以使用管理 CLI 来添加新属性。

本示例假定您要迁移一个单机服务器,它将在 messaging 子系统中包含以下 discovery-group 配置:

<discovery-groups>
    <discovery-group name="my-discovery-group">
        <group-address>224.0.1.105</group-address>
        <group-port>56789</group-port>
    </discovery-group>
</discovery-groups>

当您为 messaging 子系统运行 迁移 操作时,您会看到以下输出和警告:

/subsystem=messaging:migrate
{
    "outcome" => "success",
    "result" => {"migration-warnings" => [
        "WFLYMSG0084: Can not migrate attribute group-address from resource [
    (\"subsystem\" => \"messaging-activemq\"),
    (\"server\" => \"default\"),
    (\"discovery-group\" => \"my-discovery-group\")
]. Use instead the socket-binding attribute to configure this discovery-group.",
        "WFLYMSG0084: Can not migrate attribute group-port from resource [
    (\"subsystem\" => \"messaging-activemq\"),
    (\"server\" => \"default\"),
    (\"discovery-group\" => \"my-discovery-group\")
]. Use instead the socket-binding attribute to configure this discovery-group."
    ]}
}

迁移 操作会在新的 messaging-activemq 子系统中创建名为 "my-discovery- group"的 discovery-group,现已配置如下:

<discovery-group name="my-discovery-group"/>

现在,您必须使用以下管理 CLI 命令,在服务器配置文件中创建名为"my -discovery-group-socket-binding"的 socket -binding 元素。

/socket-binding-group=standard-sockets/socket-binding=my-discovery-group-socket-binding:add(multicast-address=224.0.1.105, multicast-port=56789)

接下来,使用下列管理 CLI 命令,将新创建的 socket -binding 添加到服务器配置文件中 messaging- activemq 子系统中名为"my- discovery-group"的 discovery -group:

/subsystem=messaging-activemq/server=default/discovery-group=my-discovery-group:write-attribute(name=socket-binding,value=my-discovery-group-socket-binding)

这些命令在服务器配置文件中创建以下 XML:

<subsystem xmlns="urn:jboss:domain:messaging-activemq:4.0">
    <server name="default">
        ...
        <discovery-group name="my-discovery-group" socket-binding="my-discovery-group-socket-binding"/>
        ...
    </server>
</subsystem>
...
<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">
    ...
    <socket-binding name="my-discovery-group-socket-binding" multicast-address="224.0.1.105" multicast-port="56789"/>
    ...
</socket-binding-group>