Hi Loren!

>From: Loren Rosen <[EMAIL PROTECTED]>
>To: "[EMAIL PROTECTED]" 
><[EMAIL PROTECTED]>
>Subject: [JBoss-dev] jbossmq: persistance implementation questions
>Date: Mon, 12 Nov 2001 20:22:27 -0800
>
>I've been looking a bit at the jboss mq persistence code, and I have
>some questions. I'll state some of them from a user perspective, but my
>motivation is as a developer; that is, to address some of the 'problems'
>or 'limitations' these questions may uncover.
>
>* Different DBMS system support: I realize the current schema is pretty
>simple, but nevertheless I think it's inevitable that you're going to
>want tweaks for different database servers, for performance reasons if
>nothing else.
>

I guess will will make the code more abstract as we start supporting more 
databases.  If a DBMS is different enough from the basic implementation, we 
could always create a new Persistence Manager just for that case.

>* Performance tuning/scalability: has any work been done to address
>potential bottlenecks for high message throughput, large numbers of
>queues or topics, etc.?
>

Work has gone into making reading/writing from storage more efficient.  I 
don't think we have profiled the system enough yet to find out where the 
bottle necks are.

>* recovery robustness: recovery is a tricky thing since there's so many
>possible ways things can fail. What's been done to think
>about/test-for/defend-against all the possibilities?
>

Basic recovery test have been succeeding.  It's hard to automate failure 
testing.  More code review would be good in this area to see if we are 
missing anything.

>* two-phase commit: Is two-phase commit (XA) supported? I didn't see
>anything explicitly in the code, but pehaps I haven't yet read it
>carefully enough.
>

We do have some basic support for XA.  In phase 1 we store all message 
activity to persistent storage.  In the seconds phase we mark the 
transaction as committed.  Kinda simple since in a messaging system, we have 
fewer problems that could cause the prepare to fail (we don't need to get 
any locks and such).

>* architecture: I haven't thought deeply about the trade-offs, but at
>first look it seems odd to create a transaction log table in a rdms,
>given that they can do the logging for you behind the scenes.
>

Not really, if we were to tie down every JMS session (transaction context) 
to a database connection, we might run out of database connection quickly.  
That is why we manage the 2 phase commit and don't delegate that work to the 
database XAResource.  All the work that is done on the database is not 
considered to be transacted so the transaction log is used to be able to 
rollback incomplete JMS transactions.

Regards,
Hiram

_________________________________________________________________
Get your FREE download of MSN Explorer at http://explorer.msn.com/intl.asp


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

Reply via email to