当前位置:网站首页>Surveiller l'utilisation du pool de connexion des sources de données
Surveiller l'utilisation du pool de connexion des sources de données
2022-06-29 09:46:00 【Milugloomy】
Contexte
Page précédente《Problème avec le pool de connexion de la source de données non fermé Could not open JDBC Connection for transaction》Analyse du code sourceMyBatisCadre etSpringLa gestion des transactions désactive automatiquement la fonction du pool de connexion des sources de données,Résoudre un problème avec un pool de connexion de source de données en ligne plein.
Mais on a résolu un problème, et peut - être un autre,Il faut maintenant un pool de connexion capable de surveiller l'utilisation des sources de données、Presque plein de plans d'alarme.
Programme I
Ce qui est utilisé ici estDruidSource des données,D'autres sources de données peuvent utiliser le scénario II ci - dessous.
DruidLa source de données elle - même a unfilter,Obtenir la connexion de la source de données(AppelezgetConnectionMéthodes)Tous lesfilter.
Alors,Nous pouvons ajouter unfilter,Pour voir l'état actuel du pool de connexions,Les codes sont les suivants::
List<Filter> filters = new ArrayList<Filter>();
filters.add(new FilterAdapter(){
@Override
public DruidPooledConnection dataSource_getConnection(FilterChain chain, DruidDataSource dataSource, long maxWaitMillis) throws SQLException {
int activeCount = dataSource.getActiveCount();
if (activeCount > (dataSource.getMaxActive() * 0.8)) {
log.error("Druid Warning,the current active count of Druid Connection Pool is " + activeCount + "!");
}
return chain.dataSource_connect(dataSource, maxWaitMillis);
}
});
dataSource.setProxyFilters(filters);
Lorsque le nombre actuel de connexions est supérieur au nombre maximum de connexions 80%Le Journal des erreurs sera imprimé, Bien sûr, d'autres types de codes d'alarme peuvent être ajoutés à nouveau .
Programme II
L'option 2 peut être appliquée aux sources générales de données ,IllimitéDruidSource des données.L'idée de base est, Écrivez une sous - classe de sources de données héritées , Outrepasser la méthode d'obtention de la connexion , Code permettant la surveillance avant d'obtenir la connexion ,Voici un exemple de code::
DruidDataSource dataSource = new DruidDataSource(){
protected Logger log = LoggerFactory.getLogger(BaqiDataSource.class);
@Override
public DruidPooledConnection getConnectionDirect(long maxWaitMillis) throws SQLException {
int activeCount = this.getActiveCount();
if (activeCount > (dataSource.getMaxActive() * 0.8)) {
log.error("Druid Warning,the current active count of Druid Connection Pool is " + activeCount + "!");
}
return super.getConnectionDirect(maxWaitMillis);
}
};
// Initialiser le pool de connexion comme suit
dataSource.setUrl("xxx");
dataSource.setUsername("xxx");
dataSource.setPassword("xxx"));
dataSource.setDriverClassName("xxx"));
...
Conclusions
L'option 1 s'applique: DruidSource des données, Le scénario II s'applique à toutes les sources de données ,Peut être utilisé selon le cas.
边栏推荐
- Reading notes on how to connect the network - Web server request and response (V)
- Wechat applet user refuses to authorize geographic location information and calls up the authorization window again
- [technology development] development and design of alcohol tester solution
- Simplicity Studio无法识别新买的JLink v9解决方法
- Five heart charity matchmaker team
- Difference between factory mode and strategy mode
- Gross Tumor Volume Segmentation for Head and Neck Cancer Radiotherapy using Deep Dense Multi-modalit
- Pytorch Summary - sensor on GPU
- 1424. diagonal traversal II
- User level threads and kernel level threads
猜你喜欢

User level threads and kernel level threads

数据可视化:数据可视化四象限,教你正确应用图标

Yotact real-time instance segmentation

Difference between factory mode and strategy mode

CROSSFORMER: A VERSATILE VISION TRANSFORMER BASED ON CROSS-SCALE ATTENTION

Automatic 3D Detection and Segmentation of Head and Neck Cancer from MRI Data.

Data governance: data standard management (Part III)

1424. diagonal traversal II

Write down some written test questions

A 3D Dual Path U-Net of Cancer Segmentation Based on MRI
随机推荐
Laravel 8 enables the order table to be divided by month level
Chang'an chain go language smart contract writing and compilation
mysql修改自动递增初始值
Understanding of singleton mode
Is it safe to open an account for stock speculation? Is it reliable?
【华为认证】HCIA-DATACOM史上最全精选题库(附答案解析)
The 23 most useful elasticsearch search techniques you must know
InvalidConnectionAttributeException异常处理
Making of simple addition calculator based on pyqt5 and QT Designer
Mongodb persistence
SPI drive of lsm6dsl
[Huawei certification] the most complete and selected question bank in hcia-datacom history (with answer analysis)
Visual assist plug-in settings for UE4 vs
CROSSFORMER: A VERSATILE VISION TRANSFORMER BASED ON CROSS-SCALE ATTENTION
Implementation of multi key state machine based on STM32 standard library
Cloud management platform: 9 open source cloud management platforms (CMP)
Automatic Multi-Organ SegmVentation on Abdominal CT With Dense V-Networks
The former security director of Uber faced fraud allegations and concealed the data leakage event
Pytorch learning summary - memory cost of operation
长安链GO语言智能合约编写与编译