The threads named jbm-server-session* and jbm-client-session* should be gotten from a thread pool instead of just being created. There's no way to cap the number of session threads.
The thread factory is defined in NamedThreadQueuedExecutor as...
private class Factory implements ThreadFactory
public Thread newThread(Runnable command)
This thread factory should really have a thread pool implementation and not just a new thread implementation. This class controls both the server threads and the client threads.