2011-04-14 6 views
11

J'utilise une API pour me connecter à certains terminaux matériels et réseaux. L'API me permet de me connecter aux serveurs, de me déconnecter et d'interroger les données, assez proche de ce que permet la connexion JDBC. Quoi qu'il en soit, puisque cela n'utilise pas l'interface de connexion JDBC, je ne peux pas utiliser un pool de connexion déjà existant. Je voudrais éviter d'en écrire un moi-même si je peux en utiliser un déjà existant, ou peut-être juste de construire un petit adaptateur par-dessus. Est-ce que n'importe qui sait de n'importe quel cadre/bibliothèque qui me permettrait d'activer le regroupement de connexion, qui peut manipuler mes connexions, peut assurer que la connexion est vivante tout le temps etc.? J'ai regardé Commons Pool, mais cela ne vous donne que quelques classes pour mettre/obtenir vos connexions ... il ne fait aucune des tâches de maintenance, etc (vérifiez si la connexion est invalide de temps en temps, reconnecter, etc.). Je peux ajouter en plus de cela le mécanisme de connexion de vérification et de reconnexion si des problèmes etc au cas où il n'y a rien là-bas qui le fait déjà.pool de connexion pour une connexion propriétaire api (non jdbc)

Cheers, Stef.

+0

S'il n'y a pas une plus grande communauté autour de ce propriétaire interface alors Apache Commons Pool pourrait être votre meilleur pari. –

Répondre

4

Apache Commons Pool soutient effectivement la création, la destruction et la vérification des objets de validité avant de les distribuer à la classe PoolableObjectFactory, que vous utilisez avec la mise en œuvre réelle de la piscine en passant comme paramètre:

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

Il l'a déjà fait. –

+0

@Joachim: Aïe. Merci. – Henning

+0

Cher downvoter: Comme cette réponse résout effectivement le problème, peut-être que vous pourriez être si gentil à élaborer? – Henning

0

Vous pouvez regarder dans dbcp http://commons.apache.org/dbcp/

il est BasicDataSource fournir des méthodes telles que maxActive, maxIdle, documentation vérifier maxWait etc pour plus http://commons.apache.org/dbcp/apidocs/org/apache/commons/dbcp/BasicDataSource.html

intéressant si vous allez pour une nouvelle mise en œuvre essayer tomcat 7 pool de connexion jdbc http://people.apache.org/~fhanik/jdbc-pool/jdbc-pool.html

[modifier] inutile pour le scénario -hGx si upvoting poste de Henning

+1

Le point entier de la question est que le pool ne contient pas de connexions JDBC. – Henning

+0

Je ne comprends pas, "Le point entier de la question est que le pool ne contient pas de connexions JDBC"? Ne parle-t-il pas de la mise en commun des connexions? – zudokod

+1

La prémisse de la question est qu'il veut regrouper les connexions _non-JDBC_, il ne pourra donc utiliser aucun des pools JDBC 'DataSource'. – Henning