-
15. Re: JMS Clustering in JBoss 3.2
ivelin.ivanov Aug 24, 2003 8:26 PM (in response to ivelin.ivanov)After further debugging of the JBossMQ code, I am thinking that it would be possible to implement the forementioned algorithms as a JMSServerInterceptor.
The aim is to satisfy some of the requirements that Adrian and Sacha listed. More specifically:
1) Clustering will be configurable by destination. The HAJMSServerInterceptor will inspect the destination and will apply HA behavior based on the HA properties. Something like:
When HAConf is not provided for a destination, HAJMSServerInterceptor will be a pass-through.
2) The invokation layer will be independent from the scalability of the JMS server. Existing connection mechanisms like JVMIL, HttpIL and UIL2 will continue to work.
I am not ready to code it up yet but walking down that path.
Ivelin -
16. Re: JMS Clustering in JBoss 3.2
ivelin.ivanov Aug 28, 2003 11:29 AM (in response to ivelin.ivanov)Oops. Makes sense.
Ivelin -
17. Re: JMS Clustering in JBoss 3.2
stephanenicoll Aug 28, 2003 1:37 PM (in response to ivelin.ivanov)I am putting a watch on this topic as I am interested helping you the way I can.
How can I help? -
18. Re: JMS Clustering in JBoss 3.2
ivelin.ivanov Aug 30, 2003 11:36 PM (in response to ivelin.ivanov)You can start by validating my design proposal in the earlier messages.
Do you think it is feasible to implement the clustering layer as an interceptor?
How would you do it? -
19. Re: JMS Clustering in JBoss 3.2
ivelin.ivanov Aug 31, 2003 11:57 AM (in response to ivelin.ivanov)Thanks for the hints.
I am not sure whether you approve or disapprove implementation with an interceptor.
Can you briefly scetch a lower level design of what you think might work as a first iteration, simplest possible working implementation?
Ivelin -
20. Re: JMS Clustering in JBoss 3.2
adrian.brock Aug 31, 2003 1:30 PM (in response to ivelin.ivanov)I'm not sure JBossMQ is designed in such a way
that there is an easy implementation.
Something similar/alternate implementations of the
actions in BasicQueue for transaction processing to also
perform replication would probably fit better.
The message persistence should give some idea where
the queue replication needs to go. This includes building
the queue from the current cluster state when you boot
a new machine.
Like I said before, there is more to it than just replicating
messages
We need to at least track unacknowledged messages
in case of failure and DurableSubscription state.
We also need to avoid two clients trying to use the same
client-id by connecting to different machines.
etc.
The assignment of the internal messageID to preserve
ordering is an interesting problem. I think Bela has
something that provides total ordering across a cluster
by asking the master node for an id. We only need ordering
per destination, not sure if we need a globally unique
id for the pm implementations?
Regards,
Adrian -
21. Re: JMS Clustering in JBoss 3.2
ivelin.ivanov Sep 15, 2003 7:32 AM (in response to ivelin.ivanov)Just an update.
I asked for advice all the people that have author tags in the JBossMQ code base: Hiram, Norbert, David, etc.
Noone has responded for over two weeks.
I am still spending several hours a week trying to elbow my way through the code and find the right place to implement destination replication, transaction rollback on server failure and auto-reestablishing connection and session with next available server.
Will keep in touch.
Ivelin -
22. Re: JMS Clustering in JBoss 3.2
adrian.brock Sep 15, 2003 8:52 AM (in response to ivelin.ivanov)I think Norbert is still around but he doesn't work on JMS.
Hiram hasn't worked on JMS for a year, he is now part
of the Geronimo project.
Last I heard, David was back-packing around the world.
Regards,
Adrian -
23. Re: JMS Clustering in JBoss 3.2
stephanenicoll Sep 15, 2003 8:59 AM (in response to ivelin.ivanov)Again, I can help if needed but it's difficult to start from scratsh.
Ivelin, can you provide me some guidelines (links, doc, wiki page, whatever) ?
Regards,
Stephane -
24. Re: JMS Clustering in JBoss 3.2
ivelin.ivanov Sep 15, 2003 8:51 PM (in response to ivelin.ivanov)Adrian thank you for the info.
Stephane, the best documentation is the Admin Doco + this thread + source code.
I am not studying Joram. It has been released under LGPL and seems to have an active development community. Supports clustered topics. Queues are not clustered yet.
http://joram.objectweb.org/doc/index.html
Ivelin -
25. Re: JMS Clustering in JBoss 3.2
ivelin.ivanov Sep 25, 2003 7:49 AM (in response to ivelin.ivanov)Quick update.
I was able to integrate Joram as a JBoss service and test clustered topics. The SAR is just under 1MB.
I will clean up the code and post it for review.
Ivelin -
26. Re: JMS Clustering in JBoss 3.2
rtvkuijk Sep 26, 2003 5:55 AM (in response to ivelin.ivanov)Do you know if it joram provides high availability as well?
e.g.
- a producer publishes to server A
- a consumer has a durable subscription on server B but is not connected
- server A crashes
- de consumer connects to server B
does het get the message that was originally published to server A? -
27. Re: JMS Clustering in JBoss 3.2
fmaistre Sep 26, 2003 7:06 AM (in response to ivelin.ivanov)
Yes it does.
In PTP mode this would work as well, given the fact that the queue is hosted by the consuming application's local server (B of your example).
All the info about JORAM is browsable on http://joram.objectweb.org.
You may also ask JORAM list: mailto:joram@objectweb.org
Regards
Frederic. -
28. Re: JMS Clustering in JBoss 3.2
ivelin.ivanov Sep 26, 2003 10:59 PM (in response to ivelin.ivanov)I would like to present hajms.sar,
which wraps Joram and with minimal configuration allows clustered JMS in JBoss.
The working copy of the code can be found at:
http://cocoonhive.org/jboss/hajms/
The binary is under:
http://cocoonhive.org/jboss/hajms/output/
I would liket to hear some feedback on this solution.
If there are no objections, I will try to clean it up some more and commit to the JBoss 3.2 branch.
Ivelin -
29. Re: JMS Clustering in JBoss 3.2
ivelin.ivanov Sep 26, 2003 11:04 PM (in response to ivelin.ivanov)If there are Joram experts monitoring this forum, I can use some advise how to bridge transparently a JGroups Partition configuration to the Joram Agents.
If we do this, then the JMS server can be farmed with zero configuration.