Benson, Is it possible to create a small testcase? I'm not sure where to start either, but an extra pair of eyes might yield something. It almost sounds like a close() isn't being called someplace when it should, but I'm not really sure where (client or server).
Dan On Friday 14 January 2011 7:23:00 am Benson Margulies wrote: > Last night I realized that the various messages I've sent about my > timeout woes reflect some conclusions I've drawn that may, in fact, > not be correct. So I write to start over. > > The original setup was as follows (2.3.1): > > Server side is very plain use of the CXF API to launch a JAX-WS endpoint. > > Client side is an ordinary proxy, created using the CXF client factory. > > Original problem: > > Client program sits in a loop making requests to the server. The > responses to these requests have two MTOM attachments each. > > After a few minutes of this, both sides grind to a halt, each waiting > for the other. Note that the service was actually trying to write a > response, not just sitting around waiting for the next request. > > Eventually, client times out and gets an exception. On the server > side, Jetty declares the connection idle and forces it to close. > > So, mystery #1: what is going on here? How could I try to diagnose it? > > To work around this, I set the timeout time on the client to a fairly > small value, and implemented a retry loop. The retry loop does not > recreate the proxy. This, at least, allows the business to restart > after one of these incidents. > > Last night, I tried changing to the blocking Jetty connector, since it > was described to more closely match my situation (not very many > connections). That made this situation much worse; it only took about > five interactions to set it off. > > I don't know how to begin to diagnose this mess, since it has > something to do with timing, and I'm hoping for some ideas. -- Daniel Kulp [email protected] http://dankulp.com/blog
