2013-04-25 106 views
0

**我設置JMS過濾器在製片方即jmsMessage.setObjectProperty(「過濾」,filterId1)...設置JMS濾波器(範圍篩選)

,所以這是一對一的關係。即鍵FILTER僅與一個值相關聯,即filterId1(消費者消費的消息,其值爲filterid1)... ...

但我想要一對多的關係,過濾器是許多filterId的(filterId1或filterId2或filterId3或filterId4或filterId5)這些filterId的之間有值 消費者associted可以使用該消息.....

是明鏡在JMS任何功能,如果沒有那麼我們如何可以實現它... **

回答

0

你可以使用之間的過濾器,但我懷疑你應該可以使用不同的隊列爲您的設置。如果您有許多要掃描的郵件,過度使用過濾器會給您帶來不好的表現。

我贊成使用過濾器訂閱,或者只是使用多個隊列來處理所需的內容。

但是,除了簡單回答你的問題之外,一個簡單的答案就是在消費者的過濾條款上使用BETWEEN。 (另外:在生產者中沒有JMS過濾器,過濾器只適用於消費者,我假設你的意思是設置一些將用於過濾器的數據)。

+0

這意味着我應該使用消息選擇器rt? – 2013-04-26 04:47:08

+0

這意味着我應該使用這樣的消息選擇器.... rt? \t MessageConsumer tconsumer = session.createConsumer(queue,「filterId = BETWEEN 5 AND 10」);我不需要掃描大量的消息(100條消息/小時)...所以我猜過濾器很好,而不是多個隊列....? – 2013-04-26 07:25:44