ok, I think my misunderstanding of JBossMQ must be wrong.  My thoughts
were that in the scenario you described each "A" will be processed in
turn, _but by its own thread_, so if one were to have an unlimited thread
pool, then there would be minimal delay between the "A" and "B", in a more
realistic scenario you would obviously be limited by hardware resources,
but I think this will also apply in the multiple queue scenario you
describe.  I would have thought that there was one thread pool, shared by
many queues.  Could someone please clarify the messaging dispatching
behaviour of JBossMQ?  (I'll also go run a test when I get to work)..

Re delivery order, my understanding is that JMS does not guarentee order,
I had assumed part of the reason for that was the scenario you describe.

cheers, 
dim

On Mon, 22 Oct 2001, David Jencks wrote:

> I don't think the number of mdb's processing the queue affects my argument.
> 
> Lets say processing A takes 1 sec, processing B takes 1 ms.  A puts its
> processed messages back on the same queue as it gets them from, dispatcher
> sorts them to A, B, or Done.
> 
> if we start with the queue like
> 
> AAAAAAAA(10,000 A's)...AAAA
> 
> after 10 A's are processed the queue will look like this
> 
> AAAAAAAA(9,990 A's)...AAAABBB(10 B's)B
> 
> Since the queue is processed in order, the first B will be processed after
> the last A.
> 
> With separate output queues, after 10 A's,
> AAAAAAAA(9,990 A's)...AAA
> 
> and 
> 
> BBB(10 B's)
> 
> The B's can get to work right away (if you have enough hardware or the
> thread scheduler lets them, presumably)
> 
> Did I miss something? It seems to me this is a direct consequence of the
> "messages delivered in order" contract.
> 
> david jencks
> 
> 
> 
> 
> On 2001.10.22 02:30:42 -0400 Dmitri Colebatch wrote:
> > On Mon, 22 Oct 2001, David Jencks wrote:
> > 
> > > > I'm not sure if I quite get what you mean here.  The tasks in each
> > > > message
> > > > would need to be done in order, but thats only a dependency thing, I
> > > > haven't really considered the situation where we have four tasks, A,
> > B, C
> > > > and D - with B and C requiring A's output, and D requiring B and C's
> > > > output - is that what you're talking about?
> > > 
> > > That's one problem, I was thinking more of this one:
> > > Lets say we always need tasks A and B. A is long, B is very quick.
> > > 
> > > All of a sudden, we get 10,000 messages - in less time than it takes to
> > do
> > > one A.  If the results of A are fed back into the same queue, all the
> > B's
> > > have to wait for every A to complete.  This is definitely not what you
> > > want;-).  Feeding the output of A into a separate queue fixes this, but
> > > then the advantages of your scheme become slightly diluted... you need
> > > separate output queues for each task anyway, unless each message has a
> > > different set of tasks why have the overhead of the dispatcher.
> > 
> > ahhh, ic.  ok, probably showing my greenness on MDB, but afaik you can
> > specify that a JMS listener is multi-threaded if you want, its just not
> > hte default.  I'm assuming that the same is possible (perhaps not
> > currently) at a MDB level?
> > 
> > that would solve your concern, yes?
> > 
> > re the output queues.  I dont see such a thing.  Any output gets put in
> > the method invocation object, and passed around as required.  Do you see
> > a
> > reason why this wouldn't work / isn't as good as multiple queues?
> > 
> > cheers
> > dim
> > 
> > 
> > 
> > _______________________________________________
> > JBoss-user mailing list
> > [EMAIL PROTECTED]
> > https://lists.sourceforge.net/lists/listinfo/jboss-user
> > 
> > 
> 
> _______________________________________________
> JBoss-user mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/jboss-user
> 


_______________________________________________
JBoss-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to