Bonjour à tous.

Je vous présente mon petit soucis.

Actuellement nous avons une IHM qui tourne en prod avec un getConnection dans mon connectionManager tel que

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
 
protected static final Connection getConnection() throws ApplicationException {
	try {
		DatabaseDaoManager daoManager = DatabaseDaoManager.getInstance();
 
		// Création du pool de connection
		if (daoManager.dbConnectionPool == null) {
			// Construction du pool
			OracleConnectionPoolDataSource ods = new OracleConnectionPoolDataSource();
 
			ods.setURL(daoManager.getDbUrl());
			ods.setUser(daoManager.getDbUserName());
			ods.setPassword(daoManager.getDbUserPassword());
			// ods.setMaxStatements(daoManager.getDbMaxConnection());
			// ods.setCacheScheme(oracle.jdbc.pool.OracleConnectionCacheImpl.DYNAMIC_SCHEME);
 
			// On affecte le pool
			daoManager.dbConnectionPool = ods;
			daoManager.pooledConnection = ods.getPooledConnection();
		}
 
		// On retourne une connection du pool
		// return daoManager.dbConnectionPool.getConnection();
		return daoManager.pooledConnection.getConnection();
 
	} catch (SQLException sqle) {
		LOGGER.error("[getConnection] Erreur lors de l'initalisation du pool", sqle);
		throw new ApplicationException(990007, sqle);
	}
}
Derrière l'appli est déployée sur un jonas. Alors j'ai un gros soucis et plusieurs question. Le soucis est relativement urgent donc je cherche une solution rapide et simple et une plus stable pour le long terme.

Le soucis est que plusieurs utilisateurs l'utilisent en meme temps et au bout d'une moment la connexion ne se fait plus. En gros l'appliu ne répond plus te le logs sont arretée. L'execustion s'arrete sur le gestionnaire de base.

Première question : je ne connaissait pas la solution utiulisée ci dessus. Est une bonne solution ? De plus je ne connais que le simple singleton getConnection(). Serait ce une solution acceptable pour une appli utilisée par une dixaine de personne en simultanée ?

Et pour le long terme, le mieux c'est quoi ?

J'ai beau parcourir les tutos et les FAQ, je m'y perd. Un petit coup de pouce ne serait pas de refus.