2011-01-14 126 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