I have a Drupal website running on Httpd that makes AJAX calls to fetch fragments of HTML that are served up by JSPs in Tomcat 6 running on a different virtual host. Integration between the two servers is via Jkmod.
When data in the Java backend changes, the HTML served by the JSPs changes to reflect the new data. Unfortunately it often takes more than an hour for changes to be reflected on the Drupal site. It's not a local browser caching thing, as we've looked at the site from different machines with the same results, and also using Firebug to disable browser caching.
A specific scenario:
Last night the Tomcat app was switched off, causing the Drupal pages which make AJAX calls to display errors. When the Tomcat app was started up again, the pages that the users hadn't visited while the server was off were displayed with the correct HTML from Tomcat. The pages that had been visited were still displaying the error. Visiting those same JSPs directly (ie without going through Httpd) was fine. The final solution was to make an invisible change to the Drupal page, and after that the error disappeared and the JSP content was displayed correctly. Again, normally this would take an hour or two before correcting itself without the page changes.
I don't know Httpd or Drupal well so I'm not sure where this weird caching would be configured. Running Httpd 2.2, Drupal 6.17 and Tomcat 6.0.29