【问题标题】:Weblogic migratable JMS consumer doesn't follow the service to the new managed server if the old server remains running如果旧服务器仍在运行,Weblogic 可迁移 JMS 使用者不会跟随服务到新的托管服务器
【发布时间】:2015-02-13 00:35:19
【问题描述】:

我有一个针对可迁移目标的 JMS 服务(使用 Auto-Migrate Exactly-Once 策略),该集群由 2 个托管服务器组成,在任何时间点,该服务都托管在其中一个服务器和使用者(针对集群)应该无缝接收消息,无论服务托管在哪里。

当我手动切换可迁移目标的主机(单击迁移)时,没有关闭托管托管服务器,消费者无法接收发送到队列的消息,除非我关闭之前的托管托管服务器强制消费者新主机。

我可以排除发件人的问题,我可以在消息发送后立即看到队列中的消息。

如果有人能就如何配置消费者或可迁移服务以在迁移发生时无缝工作提供建议,我将不胜感激。

【问题讨论】:

  • 您是否尝试过“崩溃”您的一台服务器以查看它是否可以迁移和工作?我想知道这是否与通过控制台强制迁移有关
  • 就像我说的,当关闭托管目标的托管服务器时,它会强制目标迁移到第二个托管服务器并且工作完美。问题是当我保持托管服务器运行但手动启动迁移时。

标签: migration jms weblogic


【解决方案1】:

我认为这可能只是对迁移工作原理的误解。 docs 状态 Auto-Migrate Exactly-Once:

表示如果候选列表中至少有一个托管服务器 正在运行,则 JMS 服务将在 集群,如果服务器应该失败或关闭(优雅或 强制)。例如,托管路径服务的可迁移目标 应该使用此选项,以便在其托管服务器出现故障或关闭时, 路径服务将自动迁移到另一台服务器,因此 将始终在集群中处于活动状态。请注意,此值可能导致 目标分组。例如,如果您有五个可一次性迁移 目标并且只启动一个服务器成员,然后所有五个 可迁移目标将在该服务器成员上激活。

文档还声明:

手动服务迁移——固定 JTA 和手动迁移 JMS 相关服务(例如,JMS 服务器、SAF 代理、路径 服务和自定义存储)在主机服务器实例失败后

您的服务器/服务既没有失败也没有关闭,您正在强制它迁移,而主机仍然运行正常,因此它不符合迁移条件。

也可以查看更多here

【讨论】:

    【解决方案2】:

    我的一些经历听起来让人想起你正在看的东西。在将 JMS 目标中的重新配置识别为集群服务器设计的一部分时,有一些 WLS 特定的功能。

    在一种情况下,我必须调用 WLS 特定的方法:weblogic.jms.extensions.WLSession.setExceptionListener()。这是关于他们对 JMS Session 接口的实现。这类似于标准的 JMS Connection.setExceptionListener()。

    使用此 WLS 特定功能,WLSession.setExceptionListener() 回调将发生在消费客户端应断开并重新建立连接/会话/消费者以响应已发生的重新配置(迁移)的位置.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-06
      • 1970-01-01
      相关资源
      最近更新 更多