Previous     Contents     Index     Next     
iPlanet Application Server Performance and Tuning Guide



Chapter 8   General Guidelines for Better Performance


The following general guidelines are designed to elicit better performance:

  • Change the multicast server host address and port number in a network to reduce the updates received and avoid writes to the registry where there are multiple iPlanet™ Application Server installations in a network which are not in a single cluster.

  • If you are using the native JDBC driver for Oracle, then to enable parsing of SQL statements during OPARSE call, set the environment variable IAS_OPARSE_NODEFER in iasenv.ksh file. If this is not set, parsing will be deferred until oexec.

    iPlanet Application Server with Oracle 8.1.6 core dumps if an illegal SQL statement is passed. Setting this variable can avoid this occurrence. This setting is only recommended for development environment and not for production environment. This feature is available from iPlanet Application Server, Enterprise Edition 6.0, SP3 onwards.



Guidelines For Better EJB Performance

The following guidelines are designed to promote better EJB performance:

  • If you don't need session failover, turn DSync off for your application. In other words, use lite rather than distributed session if you can, so that DSync doesn't have to propagate session changes to other machines.

  • If you need session failover, but don't need protection for an entire machine failure, make sure you have multiple KJS process and use Dsync-Local sessions. Session failover will then be available for all KJS processes inside the iPlanet Application Server instance. However, session failover across machine boundaries will not be provided. At least your session information will survive a KJS crash.

  • Make your session small -- about 4KB per user session is a heuristic that has been around for a long time. However, with iPlanet Application Server it appears that DSynch processing, not the size of the synch chunks, may be the performance governor. Therefore, it may be more important to keep the clusters small (4 instances or less), than it is to keep the user session-sizes small.

  • Keep what you store in a session simple if distributed sessions are used. The iPlanet Application Server session service was designed for fairly simple name-value pairs.

  • Serialization and deserialization is required to move session info around in a distributed session environment, so don't create big, complex objects that are expensive to marshall around.

  • Don't rely on HttpSession time-outs to clean up sessions. Use the HttpSession.invalidate() method to manually cleanup where possible.

  • Set the HttpSession time-out as low as possible so that the container gets a chance to clean up an unwanted session sooner.

  • If handles to stateful session EJBs are being stored in HttpSessions by servelets or JSP's accessing them, then the EJB session timeout should be set close to the HtttpSession timeout.

    The default session time-out is 14400 seconds (4 hours) for stateful session EJBs. Set this to a more reasonable value. This will prevent KJS memory growth and avoid unnecessary passivation of EJB instances that are no longer needed.

  • Specifically for JSPs, if your JSPs are not explicitly using HttpSession, you are creating unnecessary HttpSession objects since a session object is created for you automatically. To prevent this, add the following JSP page directive to your JSPs: <%@session=false %>.


Previous     Contents     Index     Next     
Copyright © 2002 Sun Microsystems, Inc. All rights reserved.

Last Updated March 06, 2002