J'ai un tas de programmes Java exécutés toutes les quelques minutes. Ces programmes sont lancés par un script toutes les quelques minutes et se termine en moins d'une minute. La plupart d'entre eux sont un seul thread et d'accéder à MySQL DB J'utilise:Frais généraux liés à l'utilisation du pool de connexions DB
DriverManager.getConnection()
Ils ont juste besoin de se connecter une fois et exécuter une requête. Maintenant, j'ajoute un nouveau programme à ce groupe qui est multi-threadé et tous les threads doivent accéder à DB en même temps. Je pense à utiliser un pool de connexion DB (c3p0) pour cela. Étant donné que tous ces programmes partagent un DAO commun pour l'accès à la base de données, est-ce que l'utilisation d'un pool de connexions DB pour les programmes à un seul thread nécessite une connexion? Je prévois de définir la taille initialPool à 1, la taille minimale du pool à 1 et la taille maximale du pool à 10.
Ma question est de savoir s'il y a un problème de performance sur l'utilisation d'une connexion DB Piscine avec juste une connexion vs juste obtenir une connexion à l'aide DriverManager.getConnection() – kriver
Il ne devrait pas y avoir de problèmes de performance au moins simplement parce que vous ne fermerez pas du tout la connexion. Puisque vous envisagez de définir 'maxPoolSize' à 10, dans ce cas, ConnectionPool est le meilleur choix car il n'y aura pas de verrous. La seule chose à considérer est que ConnectionPool a besoin de bibliothèques externes, alors que DriverManager.getConnection() n'a besoin que de JDK. – n1ckolas