The stateful session data is replicated across cluster as the transaction commits. You get both load balancing and failover from the smart proxies between the servlet and the stateful session bean. However, since people most often use embedded servlet container this is of questionable benefit.
You don't give details how your clients connect to the servlets, most often there's a web server with mod_jk installed with it. This gives you load-balancing but no failover.
If you have not seen it yet, there is a JBoss Clustering document as part of the doc subscription. It is a good overview for clustering in jboss. I beleive you can purchase just that doc if you do not want the subscription.
I'm in the process of trying to upgrade my subscription to the JBoss docs, but the sales people at component source haven't responded to my inquiry yet, so I haven't been able to check out the doc on clustering. Juha, thanks for your reply and your book on JMX, my bible.
According to the EJB spec, the stateful session bean can begin a transaction in one business method and commit it in a different business method. What I need to know is, is the state of the UserTransaction replicated across the cluster independent of the state of the stateful session bean? If an insert was accomplished by the ssb within the view of the transaction before communication failed, causing the proxy to send the request to another instance of the ssb, will there be another attempt to insert?
Insert as in database insert?