Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I'm looking into running clustered JBoss on Amazon Web Services (AWS).

I'd like to try out S3_PING, i.e. making JBoss use an S3 bucket for dynamic node discovery etc, since no multicast is available. I found a piece of example config XML related to S3_Ping, but I'm not sure where in JBoss installation you're supposed to configure this.

So, what JBoss config files would I need to tweak to get S3_PING working? Can anyone point me to a more complete example?

JBoss 5.1.0 GA. (This is probably more a JGroups/JBoss question than anything else. I've already got the S3 bucket for this set up, so no problem there.)

share|improve this question

4 Answers 4

up vote 2 down vote accepted

S3_PING still seems to be an experimental feature and that might explain the missing documentation... Anyway, you can configure S3_PING to the jgroups-channelfactory-stacks.xml that is situated in $JBOSS_HOME/server/all/cluster/jgroups-channelfactory.sar/META-INF/.

See JGroups Channel Protocol Stack Configuration in JBoss 5.1 Clustering Guide for more info on the contents of that file. Sadly, as mentioned before, it doesn't say anything about S3_PING. Basically, you can just replace the PING element with something like this:

<S3_PING secret_access_key="903rfj04rjg490" access_key="ji3gfo" location="bucketname/>

You might need to create the S3 bucket by yourself beforehand.

UPDATE: It seems that JBoss 5.1 doesn't work with the newer JGroups versions that have support for S3_PING. By looking at JGroups JIRA, it seems that there won't be any support for newer JGroups versions in JBoss 5.x ever. This means that you have to wait for the JBoss AS 6.0.0 MS3 version to get it, see the issue here. By looking at JBoss AS JIRA, it seems that MS3 won't be released in the near future. :(

UPDATE 2010-03-17: I just noticed that the guys in the JBoss StormGrind project have made S3_PING work and asked more what versions they use. The use JBoss AS 6.0.0-MS2 and JGroups 2.6.13.GA. So, S3_PING was released before 2.8, even though some pages in JBoss site claim otherwise. I haven't yet tested this myself.

share|improve this answer
    
BTW, the AWS access keys that I used in the example are not mine, so no need to remind me of that! :) –  Kaitsu Mar 15 '10 at 10:02
    
Thanks Kaitsu. That seems to be the right file. However, I'm running into "org.jgroups.ChannelException: unable to setup the protocol stack: unable to load class for protocol S3_PING (either as an absolute - S3_PING - or relative - org.jgroups.protocols.S3_PING - package name)". Turns out that the latest stable JBoss (5.1.0) ships with JGroups 2.6.10, while S3_Ping was added in JGroups 2.8 :( –  Jonik Mar 16 '10 at 11:28
    
@jonik: Yes, so it seems. See my updated answer for more info. –  Kaitsu Mar 16 '10 at 12:32

Perhaps late but wanted to point out that EAP5 does have S3_PING support. As for community distribution JBoss AS 7 has that support (what you already know from Kaitsu's replay) but the feature is now supported.

For EAP, you could go to the official EAP documentation that describes how to enable clustering with the Red Hat EAP AMIs. For JBoss Application Server 7 you may find this thread valuable.

share|improve this answer

S3_PING was added in JGroups 2.6.12 is part of JBoss AS 6.0.0.M2

share|improve this answer
    
Yeah, thanks, we just realised the same thing. Seems my original source (community.jboss.org/wiki/RunningInfinispanonAmazonWebServices) was wrong on this one, talking about 2.8. Edit I see it's now been corrected... by you, apparently :-) –  Jonik Mar 17 '10 at 20:34

S3 is great, you should give the CirrAS AMI's a spin, check out the wiki article: http://community.jboss.org/wiki/CirrASRunningOnAmazonEC2 - backend instances use S3_PING for discovery.

For AS5, a viable solution to not having S3_PING would be to use a GossipRouter (included in jgroups) and then using TUNNEL configuration (if you extract the jgroups.jar archive, there are configurations inside for all different options).

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.