Bonjour
Lors de déploiement successif sur mon pc ou sur le serveur intranet je provoque simultanément un plantage de tomcat pour saturation mémoire remontant ce message:
.... indexOutMemory PermGem Space
Il n'y a que peu de variables static et tout le traitement passe par des variables de session et du sql l'ensemble libéré après la réponse.
L'appli intègre donc un pool de connexion qui doit être configurable sans avoir à modifier le .war et sans avoir recours à la section admin de tomcat. Donc j'ai opté pour un paramétrage via un fichier properties dont voici le code:
Donc quand on fait un stop puis un undeploy puis un redéploiement sur tomcat est-ce que la ressource du 1 er pool est libérée ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 public class Pool_de_connexion { private static DataSource ds; //initialisation du pool public static Boolean initialise(Properties p) { DriverAdapterCPDS cpds = new DriverAdapterCPDS(); try {cpds.setDriver(p.getProperty("driver")); } catch (ClassNotFoundException e1) {e1.printStackTrace();return(false);} cpds.setUrl(p.getProperty("urlBdd")); cpds.setUser(p.getProperty("login")); cpds.setPassword(p.getProperty("password")); SharedPoolDataSource tds = new SharedPoolDataSource(); tds.setConnectionPoolDataSource(cpds); //nb connexions actives max tds.setMaxActive(Integer.parseInt(p.getProperty("nb_connection"))); //tps max d'attente tds.setMaxWait(Integer.parseInt(p.getProperty("tps_max"))); ds = tds; return(true); } //récupération d'une connexion public static Connection getConnection() {try {return ds.getConnection();} catch (final SQLException e) {index.Gest_mat.trace = e.getMessage();return null;} } }
Merci
Partager