Пул соединений для проприетарного соединения api (non jdbc)

Я использую API для подключения к некоторым аппаратным терминалам и сетям. API позволяет мне подключаться к серверам, отключать и опросить данные, что очень похоже на то, что позволяет JDBC-соединение. В любом случае, поскольку это не использует интерфейс JDBC Connection, я не могу использовать уже существующий пул соединений. Я бы хотел не писать сам, если я могу использовать уже существующий или, может быть, просто построить небольшой адаптер поверх этого. Кто-нибудь знает о какой-либо инфраструктуре/библиотеке, которая позволила бы мне включить объединение пулов, которое может обрабатывать мои подключения, может гарантировать, что соединение все время живое и т.д.?

Я просмотрел Commons Pool, но это только дает вам несколько классов, чтобы поместить/получить ваши соединения... он не выполняет никаких задач по обслуживанию и т.д. (проверьте, что соединение время от времени недействительно, повторно подключитесь и т.д). Я могу добавить, что механизм проверки соединения и повторного подключения, если есть какие-либо проблемы и т.д., В случае, если это уже ничего не делает.

Приветствия, Стеф.

Ответ 1

Apache Commons Pool фактически поддерживает создание, уничтожение и проверку объектов на предмет их достоверности, прежде чем передавать их с помощью PoolableObjectFactory, который вы используете с фактической реализацией пула, передавая его как параметр:

final PoolableObjectFactory objectFactory = new MyPoolableObjectFactoryImpl();
final ObjectPool pool = new GenericObjectPool(objectFactory);

Ответ 2

Вы можете посмотреть в dbcp http://commons.apache.org/dbcp/

этот файл BasicDataSource предоставляет такие методы, как maxActive, maxIdle, maxWait и т.д. для более подробной документации http://commons.apache.org/dbcp/apidocs/org/apache/commons/dbcp/BasicDataSource.html

интересный, если вы собираетесь использовать новую реализацию try tomcat 7 jdbc пул соединений http://people.apache.org/~fhanik/jdbc-pool/jdbc-pool.html

[править] бесполезно для сценария -hGx, чтобы выставить сообщение Хеннинга