On Fri, 2003-08-15 at 19:59, Barlow, Dustin wrote:
> > JBoss4 implements the integration using JCA1.5 MessageEndpoint
> > The ConnectionConsumer is no longer used.
> > You should consider JBoss4 alpha quality software.
> 
> And I do.  However, that doesn't answer the question of retry behaviour for
> MDBs in 4.0.  Basically will the implementation in 4.0 for singleton MDBs
> operate similiar to what we've already discussed here for the 3.2 series.
> 

Effectively yes. But the pooling is one the details that
still needs to be looked at in jboss4. I don't believe the MDB
strict pooling has been forward ported from 3.2?

> > First, QueueBrowsers are not transactional objects.
> 
> I know and agree.
> 
> > 
> > I don't quite get what you are trying to achieve, if I understand it
> > correctly, this isn't going to work (even ignoring my comment 
> > about the
> > QueueBrowser).
> > 
> > (A) tx1 processes message1 and commits a message to (B)
> > (B) tx2 processes that message
> > (A) tx3 tries to look at the message from the first step but it is
> > already gone
> > 
> > ACID has nothing to say about this - it is three different 
> > transactions.
> > It is just a plain old race condition. Does tx2 or tx3 run first, who
> > knows?
> > 
> > You can search for previous discussions on XA commit semantics on this
> > list.
> > 
> 
> There is no MDB or MessageListener attached to the second queue (queue/B).  
> 
> I'm basically using the second JMS queue (queue/B) as a temporary object
> storage space.  So the message posted to queue/B in the scenario I spelled
> out in my prior post would/should be on the queue when the second message
> from queue/A triggers.  Apart of message2's business logic does a lookup
> (via a QueueBrowser) for the message that the message1 process posted on
> queue/B.
> 
> Below is a simplified example.
> 
> 1.  Two messages sitting on queue/A
> 2.  Singleton MDB attached to queue/A
> 3.  Message1 triggers from queue/A
> 4.  The MDB calls a CMT SSB that does some business logic one leg of which
> is a post of a new message to queue/B.  
> 5.  The stack returns back to the MDB successfully and the CMT commit
> process begins.
> 6.  Message2 triggers from queue/A.
> 7.  The MDB calls a different CMT SSB that looks up (using a QueueBrowser)
> on queue/B the data that message1 put on the queue.
> 
> In the above scenario, the process triggered by message2 on queue/A doesn't
> always see the message posted on queue/B by message1's process.
> 
> My observation is that in the case of a singleton MDB setup with a Session
> MaxSize greater then one, there seems to be a race condition since the
> Session used by message1 has now been freed allowing message2 to be
> triggered prior to the container actually finishing its work of committing
> all enlisted resources that message1's flow changed (including the post to
> queue/B).
> 

That is correct, the MDB is returned to the pool (but the transaction
has not yet committed). 
Another session waiting for the EJB can start its
work while the previous one goes onto commit.
Setting the ServerSessionPool to MaxSize 1 means that the single session
has to commit before more can be done.

The order of work is roughly:

1) receive()
2) getSession() and enlist in tx
3) getMDB()
4) onMessage()
5) releaseMDB()
6) commitSession()

With MaxSize 1 the wait and release are at 2 and 6 disallowing
concurrency between two different transactions.
With more than one session you gets waits at 3 and 5 with concurrent
transactions. 
Of course, by default there is no wait at 3 
because there is no strict pooling.

Regards,
Adrian

> 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



-------------------------------------------------------
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