I will not argue with you at all on that. But here's the kicker:
I am using my own "pool" of S3Service objects (this was partly to test a possible threading issue, but as per your reply to a previous post, it is probably not entirely necessary). I am theorizing that each of these actually has up-to 20 (?) http connections via the underlying httpclient.
Some/most S3 requests are working fine. It is just consistently the issue reported with the one S3-url. Now, I do not have enough data being logged to indicate whether this is one specific connection within one of my pooled S3Service objects, or whether it is happening for all requests from that particular S3Service object (as it is used from the pool).
I am imagining a tree of objects at this point with my tomcat webapp (that actually has plenty of threads too) at the top, "n" S3Service objects in my pool, and each of those having "n" httpclient connection objects - I guess being managed by a connection-manager.
Thus, I'm not sure at which level we need to address -- the httpclient (leaf), its connectionmanager, or the S3Service object.
I am considering adding code where I catch the ServiceException and if it is a Timeout, try destroying that S3Service object, and replacing it with a new one. Do you think this could be effective? Or will it possibly still pick-up the cached info regarding the host-resolution?
Thanks again,
AJ