我正在编写将消息发送到 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>
关于java - 向完整的 JMS 队列发送消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2167287/