Apple Developer Connection
Member Login Log In | Not a Member? Contact ADC

< Previous PageNext Page > Hide TOC

Legacy Documentclose button

Important: The information in this document is obsolete and should not be used for new development.

WOJSPServlet

Radar #3038197

Potential performance problem when deploying WebObjects applications on Tomcat 4.0.x, integrating with Apache WebServer using ajp13/WARP protocols.

Description:

In general, WebObjects applications are deployed in Tomcat 4.0.x servlet containers without performance problems. We have tested this either running Tomcat 4.0.x in a standalone mode or integrated with Apache WebServer. There is a particular edge case that you might perceive delay in the response.

  1. You are deploying on Tomcat 4.0.x, integrating with Apache WebServer.

  2. The connector/protocol that you have chosen for the integration is mod_jk/ajp13 or mod_webapp/WARP (mod_jk/ajp12 doesn't have this edge case problem but it is not recommended in general by Apache. See Apache's website for more details)

  3. Your WO application has extremely fast response < 200ms (Usually this means you have little or no database activity). And the content is small, usually smaller than 1500 bytes.

  4. You are deploying in a fast LAN.

  5. Your Tomcat 4.0.x container runs on Mac OS X.

If all the conditions are satisfied, you will see that your response will take at least 200ms per request-response loop. Here is a short description of the source of the problem for ajp13 protocol.

The way the protocol was designed is that the Tomcat container will respond in 3 chunks: a chunk of short headers, a chunk of body, and a short chunk of end-response content. Because TCP_NODELAY is turned off by default on Mac OS X, chunks do not get sent to the Apache WebServer until either an ack is received or the chunk size is big enough. Tomcat 4.0.x should have turn on TCP_NODELAY when using ajp13 protocol.

Workaround:

There are two options.

  1. You can simply ignore this problem since 200ms is not a lot for your users when they are using the browser, especially on the Internet.

  2. If you are doing stress testing and you (or your management) are bothered by the 200ms delay, you can patch Tomcat's connectors. Here we describe the patch for ajp13.

Radar #3072947

Some WebObjects applications (particularly JavaClient or DirectToJavaClient) may fail to install as Servlet Single Directory Deployments (SSDD) in WebSphere on Windows.

Description:

Windows has a total file path limit of 255 characters. Normally this is sufficient, however a combination of Project Builder (for MacOSX) frameworks and SSDD can cause some files to exceed this file path limit. The problem is excaerbated by the process of converting symlinks to Windows; because symlinks are flattened, the Project Builder (for MacOSX) build frameworks have an internal structure of /Versions/Current/... as well as Resources and WebServerResources.

Workaround:

In many cases, simply deleting the top level Versions directory in any framework build by Project Builder (for MacOSX) is sufficient. As long as the top level Resources and WebServerResources folders remain, the app should run fine. In some circumstances, the application classpath (in the web.xml) may need to be tweaked if it referenced the framework jar as ...framework/Versions/A/Resources/...



< Previous PageNext Page > Hide TOC


Last updated: 2004-12-02




Did this document help you?
Yes: Tell us what works for you.

It’s good, but: Report typos, inaccuracies, and so forth.

It wasn’t helpful: Tell us what would have helped.
Get information on Apple products.
Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Copyright © 2007 Apple Inc.
All rights reserved. | Terms of use | Privacy Notice