If you deploy a new jar/war/ear a hot deployment will be the same as undeploy/deploy.
That mean sessions and transactions might be canceled
Thanks for your response.
what I want to do is: I have web application deployed in clustered environment ( different host / different jboss instances) and I have frequent release cycle. So every deployment needs a outage notification and application downtime. That hamper user experience.
Is there any way we can implement deployment without an outage and without booting out the users and any data-loss. Like using non-sticky sessions or session migration to other nodes?
As I know, I'm not the web application expert, you are able to set a loadbalancer to not route new requests to a instance.
In that case you can wait for all timerouts (seesion/transaction) and deploy the application after that. In this case you have no active requests running.
If you do that in a low-traffic period you can update it with two chunks.
Thanks Heaps for your response.
This is exactly what I do. I usually put one node(jboss instance) in drain( using load balance r) and wait for user session timeout and then deploy the latest package in that node. I repeats the same process for other nodes. Due to huge traffic I have to use the methodology at night time but still deployments takes 2/3 hrs.
So that I am looking for a solution where I can redirect the the existing sessions of a node to other nodes which will reduce my wait time. For the time being we use sticky session and http session object in my application. We can also switch to non-sticky sessions and stop using session objects in my application.
Do you think this will solve my problem?
If you have enabled session replication, then if one node gets crashed, all request will get forward to another.
Please check this one