Thanks Laurent for the quick and helpful response.
I've noticed something odd about the JPPFExecutorService - probably misunderstanding on my part...
I have a client that generates a large number of tasks (~100k) in a streaming manner and needs to get them running on the grid as quickly as possible - so the executor service seems ideal way of submitting them. However the behaviour I observe is that the client seems to submit only a single job (despite thousands of calls to submit()) at a time at that contains a very limited number of tasks (10).
I've tried with batching on and off (both timed and by count).
Edit: I've just turned up logging and realised it is submitting jobs, it's just that according to the admin tool, only one executes at a time.
I just worked out it's to do with client connection pooling. I should RTM.
Something else that I tried, but breaks due to serialization, is ExecutorCompletionService to collect tasks as they finish - not critical, but it's a very nice pattern.