users@genericjmsra.java.net

Re: Question on ConnectionFactory and MessageSelector

From: Ramesh Parthasarathy <Ramesh.Parthasarathy_at_Sun.COM>
Date: Fri, 13 Apr 2007 05:41:22 +0000

Hi Zarick,
please find responses below
-Ramesh

Zarick Lau wrote On 04/13/07 04:29,:
> Hi devs and users,
>
> I'm using SJSAS 9.0 Update 1. With GenericRA 1.7 + ActiveMQ 4.1.1
>
> I've two MDB, listening on ONE queue with two exclusive MessageSelector.
>
> All Message is dispatched to the first MDB only, the expected behavior
> (of mine)
> should be, Msg1 goes MDB1 and Msg2 goes MDB2.
>

Could you check (using Active MQ CLI tool/ MBeans) if there are 2
consumers registered for the queue. (one for MDB1 and one for MDB2).
Just want to ensure that both MDBs are deployed properly and are listening.
Also, would you be able to share your message selector.
I assume you have configured the message selector through the activation
spec property in the deployment descriptor

> Shall I have separate ConnectionFactory (and hereof the CFPool) for two
> MDB with
> diff MessageSelector on one Queue?

That will not be necessary, one connection factory should be sufficient.
>
> In the stack of the Software I'm using, which component is responsible
> for filtering
> message using the MessageSelector, and which component is responsible
> for Dispatching
> message to MDB?

Generic RA is responsible for setting the message selector when it
creates the consumer for the queue. The message provider will filter the
messages based on the selector that is set on the consumer(by GRA) and
dispatch only the selected messages to that consumer (generic ra),
generic ra will then deliver these messages to the MDB.

>
> Thanks!!
>
> Best regards,
> Zarick