Adrian Brock wrote:

>The order of work is roughly:
>
>1) receive()
>2) getSession() and enlist in tx
>3) getMDB()
>4) onMessage()
>5) releaseMDB()
>6) commitSession()

Why couldn't the commitSession() be done prior to releaseMDB()?  Seems that
if 5 and 6 were flipped, the overall behaviour would be the same.  Plus with
a singleton MDB setup, one could take advantage of the read-ahead
optimization by having MaxSize set to a value higher then one, and still
have acidity of CMT between each MDB invocation of onMessage().

Otherwise, you basically have to choke off the pooling at the session level
to keep the async behaviour of the MDB at bay until the session commits.  

Is it done that way because another transactable resource could be enlisted
for which the session would have to commit after releaseMDB()?  Even if the
MDB itself calls a CMT SSB, the releaseMDB() would be presumably done after
the releaseSSB().

IE:

1) receive()
2) getSession() and enlist in tx
3) getMDB()
4) onMessage()
5)  invoke CMT method on SSB()
5) getSSB() and enlist in tx
6) run CMT method
7) releaseSSB()
8) releaseMDB()
9) commitSession()

Dustin


-------------------------------------------------------
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01
_______________________________________________
JBoss-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to