java - 向完整的 JMS 队列发送消息

标签 java jms sonicmq

我正在编写将消息发送到 JMS 队列的 Java 代码。 我通过使用“QueueSender.send()”来做到这一点。

JMS 队列本身是 sonicMQ,但这不是重点。

我的问题是,有时 JMS 队列已满,而尝试向队列发送消息的线程却处于饥饿状态。

有没有办法让我在发送消息之前知道队列是否已满?在这种情况下,我更愿意将异常打印到日志中。

顺便说一下,JMS 队列代码本身是我无法访问的。我只能更改客户端代码。

谢谢。

最佳答案

您可以发送异步消息以在 ConnectionFactory 中使用 Constants.ASYNC_DELIVERY_MODE_ENABLED setAsynchronousDeliveryMode 执行此操作

使用 Spring

<bean id="connectionFactory" class="progress.message.jclient.QueueConnectionFactory">
...
 <property name="asynchronousDeliveryMode">
  <util:constant static-field=  "progress.message.jclient.Constants.ASYNC_DELIVERY_MODE_ENABLED"/>
</property>
</bean>

查看更多详情 progress.message.jclient Class ConnectionFactory

关于java - 向完整的 JMS 队列发送消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2167287/

相关文章:

java - 为什么 Google Gson.toJson 会丢失数据

javascript - window.location.reload() 在我的 js 页面中使用 我正在注销 我正在使用 spring security

java - 是否有任何理由使用同步的 HashMap 而不是 ConcurrentHashMap?

java - 如何使用 TextMessage 将 XML 文件发送到 JMS 队列?

java - JMS 连接 - 启动方法(IBM MQ impl)

java - 排除 MongoOperations 结果中的某些字段

java - JMS中不可信数据反序列化安全问题

java - 如果连接 SonicMQ 被拒绝,则重新连接到 SonicMQ

node.js - 使用 Node.js 向/从 SonicMQ 发送和接收消息(进展)

java - 从 Oracle 调用 Java,PL SQL 导致 oracle.aurora.vm.ReadOnly 对象异常