Could somebody please explain how I can scale an app server from a single machine to multiple machines?
Currently I have a machine running a webserver, an application server (jboss) and a database server (postgresql). If I want to scale it, how can i do it? Do I have to modify my codes?
You can run the database on a different machine. Jboss (or your driver) can find a database on the lan.
You can deploy each ear (ejb or war) on a different machine, distribute your components over machines, and connect them by changing the deployment descriptors to reflect your new setup.
To find the name of an ejb on a different machine, you have to check the app server docs (jboss). I remember trying it in j2ee ri, and i could talk to ejb's on other machines using iiop:[ip]/jndiname.
Or read about clustering in jboss, i think it does the job for you.
First and foremost find which is your bottle-neck of the system it could be your webserver or application server or database.To achive the above its advisable to perform a serious performance test which would clearly identifiy your botlenecks.
Normally it would be your database.If you have one machine containing all servers together first separate your database server separatly which runs on a separate and independent machine and uses the complete hardware resources.Then try to uses the load balancing features of your database and scale it accordingly.
The decision of number of servers depends upon gross number of clients concurrently connecting your system and how much performance you could provide for your customers.If u still find there is a bottle neck in the system cluster the web server and appserver together.Since clustring service is provided by any application servers,so you don't need to depend on any 3rd party softwares.
As far as our application is concerned we did't make any changes to the code when we clustred the application server.
Feel free to connect me if you require more information.
We are developing a banking product which is J2EE based and we have experiences on performance and scalebility issues.
What happens with the HTTPSession replication if it´s activated? Can it be there a heavy load to replicate the session between the machines?