Can somebdy throw some light on why shud an app server be used when we can build/develop some capabilities like caching, connection pooling etc. in the application framework.
I think you answered you own question. The reason to go for an app server is to avoid having to write all those services and leave it to the folks who are best at it. That way you can focus on the business functionality.
My concern is only towards usage of resources in building up the components and services which are provided by the app servers but also i fear that using app server might make our application more vendor agnostic and i might force my user to be highly dependent on the app server.
I think there should be more overall focus on the distributed aspect of Application Servers.
EJB is most of all a Component-based Software Development-architecture. In Component-based Software Development, the need arises for certain services provided by the underlying component model or framework and EJB specifies such services.
Maybe you should ask yourself wether you truly need a distributed solution for your problem. It might be that a component-based solution does not quite fit your needs. The disadvantages of the Application Server should make you really ponder about these issues first, before throwing yourself in the AppServ jungle...