代码之家  ›  专栏  ›  技术社区  ›  bozo

来自无状态EJB的JMS同步请求回复

  •  0
  • bozo  · 技术社区  · 15 年前

    我有一个基于JMS队列的系统,它允许整个系统以异步方式工作。

    现在,对于一些周期性任务,我需要以同步的方式执行一些非耗时的任务,这样我就可以立即处理结果,而无需使用数据库来存储请求并将其与结果进行配对(如异步操作)。

    代码本身不是问题,但是EJB运行容器事务的事实,这意味着producer.send()代码和consumer.receive()不会按顺序执行(即消息不会被发送,因此在receive()中没有要接收的内容,下面几行将介绍)。

    在无状态EJB3环境中,如何以同步方式发送JMS消息和接收响应?

    谢谢你的回答,

    博佐

    2 回复  |  直到 14 年前
        1
  •  1
  •   David Blevins    15 年前

    @MessageDriven
    @TransactionManagement(BEAN)
    public class MyMDB implements MessageListener {
    
      // this is optional
      @Resource
      private UserTransaction ut;
    
      //...
    
    }