问题标签 [openmq]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2263 浏览

jms - Open MQ 使用哪种传输协议?

我听 IBM 的一个人谈论MQTT,他说 MQTT 是迄今为止最轻量级的消息传递协议。他的论点是单个消息产生的最小开销是 2 个字节。但是,我也听说过关于 HTML5 WebSockets 的相同(2 字节开销)?无论如何,因为我计划使用Open MQ作为消息传递应用程序的 JMS 提供程序,所以我的提供程序使用的协议引起了我的兴趣。我在任何地方都找不到该问题的答案,我什至搜索了 Open MQ 文档和使用 Open MQ 作为 JMS 提供程序的 GlassFish 文档。Internet 上的一些博客文章等说AMQP,但我找不到可靠的参考来支持该声明。

Open MQ 使用哪种协议,您怎么知道?

0 投票
1 回答
10379 浏览

java - Spring MQ JMS 重连配置

首先,我有一个关于如何配置 JMS MQ 以在代理连接关闭并重新启动时重新连接到应用程序的问题。

以下是我尝试过的,

这是我最初在 spring-mq-jms-connections.xml 中的配置

我用下面的配置替换了它,引入了“DefaultMessageListenerContainer”,它将包装“SingleConnectionFactory”。

但是在此配置更改后,我开始收到以下异常。

它说'destination'或'destinationName'是必需的,我正在处理遗留代码,不知道在哪里寻找这个或者当我更改配置时我正在做正确的事情。

当代理连接因异常或重新启动而中断时,请建议是否有更好的方法将 OpenMQ 与应用程序重新连接。我还查看了带有异常侦听器的 spring jms 连接工厂,但无法弄清楚。

0 投票
1 回答
151 浏览

java - 消息队列应用程序

我被告知要为某些应用程序开发像 MSMQ 这样的消息队列,但它必须用 Java 编写,以便能够在 Linux 服务器上工作。一位同事通过 glassfish 测试了 openmq,但速度非常慢,即使在同一台计算机上同时拥有这两个应用程序也是如此。它会在慢速计算机上延迟每条消息 1 秒,在快速计算机上延迟 0.8 秒,我阅读了他的代码,一切似乎都很好,延迟似乎是由 openmq glassfish 函数(不是他的代码)引起的。

我已经阅读了一堆与该主题相关的东西,但我找不到图书馆或其他东西(我看过 zeromq、openmq,我不知道它们是否适合,因为它们似乎是面向管理而不是提供服务) . 我认为唯一适合我需要的是 MSMQ,由于我之前给出的原因,我无法使用它。

几个月后,它将被用于传达至少 200 个实时应用程序

这个问题的主要原因是尝试获得有关我应该使用什么的建议,或者是否有人将 openmq 与 glassfish 一起使用并且效果很好,我应该重新检查该代码以查找问题。

0 投票
1 回答
1342 浏览

glassfish - 如何更改在 Glassfish 3.1.1 中作为 LOCAL 运行的 OpenMQ 代理的默认密码?

我正在尝试更改在 Glassfish 集群中作为 LOCAL 运行的 OpenMQ 代理实例中管理员用户的默认密码。我尝试在本地登录服务器并使用 imqusermgr 工具,但没有成功。我猜我必须使用一些 asadmin set 命令,但我不知道是哪一个。

0 投票
1 回答
1248 浏览

spring - 使用 Glassfish 和 Spring 更改 JMS 设置

在我们的项目中,我们使用 Glassfish v3.1.2.2,ConnectionFactory 绑定为“jms/ConnectionFactory”,队列绑定为“jms/Queue”。两者都是在 glassfish 管理控制台中创建的:

Spring 配置是这样实现的:

到目前为止一切正常,消息将毫无问题地发送到队列并从队列中消费。使用 RuntimeException 回滚消息也可以。

问题是,如何更改一些基本设置,例如激活规范中的 RedeliveryAttempts 或 RedeliveryInterval。我找不到任何解决方案来仅使用 MDB 使用 Spring 来更改它。有没有办法在 Glassfishs 管理控制台或 Spring 配置中执行此操作?我必须使用一些不同的实现还是不可能?

希望任何人都可以提供帮助。在此先感谢,丹尼

0 投票
1 回答
751 浏览

java - 为 Glassfish 嵌入式消息代理设置 Java 运行时环境

我正在尝试通过以下链接在我的本地 Windows 机器中的 Glassfish 2.1.1 中设置 JMS

http://www.packtpub.com/article/configuring-jms-resources-in-glassfish-1

http://www.packtpub.com/article/configuring-jms-resources-in-glassfish-2

设置初始配置后,当我尝试启动 Embedded Open MQ Broker(命令imqbrokerd -tty)时,出现以下错误

虽然我已将我的 JAVA_HOME 环境变量设置为 jdk1.6,但我无法确定代理从何处获取错误的运行时环境。

编辑:在 glassfish\config\asenv.bat 中,属性AS_JAVA也设置为正确的 Jdk C :\Program Files\Java\jdk1.6.0_21

我应该如何以及更改哪个配置以使代理指向正确的 Java 运行时环境。

谢谢你的帮助!!

0 投票
1 回答
602 浏览

java - Open MQ 中的奇怪现象:消息在传递到 MDB 之前意外开始在 JMS Queue 中卡住一段时间

应用程序简要概述

JEE 应用程序在 GlassFish 服务器中运行,请参阅下面的系统环境详细信息,并使用 GlassFish 中以嵌入式模式配置的捆绑 Open MQ 进行内部 JMS 消息传递。作为消息消费者,使用消息驱动 Bean。MDB 池大小默认为 32,请参阅下面的 JMS 配置和 MDB 类详细信息。

该应用程序可以分为两个主要部分,功能大致如下:

  • 外部系统适配器侦听来自各种外部系统的遗留消息,并将它们作为 JMS 消息发送到核心应用程序。
  • 核心应用程序处理接收到的 JMS 消息。MDB 在这里运行。

问题描述

从适配器到核心的消息传递通常只需几秒钟即可顺利进行。但是,由于未知原因,有时会永久发生以下情况:适配器发送的消息在 JMS 队列中停留了一分钟,然后才传递给 MDB。使用 Open MQ 监控命令:imqcmd metrics dst -t q -n CacheQueueDest或者imqcmd query dst -t q -n CacheQueueDest我们可以看到发送的消息在队列中,并且仅在一分钟内调用 MDB 的 onMessage 方法。当这种错误情况发生时,即使一条消息也会卡在队列中,因此问题将独立于系统负载而存在。

我为 Open MQ 设置了 DEBUGHIGH 日志级别,但在日志中没有发现任何内容。我已将 Open MQ 配置为本地(在自己的进程中而不是在 GlassFish 进程中运行)并设置数据包级别日志记录,但同样没有发现任何内容。

摆脱这种错误状态的唯一方法是重新启动 GlassFish 服务器。

我将不胜感激任何解决此问题的想法。

系统环境:

  • SunOS 5.10 Generic_150401-05 i86pc i386 i86pc

  • GlassFish Server 开源版 3.1.2.2(内部版本 5)

  • 打开消息队列 4.5.2
    Oracle
    版本:4.5.2 补丁 1(构建 3-d)
    编译:2012 年 6 月 7 日星期四 10:46:15 PDT

  • java 版本“1.7.0_25”
    Java(TM) SE 运行时环境(构建 1.7.0_25-b34)
    Java HotSpot(TM) 64 位服务器 VM(构建 23.25-b03,混合模式)

来自 domain.xml 的 JMS 配置:

MDB 类:

0 投票
1 回答
414 浏览

java - 将消息路由到单独的errorQueue的问题

我有一个 MessageBean,它从我们将命名为MainQ 的队列中读取。 如果 onMessage 代码的执行抛出了一个基于用户的异常,我们将其命名为UserException我想捕获它并将此消息放在一个名为UserErrorQ的单独队列中。如果异常不属于此类型,则会引发异常以由 DMQ 处理。

这是我的问题:

  • 在我的 catch 块中,我尝试通过 ErrorQueueHandler 将此新消息放在 UserErrorQ 上。当我尝试连接到 connectionFactory 以将消息发送到 UserErrorQ 时,这会导致错误。
  • 显然创建到 QueueConnectionFactory(javax.jms.ConnectionFactory) 的新连接会导致问题

错误:

消息豆:

错误队列处理程序:

如前所述,尝试建立连接时会发生错误。有人对此有解决办法吗?

0 投票
1 回答
505 浏览

delphi - 在 Delphi 中接收 OpenMQ 消息

我需要在 Glassfish 服务器和 Delphi 之间进行通信。我需要接收它的消息。我发现 Glassfish 使用 OpenMQ 代理。

首先,我找到了 delphi 的 jms 库。我发现那里只有 JMS 接口。并发现那里有 SonicMQ JMS 实施。但正如我发现的那样,SonicMQ 和 OpenMQ - JMS 的不同代理。也许我错了。

我还找到了适用于 OpenMQ 的 Habari 客户端库,但这些库不是免费的。

也许有人知道这个问题的任何免费解决方案?或者我弄错了,我可以使用 SonicMQ 实现?

我已经下载了 Habari 演示程序,但无法连接到 glassfish 服务器(连接已完全关闭)。也许我做错了什么?我只需要收到消息。我不需要发送它们。

我以前从未使用过 JMS,这就是为什么我有这样的问题。

0 投票
1 回答
97 浏览

glassfish - 发送消息已成功发送,但是当我尝试从代理获取消息时,代理中不会显示任何消息

我是 JMS+OPenMq + Glassfish 的新手,请通过成功发送消息和接收消息来放弃我......

我创建了两个不同的 servlet 程序,并部署在 galssfish 服务器中......这里我发送消息成功,但消费者无法消费消息......

制片人:

消费者:

public void onMessage(消息消息){

}

我无法接收消息,

请帮助我正确配置 glassfish 服务器中的代理。

,...感谢您的重播