当前位置: 首页 > 知识库问答 >
问题:

如何使用Grails和JMS/ActiveMQ配置独占消费者?

吴兴国
2023-03-14

另外,JMS使用什么标准来确定一个专属消费者何时死亡或消失?

// resources.groovy
beans = {
    jmsConnectionFactory(org.apache.activemq.ActiveMQConnectionFactory) { 
    brokerURL top://example.com:1234 
    userName = 'user' 
    password = 'password' 
    } 
} 

class TestService { 

static exposes = ["jms"] 
static destination = "SOME_TOPIC_NAME" 
static isTopic = true 

def onMessage(msg) { 
    // handle message 

    // explicitly return null to prevent unwanted replyTo attempt 
    return null 
} 

} 

共有1个答案

尹冠宇
2023-03-14

首先,您的示例使用主题,这是行不通的;您需要队列:

class TestService { 
  static expose = ["jms"] 
  static destination = "MYQUEUE" 
  ...
}

在ActiveMQ中配置独占使用者非常简单:

queue = new ActiveMQQueue("MYQUEUE?consumer.exclusive=true");

..但是Grails插件可能很棘手;您可以试试这些:

class TestService { 
  static expose = ["jms"] 
  static destination = "MYQUEUE?consumer.exclusive=true" 
  def onMessage(msg){ ...}
}


class TestService { 
  static expose = ["jms"] 
  @Queue(
     name = "MYQUEUE?consumer.exclusive=true" 
  )
  def handleMessage(msg){ ...}
}
 类似资料:
  • info-jmssender JMS发件人已启动[2013-07-23 17:02:18,752]info-jmssender JMS传输发件人已初始化...在此之后,我创建了JMS消息存储< 并添加调度消息转发处理器 我的代理服务配置如下所示 将消息存储在消息存储区中,但如果endpoint不工作,则转发是错误的,尽管消息在WSO2esb中处理其丢失的消息

  • 我尝试制作示例代码来研究jms。我遇到了一些错误。所以,我搜索了一些解决错误的文章。我放弃了,因为我找不到如何使用spring4在ActiveMQ中设置代理。请给我一些建议或解决问题。 这是一个错误。 这是我的Spring配置文件。 而且,当我尝试设置使用ActiveMQConnectionFactory的CachingConnectionFactory时,它带来了错误。然而,在这个站点(http

  • 我使用Mule ESB来设计一个过程,通过这个过程可以向一个主题发布消息。订阅者将收听主题并接收消息。每个用户对消息的反应不同。这里的目标是能够从HTTP向主题发送测试消息,以测试订阅者。 下面是如何配置JMS连接: 这是流程: 当我运行测试时,我得到以下错误: 任何建议将不胜感激。 罗斯

  • 我正在研究ActiveMQ,看看它是否适用于一个项目。我需要展示的当前用例是,晚加入的订阅者将收到在创建订阅之前发布的主题。看起来ActiveMQ追溯消费者将满足这一需求,但我无法让代码工作。 我在这里试图证明的是,一个主题可以被发布,然后在一段任意的时间后(例如。5秒),消费者可以订阅该主题并接收前一条消息。 据我所知,问题似乎是创建主题会创建一个地址,但不会创建任何关联的队列。如果我在队列形成

  • 我正在使用Spring靴和活动MQ设置一个持久的JMS主题使用者。我能够使用Spring靴@JmsListener注释来使一切正常工作(作为耐用消费者成功运行)。但是,因为我想动态创建侦听器,所以我尝试使用 JmsListener 配置接口来创建它们。 使用主题“消费者”下面的代码可以成功地创建和使用消息。但是,问题是它创造的消费者并不持久。我在工厂中将clientId、setSubscripti

  • 我正在使用WSO2ESB4.7.0和ActiveMQ5.8.0。我希望将消息存储在队列中,为此我尝试使用这段代码,但它不工作。我创建了存储库,这将有助于存储消息,我的conumeing过程已经在JAVA代码中完成,所以我不必担心消费,如果我这样做了,我的消息将出现在acivemq UI中。我的配置如下所示 我试图通过代理传递消息,为此我编写了简单的代理服务 在这种情况下,我的队列没有在Active