I'm still not ready to commit, but I'm getting closer :-).
By now the patch seems to work for me.
What's on my ToDo list?
- All my stuff should only take effect if it is explicitly turned on
- Compatibility of client jars (I added two new methods for the QueueBrowser)
- General Tests in our testing environment
- JBoss testsuite
- Review Code
- Add comments
- Port it to JBoss-3.2.4 final / CVS checkout
Since I'm using MySQL <4.1, I can't use subqueries. Therefore,
I had to modify the jdbc3/PersistenceManager to work without
subqueries (can be configured).
I'm not really sure, but I believe that I don't have to worry about timings, transactions and acknowledgement (points 2 and 4 in the first post in this thread), since the only thing I did is to modify the "TreeMap messages", such that it holds only the first N MessageReferences in the queue. If more data is needed, it is (re)constructed from the PersistenceManager. That means, that my modifications don't affect transactions or acknowledgement, am I right?
And no, in the current version I don't unload messages. This might be a reasonable improvement for future versions...
My sourceforge id is 735867.
I assume, I should commit to the JBoss_3_2 branch. How about the head/JBoss_4_0? I might have some more questions when I'm getting closer to commit :-).