How are you creating your home/remote interfaces? There is a section in the docs that says if you keep creating your home interfaces, it's constantly redetermining all the nodes in the cluster, and it "forgets" what the last node was used for the remote request, and so it's constantly using the first one in the list.
I've got it to work by doing exactly as you have done, but explictly doing the home lookup once, and keeping that reference and using it to create new remote interfaces, and my tests show that it round robins through the cluster.
I create all my home and remote beans as singletons so they only get created once. One interesting thing is when I add a third node to the clustering, I do see there's a round-robin, but it binds a certain stateless session bean to a certain server, and this bean only gets executed on this server only all the time, and when I kill this server and try to invoke something on this bean, it gives me a "Connection refuse..." error, so it seems like there's no fail-over. I thought it would contact another server to do the service instead. Please explain. Thanks.
It's all working now. It's was all my fault that it was not working. It was because added the tag to the wrong file, it should be jboss.xml.