2011-01-14 76 views
0

处理我有一个Web应用程序(Flex的4 - 春布拉DS - 春天3.0),它发出一个JMS事件批处理应用程序(独立的Java)通知JMS消息发送器(Web应用程序)后的消息通过监听

我正在使用Spring提供的JMS基础设施(spring JmsTemplate,SimpleMessageListenerContainer,MessageListenerAdapter)和TIBCO EMS。

一旦消息处理完成后,我们可以通过哪种方式通知Web用户。

发送Web应用程序将要监听的响应事件的方法之一;但 如何解决以下情形:

  1. 上提交用户1点击 - >这反过来发送JMS消息
  2. 监听器在收到消息处理消息(消息处理可能需要20-30分钟才能完成)。
  3. 监听器应用程序发出另一个JMS事件“Process_complete”
  4. 由于这是一个Web应用程序,有当前登录到应用程序的n个用户。所以如何识别一个正确的用户/如果用户已经注销了什么?

有什么办法可以解决这个问题吗?

请发表您的看法。

回答

0

我只知道一种方法:创建特殊通知队列并在您的Web应用程序中侦听此队列。当监听器在独立应用程序中实现完成处理消息时,它应该向通知队列发送通知消息。

3

在JMS中,我将使用ReplyTo Functionality和临时队列。创建消息时,您还创建一个临时队列(使用会话createTemporaryQueue方法),并将JMSReplyTo标题设置为它。之后,在临时队列上创建一个消费者并开始接收。也许你想给接收操作一个超时,并在超时后删除临时队列。

对此的更多想法可以在这里找到:http://blog.temposwc.com/2010/03/asynchronous-jms-requestreply_25.html