geronimo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Jencks <david_jen...@yahoo.com>
Subject Re: MDB - reading messages in transaction
Date Sat, 30 Aug 2008 15:48:42 GMT

On Aug 30, 2008, at 1:08 AM, Juergen Weber wrote:

> On Fri, Aug 29, 2008 at 7:29 PM, David Jencks  
> <david_jencks@yahoo.com> wrote:
>>
>> On Aug 29, 2008, at 9:59 AM, Juergen Weber wrote:
>>
>>>
>>> Hi,
>>>
>>> can a Geronimo message driven bean read several messages in a  
>>> transaction?
>>> E.g. data might be split in several parts, one message for each  
>>> part, and
>>> the messages should not be removed from the queue until the MDB has
>>> received
>>> all parts and has acknowledged having read all parts?
>>
>> not directly.  No MDB can read more than one message in an  
>> invocation.
>>
>> You might possibly be able to have your mdb open a connection and  
>> listen for
>> the rest of the mesages that go together but you'll have to do some  
>> extra
>> configuration such as making sure all the messages are in a message  
>> group so
>> they all go to the same mdb.  This would probably only work with  
>> ActiveMQ
>> and very well might not work at all.
>>
>> You might be able to do something with a stateless session bean  
>> called from
>> a controller that opens a connection and reads all the messages in  
>> a group.
>> I think this is more likely to work than an mdb.
>
> But this would violate the J2EE spec, as an EJB would need to wait for
> incoming messages which would quite certainly mean listen on a socket.

By this argument remote ejbs and web apps violate the jee specs as  
both use sockets to receive incoming messages.  In all three cases the  
socket is handled by a server component (ejb container, web container,  
or jms provider) rather than application code.

Furthermore, at least activeMQ offers in-vm transport that does not  
use sockets at all.
>
>
> Seems like the scenario waiting for several messages is not covered by
> the J2EE spec, is it?

AFAIK it is not directly covered.

thanks
david jencks

>
>
> Thanks,
> Juergen


Mime
View raw message