问题标签 [amq]

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 投票
1 回答
91 浏览

java - 实际可用空间时的 java 堆空间

我正在尝试在 AMQ (5.15.2) 上发送 BytesMessage,但即使内存明显可用,我也会在堆空间异常中运行。这里是

在该错误中,可用内存超过 15Gb(我为此 VM 分配了 16Gb)。

欢迎任何想法,谢谢。

编辑:我基本上很笨,问题出在 AMQ 方面,增加它在 bin/win64/wrapper.conf 中的内存就可以了。感谢所有回答的人。

新来的我不知道如何关闭这个答案!

0 投票
1 回答
400 浏览

oracle-aq - AMQ + Oracle AQ:连接失败时丢失消息

我已将 AMQ 配置为从 Oracle AQ 接收和发送消息,如此处所述http://activemq.apache.org/jms-bridge-with-oracle-aq.html

AMQ 创建并保持连接以接收来自 Oracle AQ 的消息 - 这是正确的。但是,每次 AMQ 向 Oracle AQ 发送消息时,都会创建和销毁新连接。有时,由于某些网络问题或 Oracle 过载,我会遇到异常:

之后,消息就丢失了。

由于新的连接操作相当繁重,我尝试将 org.springframework.jms.core.JmsTemplate 配置为使用池连接,如此处所述http://activemq.apache.org/spring-support.html 但是这个没有帮助。仍在创建新的连接。

请建议可以帮助我不要将消息从 AMQ 丢失到 Oracle AQ 的方法。

0 投票
1 回答
37 浏览

c# - 正则表达式提取大括号之间的数据并加载到 AMQ

我正在开发一个 WinForm,C#。我在日志文件中有一个数据。我已将该数据加载到文本框中。我在编写正则表达式时卡住了,我想过滤文本框中“[[”和“]]”之间的数据。我多次使用这种类型的牙套。我想单独使用 AMQ 将这些数据加载到服务器中。

0 投票
0 回答
152 浏览

c# - 发送列表时用 linq 查询替换 foreach 循环使用 Active MQ 将数据一一发送到服务器

我正在尝试用查询替换这个for-each循环。Linq这个循环正在扼杀性能。str包含list<string>. 我必须从每个字符串中一一读取str并对其进行编码,然后我需要使用AMQ.

0 投票
1 回答
914 浏览

jms - spring 如何在 DefaultMessageListenerContainer 中设置持久订阅者?

消息的生产者不会持久发送消息,当我尝试通过 MessageListener 使用消息时,如果发生任何异常(运行时),它会重试特定次数(默认为 AMQ 端的 6 次)并且消息丢失。

原因是生产者没有将 Delivery 模式设置为 Persistent,经过一定次数的重试后,DLQ 没有被创建,消息也没有移动到 DLQ。因此,我丢失了消息。

我的代码是这样的:-

问题:- 通过在连接级别设置客户端 ID (Connection.setclientid("String")),即使消息不是持久的,我们也可以订阅为持久订阅者。通过这样做,如果应用程序抛出运行时异常,在一定次数的重试尝试后,将为队列创建 DLQ,并将消息移动到 DLQ。

但是在 DefaultMessageListenerContainer 中,连接不会暴露给客户端。我猜它是由 Class 本身作为一个池维护的。

如何在 DefaultMessageListenerContainer 中实现持久订阅?

0 投票
0 回答
158 浏览

java - Red Hat AMQ 7.1 - 在创建 MessageConsumer 期间抛出 ActiveMQSecurityException

我正在为我的 Java 应用程序配置 AMQ 代理。用户和角色在其各自的配置属性文件中定义。这些用户具有特定权限,具体取决于他们尝试使用的地址。

所有这些都在 broker.xml 中配置。经纪人使用 3 个地址:genericTopic、news.europe.europeTopic、news.us.usTopic。对于genericTopic 地址,所有用户都拥有所有权限。

不过,我得到了这个例外:

broker.xml 文件包含:

artemis-users.properties

artemis-roles.properties

在 Java 中,用户bill可以使用提供的密码进行身份验证,我可以genericTopic使用用户创建生产者bill,但不能使用MessageConsumer.

这是导致异常的 Java 代码行:

以下是 AMQ 代理中的一些附加日志:

更新:我解决了部分问题。我所有的密码都不正确。现在没有异常,但消息使用者阻塞并永远等待存在的消息(在 Web 控制台上检查)但由于某种原因它无法接收。此外,我仍然收到有关客户端连接失败的相同警告。更具体地说,应用程序在此处停止:

0 投票
1 回答
2780 浏览

permissions - Artemis AMQ119213:用户:''没有权限='CONSUME'

我需要创建一个仅用于从 CI/CD 工具创建队列的用户。

我得到以下错误

[amq-broker@x01sipscnaq1a bin]$ ./artemis queue create --auto-create-address --durable --user opadmin --password xxxxxxxx --anycast --preserve-on-no-consumers --url tcp:/ /10.91.xxx.xxx:61716 线程“主”ActiveMQSecurityException [errorType=SECURITY_EXCEPTION 消息=AMQ119213:用户:opadmin 没有队列activemq.management.383ccac9-0084-4c44-8f23-7f5c44f7b0dc 的权限='CONSUME'地址activemq.management.383ccac9-0084-4c44-8f23-7f5c44f7b0dc.activemq.management.383ccac9-0084-4c44-8f23-7f5c44f7b0dc]

所以改为

它进入没有错误,但挂起(等待超过 30 分钟)

[amq-broker@x01sipscnaq1a bin]$ ./artemis queue create --silent --auto-create-address --durable --user opadmin --password xxxxxx --anycast --name TestTorture --preserve-on-no-消费者 --url tcp://10.91.xxx.xxx:61716 --verbose 执行 org.apache.activemq.artemis.cli.commands.queue.CreateQueue 队列创建 --silent --auto-create-address --durable - -user opadmin --password xxxxxx --anycast --name TestTorture --preserve-on-no-consumers --url tcp://10.91.xxx.xxx:61716 --verbose Home::/opt/redhat/amq- broker-7.1.0-hf8,实例::/opt/redhat/amq-config/cn_soi/broker2b ^C[amq-broker@x01sipscnaq1a bin]$

0 投票
1 回答
521 浏览

jms - 你能有一个 ActiveMQ 的备份持久订阅者吗

我有一个用于 JMS 消息传递的主/从 AMQ 代理设置。我有两台服务器,我想使用 Apache Camel 将它们设置为主/从持久消费者。我们通过让两台服务器尝试连接相同的客户端 ID 来实现这一点。一个节点处理所有工作,但如果它发生故障,另一个节点会连接并立即恢复工作。这对于一次只有一个消费者来说效果很好,但它会在断开连接的服务器的日志文件中产生噪音以及消息

有没有合适的方法来获得我想要实现的功能?我正在考虑让从服务器 ping 主服务器以协调连接哪个服务器,但我希望使实现尽可能简单。

0 投票
1 回答
468 浏览

java - HTTP 请求后从 Camel 确认 AMQ

我正在使用 Apache camel 在 ActiveMQ 和 camel HTTP 端点之间进行路由。路由的定义方式是将数据从 camel-cxf webservice 获取到 ActiveMQ,并将这些数据发布到作为 HTTP 端点的 tomcat,然后一旦 http uri 命中,camel 从 tomcat 服务器获取响应。

我们能否仅在路由成功后从骆驼中确认队列,我的意思是在LOG_log_4过程完成后确认 AMQ?如果这是可能的,那么即使 http 链接断开,我也可以在队列中不丢失任何数据的情况下创建此路由。

我找到了这个链接JMS ACKNOWLEDGE_MODE。如果我需要使用确认模式 CLIENT_ACKNOWLEDGE 那么我是否需要在 tomcat Web 应用程序站点上编写消费者服务以确认收到的消息成功。

我使用 Acknowledgemodename 作为 AUTO_ACKNOWLEDGE。

详细路线图如下:-

在此处输入图像描述

Spring-DSL application-context.xml

ActiveMQ 配置 applicationContext-mq.xml

先感谢您。

0 投票
1 回答
369 浏览

activemq-artemis - Apache Artemis 没有 clientId 显示在 management-console.UI 的使用者部分

我正在使用 Apache Artemis 代理和 Apache camel JMS 组件

因为我正在使用 Apache camel JMS 组件所以在这里,我正在听这个话题

我在这里设置

现在,当我使用管理控制台.UI 时,它在消费者 ID 中显示为空的客户端 ID

在此处输入图像描述

在上图中Queue = testId.dsn 其中testId是 clientId 而dsn是订阅名称。

在客户端标题下也没有显示 clientId。

为什么客户端名称没有显示在客户端标题下。以及为什么Queue值显示 clientId + 订阅名称的串联

请在这里帮忙,谢谢!