is that *different instances* of my singleton ProcessAgentPool class areEvidenced by? You didn't say why you think this...
actually instantiated!
And over what time interval are you seeing tihs?
Are you sure you aren't getting different ProcessAgent instances from a
single ProcessAgentPool?
Basically, by using a singleton, you have exposed yourself to several
threading issues. I wouldn't be at all surprised if a thread race is
causing a failed lookup of a ProcessAgent (in fact, a thread-race here
could crash the whole app, so it is unsafe if you haven't synchronized).
Another possibility is that your app-pool has recycled. This happens. It
also isn't clear on what thread the long-running operation is
happening - if you are using a web-service thread to do the main work, I
might expect starvation (and/or timeouts) to be an issue here as well.
Marc