1. To vertical or horizontal scalability of an application, do we require to configure Application server deployment descriptor properties only and no changes are required in the code? Application server will take care of all the stuffs like singleton objects etc.
2. Should we prefer EJB over Spring framework for distributed applications as it provides features like distributed transaction?
Unfortunately none of those questions have straightforward answers. For #1, it very much depends on the application and even the application server. For #2, I have never used Spring so I don't know if at all it supports distributed transactions. Does your application need that feature? How are you planning to use it?
I am not working on distributed application. I asked these questions to improve my concept of distributed application.
For # 1, you said, it depends upon the Application and Application server.
So, for example, I want to deploy a simple web application in the distributed cluster environment with 2 nodes. The Application Server is Weblogic 10g. And, I have a singleton class in the application.
My purpose of deploying it into cluster environment is to achieve High Availability.
In this scenario, do i need to do any changes in the code or just do the configuration in the Weblogic console?