«Правильный» способ сделать это - написать JCA-соединитель для вашего внешнего сервера. JCA является частью стека Java EE и предназначен именно для этого: для обеспечения входящей и исходящей связи с сервера приложений на внешнюю систему. Он поддерживает пул , аутентификация , транзакции и т. Д. (База данных и JMS-брокер имеют доступ через разъемы JCA, кстати).
Однако написание такого адаптера может быть довольно сложным. Может быть, исследовать упрощенный подход, который может быть проще универсальной библиотекой пула (может быть, вы найдете что-то интересное в commons-pool или c3p0).
Посмотрите также этот ответ о пуле TCP-соединений.