I have just commited the latest update to my store code.  The JDBC3 and 
PostgreSQL module play nice the JBoss Client Transaction Manager now.  
Currently it has similar behaviour to the EJB "Required" transaction type, 
mainly because the Client Transaction Manager doesn't support nested 
transactions.  (Given the transaction requirements for these 2 modules perhaps 
they should be EJBs....)  The BDB module is also there and works, but from what 
I have garnered from the sleepycat mailing list, it looks like BDB doesn't 
actually support partial reads/writes, so I may have to deprecate this module 
in the near future.

I have retested with the latest MySQL JDBC Connector (3.1.7 final), and I am 
going eat my words now.  It is a lot better.  The MySQL bug 8096 is now fixed 
and performance is much improved (Bug 7745 will still cause problems 
http://bugs.mysql.com/bug.php?id=7745).

The main question for now is where do we go from here.  We have 2 different 
implemenations covering the same area.  The decision is how we merge the 2 and 
produce something useful.  Below is my take on it (I could be wrong, and I am 
quite willing to do something complete different if it is the better approach).

Partial read/write support.  This IMO is the most important feature of Message 
Store.  Without this we are better off simply holding the message in memory.  
Where does that leave the Hibernate implemenation, which doesn't support 
streamable blobs.  An option is still use hibernate ORM features, but build an 
object model that supports the partial read/write requirement.  This could be 
done making the StoredMessage object aggregate a number of StoredPage objects 
of a fixed maximum size.  On top of this model we would need 
Paged[Input/Output]Stream which would fetch or flush a page whenever the 
current page is underrun or overrun respectively.  This would provide a simple 
generic implementation that would be usable across multiple databases. 

User defined meta data.  This is information such as sender address.  Currently 
the store implemation doesn't support this, but can be if required.  For 
starters a simple string will suffice, but eventually name/value pair style 
properties would be preferred.

Where does it sit (AKA what's in a name).  When I wrote the current store 
implementation I didn't want to tie any particular domain.  I.e. I avoided the 
use of terms such Mail and Message.  It was designed as a store for any type of 
big thing that we may want to stuff in it (e.g. Calendar appointments with 
attachments).  Is this something that is important?  If so then the hibernate 
based implemenation should be moved to org.jboss.mail.store.  If it should be 
specifically a message store then the reverse should happen.

The store interface.  Currently neither of the 2 implementations have an 
interface that covers all the bases.  Who specs it and what it is based on will 
be largely decided by the outcome of the above paragraph.  Just something that 
needs to be done 'tis all.  One specific on the interface is that we need to 
support different store implementations, which will use different data types 
for their ids.  This suggests the type of the id needs to be an Object or a 
Serializable rather than a String.

This is what needs to be tied up before seriously integrating it into the main 
execution path.  I am happy to do any, all or none of the above.  I didn't want 
to go stomping all over others peoples code and making decisions without 
fostering a little discussion first.

Regards,
Mike

View the original post : 
http://www.jboss.org/index.html?module=bb&op=viewtopic&p=3868965#3868965

Reply to the post : 
http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=3868965


-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
JBoss-Development mailing list
JBoss-Development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to