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

On Fri, Aug 29, 2008 at 7:29 PM, David Jencks <[EMAIL PROTECTED]> 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

Reply via email to