The core processing of your Web application happens on the application server. As such, the better EAServer performs the better your Web application will perform. This section highlights several key performance settings you should definitely consider. You may refer to the EAServer Performance and Tuning Guide for details on how to extensively tune EAServer.
When starting EAServer, the -jvmtype switch specifies whether the client, server, or classic Java VM be used. It is recommended that you set the switch to the J2EE server VM.
You should avoid using any JDBC-ODBC driver. Instead, use the Native-protocol/all-Java driver. The only exception is SAP SQL Anywhere, which provides the iAnywhere JDBC driver that actually performs remarkably well. For detailed information on configuring JDBC drivers refer to the section called “JDBC driver preparation” in Appeon Server Configuration Guide for J2EE.
By default, EAServer is configured to establish 10 database connections. For applications with many several hundred or several thousands of users, this number is often too small. If not increased, it will hurt the performance of your application since your users will be waiting in a queue for an available database connection. On the other hand, if your Web deployment is few hundred users or less, you should not specify an unnecessarily large number as it will consume more server resources and possibly negatively affect performance.
The maximum pool size property, "com.sybase.jaguar.conncache.poolsize.max", defines the maximum number of connections to be held in the connection pool. The size property is generally set to 10%-20% of the maximum number of concurrent users. However, it is possible to use the FORCE option when connecting to obtain additional connections outside of the pool if none are available. Refer to the EAServer Performance and Tuning Guide for details on tuning the cache size.
You should configure the EAServer http.maxthreads and server.maxconnections properties such that it can handle the expected concurrent user load for the Web Server. If these properties are improperly configured, it may result in poor performance and possibly result in failed HTTP requests. The httpstat.dat file keeps track of cumulative hits on http objects.
Set the http.maxthreads property to the estimated average number of concurrent HTTP requests (including Servlets and any other server pages). For example, if it is expected that there will be 100 concurrent requests, set the http.maxthreads slightly higher (for example, 120). This will give you a margin of safety. Similarly, set the server.maxconnections to accommodate the average number of concurrent IIOP requests that are expected.
Another property you should pay attention to is server.maxthreads. Set this property to equal the combined value of http.maxthreads and server.maxconnections, and add 50 as a margin of safety (http.maxthreads + server.maxthreads + 50). However, if you are using an older version of PowerBuilder components with a bind thread set, you should increase this number as outlined in the EAServer Performance Tuning Techniques document.
Since each application and environment is unique, these are starting points that need to be monitored and adjusted for optimal results. Load and stress testing your application will help you to identify any issues prior to moving your Web application to a production environment.