problème de saturation mémoire
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:
Code:
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;}
}
} |
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 ?
Merci