[font=Verdana]
We are doing clustering in Glassfish for our vaadin application. In vaadin, event queue mechanism is used.
My question that:
We want that if application is not able to process requests on one application server, it should redirect to next request to the another Server.
This is part of clustering. It is done.
Problem is that
User A does some changes on the Server A. Because of load on Server A, User B request is processed on Server B.
Here because of the
User A has made some changes, server B application page should be refreshed due to change happened .
[u]
[i]
[/i]How do we pass event generated on Server A user to the Server B user?
[/u]
As you probably imagined, this is quite difficult.
I think you actually have two problems here
Distributed events to the application servers in the cluster
Pushing changes from the application server to the browser.
Problem 1) is completely outside of Vaadin’s sphere of responsiblity. I would look at using either JMS publish-subscribe messaging (we use
ActiveMQ with great success) if you are just looking at simple events or
Terracotta if you are trying something more sophisitcated (distributed caching etc)
Problem 2) is rather more in Vaadin’s area; essentially when your Application receives an event from another server, you want to push the data from the server to the browser - in effect, refresh. There are a few options : The simplest is to use
Refresher which essentially polls the server.
IcePush actually does a form of push from the server to the client. Finally, there is also
DontPush which I believe is still at an experimental stage.