Tag: jms

计算JMS队列中的消息数

查看JMS队列并获取其中的所有消息的最佳方法是什么? 如何计算队列中的消息数? 谢谢。

JMS – 消息选择器如何与多个队列和主题使用者一起工作?

假设您有一个JMS队列,并且多个消费者正在查看队列中的消息。 您希望其中一个消费者获得所有特定类型的消息,因此您决定使用消息选择器。 例如,您可以在名为targetConsumer JMS消息头中定义一个属性。 您应用于称为A的消费者的消息选择器类似于WHERE targetConsumer = ‘CONSUMER_A’ 。 很明显,消费者A现在只是抓住具有属性集的消息,就像在示例中一样。 但是,其他消费者是否会意识到这一点? IOW,如果它在消费者A之前查看队列,那么另一个不受消息选择器约束的消费者会抓住CONSUMER_A消息吗? 我是否需要将消息选择器(例如, WHERE targetConsumer ‘CONSUMER_A’应用于其他人? 我现在正在RTFMing并收集经验数据,但希望有人可能知道他们的头脑。

JMS QueueSender线程安全吗?

我想在multithreading环境中使用QueueSender。 QueueSender.send()线程安全吗?

JMS性能

从性能角度理解JMS我遇到了一些麻烦。 我们在应用程序中有这么简单的代码: QueueConnection connection = null; QueueSession session = null; QueueSender sender = null; TextMessage msg = null; try { // The JNDIHelper uses InitialContext to look up things QueueConnectionFactory qcf = JNDIHelper.lookupFactory(); Queue destQueue = JNDIHelper.lookupQueue(); // These objects are created for every message, which is quite slow connection = qcf.createQueueConnection(); session = connection.createQueueSession(false, […]

具有ActiveMQ经纪人网络的JMS消费者

我在经纪人集群的ActiveMQ网络(也称为分布式主题)上有一个JMS主题。 我有一个外部JMS使用者(Weblogic门户网站)需要订阅此主题并获取发送给它的所有消息(跨所有代理)。 如果消费者在其中一个代理上订阅该主题,它只会获得代理收到的消息子集,对吗? 我想我可以为每个代理创建一个消费者并将消息聚合在一起,但是我也处理连接问题并且需要知道哪些代理可用等等。 问题,有没有办法配置代理网络或消费者从分布式JMS主题获取所有消息?

使JBoss EAP 5.1中的特定MDB可配置maxSession属性

如何为MDB用户配置maxSession值? 有一个MDB可以侦听来自特定队列的消息。 它被定义为注释。 @ActivationConfigProperty(propertyName = “maxSession”, propertyValue = “5”) 。 为了更改maxSession的值,必须每次都编译代码。 有没有办法让用户可配置,以便不需要构建,也无需重新启动jboss? 请帮助。

如何从主题中删除邮件

我正在尝试编写一个使用JMS发布订阅模型的应用程序。 但是我遇到了挫折,我希望能够让发布者从主题中删除消息。 用例是我拥有持久的订阅者,活跃的订阅者将获得消息(因为它或多或少立即),但如果有非活动订阅者并且发布者决定消息错误,我想让他能够删除消息这样订阅者一旦活跃就不会再收到它了。 问题是,我不知道如何做到这一点。 对于提供商,我决定使用glassfish的实现,但如果其他替代方案提供此function,我可以切换。 谢谢。

架构师迫切希望在JMS上使用SOAP

我过去曾使用JMS来构建应用程序,它运行良好。 现在我与想要使用Spec:SOAP over Java Message Service 1.0的Architects合作。 这个规格过于复杂。 我没有看到很多实现(除了供应商推动规范)。 这里有人在生产环境中使用此规范吗? 使用此规范的主要好处是什么? 链接: http : //www.w3.org/TR/2009/CR-soapjms-20090604/

如何进行JMS同步请求

我有一个webapp,可以从外部应用程序获取和显示数据,只能通过消息传递(JMS)访问。 因此,如果用户在浏览器上提交请求,则相同的HTTP请求线程必须与Messaging系统(MQ Series)交互,以便相同的请求线程可以显示从Messaging System接收的数据。 我可以在这里使用一种模式吗? 我在网上看到了一些模糊的引用,它们以这种方式使用“Correlation ID”: Msg m = new TextMsg(“findDataXYZ”); String cr_id = m.setCorrelationID(id); sendQueue.send(m). // now start listening to the Queue for a msg that bears that specific cr_id Response r = receiverQueue.receive(cr_id); 那里有更好的东西吗? 我发现的其他模式希望响应是异步接收的……这对我来说不是一个选项,因为我必须在同一个HTTP请求上发回响应。

如何使用现有JMS应用程序中的RabbitMQ JMS客户端连接RabbitMQ?

我有一个通用的独立JMS应用程序,它与以下JMS提供程序WebSphere,HornetQ和ActiveMq一起使用。 我将Context.INITIAL_CONTEXT_FACTORY和Context.PROVIDER_URL作为参数传递给我的应用程序,并通过这样的操作创建一个命名上下文 Properties environmentParameters = new Properties(); environmentParameters.put(Context.INITIAL_CONTEXT_FACTORY, property.context); environmentParameters.put(Context.PROVIDER_URL, property.provider); namingContext = new InitialContext(environmentParameters); 并使用此上下文进行对象查找。 我理解RabbitMQ不是JMS提供者,因此它没有InitialContext类或Provider URL,但它提供了一个JMS Client,它是符合JMS规范的Java客户端的抽象。 RabbitMQ的JMS客户端文档有一个例子,它将JNDI中的对象定义为资源配置,作为Web应用程序的一部分,但我完全无法弄清楚如何为我的独立应用程序执行类似操作,该应用程序使用JMS基于JNDI提供程序创建命名上下文客户端的依赖关系或从可用的依赖关系中创建InitialContext。 那么有人可以说明如何做到这一点? 希望我的问题很清楚。