La Data Virtualization permet la mise en commun des connexions et lorsque les pools de connexions sont pleins, les performances peuvent être affectées de manière négative.
Symptômes
Il existe de nombreuses raisons pour lesquelles les requêtes simultanées peuvent être lentes ou échouer. Par exemple, lorsque le pool de connexions devient saturé. Dans ce cas, les journaux de Data Virtualization contiennentReached max pool sizedes avertissements, comme illustré dans l'exemple suivant.
2021-04-13 03:06:27.541~616290520 DatabaseConnector ---------------> ******* DB Connections checker:
Reached max pool size: 20, for url: jdbc:derby://172.30.217.136:6415/gaiandb6415;ssl=off;create=true - waiting 600000ms
Résolution du problème
Pour résoudre ce problème, augmentez les paramètres de configuration de Data Virtualization 'MAX_POOLSIZES ou 'MAX_DS_POOLSIZES.
- MAX_POOLSIZES est la taille maximale du pool pour la connexion inter-nœud.
- MAX_DS_POOLSIZES est la taille maximale du pool pour les sources de données.
select * from dvsys.listconfig where id = 'MAX_POOLSIZES'
Ou
select * from dvsys.listconfig where id = 'MAX_DS_POOLSIZES'
Pour modifier les paramètres, utilisez la procédure mémorisée dvsys.setconfigproperty
comme illustré dans l'exemple suivant.
call dvsys.setconfigproperty('MAX_POOLSIZES', 'nn', '',?,?)
Ou
call dvsys.setconfigproperty('MAX_DS_POOLSIZES', 'nn', '',?,?)
'nn'
sur une valeur supérieure à la valeur en cours. Gardez à l'esprit le nombre maximal de connexions autorisées prises en charge par vos sources de données distantes lorsque vous définissez MAX_DS_POOLSIZES.