Bonjour!

J'ai une erreur très embetante en utilisant postgresql depuis java : je dois insérer beaucoup de lignes dans une table (environ 200'000) et je rencontre à chaque fois une erreur de type :
org.postgresql.util.PSQLException: FATAL: d?sol?, trop de clients sont d?j? connect?s

Après avoir consulté google et perdu 1 jour et demi sans trouver la cause de mon problème, je me tourne sur le forum...

Ma méthode appelant est définie comme ceci :

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
public static void ecritArticle(DAOArticle article){
 
	Properties prop = new Properties();
	try {
		prop.load(new FileInputStream("config.properties"));
 
		String url = prop.getProperty("url");
		Properties props = new Properties();
		props.setProperty("user",prop.getProperty("user"));
		props.setProperty("password",prop.getProperty("password"));
 
		Connection connection = DriverManager.getConnection(url, props);
 
		Statement st = connection.createStatement();
 
		//requete non originale mais correcte dans le code
		String sqlText = "INSERT INTO \"Article\"("\"EAN"\")VALUES ('" + article.getEan() + "')"
 
		logger.info("sql : " + sqlText);
		st.execute(sqlText);
 
		st.close();
		connection.close();
	} 
	catch (Exception e) 
	{
		logger.error("Erreur ecritArticle()",e);
	}
}
En gros j'ai bien une ouverture de ma connection, mon traitement, et ma fermeture de statement et de connection; mais lors de l'exécution j'obtiens une erreur me signifiant que j'ai trop de clients déjà connectés :

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
org.postgresql.util.PSQLException: FATAL: d?sol?, trop de clients sont d?j? connect?s
	at org.postgresql.core.v3.ConnectionFactoryImpl.doAuthentication(ConnectionFactoryImpl.java:293)
	at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:108)
	at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:66)
	at org.postgresql.jdbc2.AbstractJdbc2Connection.<init>(AbstractJdbc2Connection.java:125)
	at org.postgresql.jdbc3.AbstractJdbc3Connection.<init>(AbstractJdbc3Connection.java:30)
	at org.postgresql.jdbc3g.AbstractJdbc3gConnection.<init>(AbstractJdbc3gConnection.java:22)
	at org.postgresql.jdbc4.AbstractJdbc4Connection.<init>(AbstractJdbc4Connection.java:32)
	at org.postgresql.jdbc4.Jdbc4Connection.<init>(Jdbc4Connection.java:24)
	at org.postgresql.Driver.makeConnection(Driver.java:393)
	at org.postgresql.Driver.connect(Driver.java:267)
	at java.sql.DriverManager.getConnection(Unknown Source)
	at java.sql.DriverManager.getConnection(Unknown Source)
	at ch.accesBD.RechercheBD.getRayonID(RechercheBD.java:165)
	at ch.fichiers.LectureFichier.litFichierArticle(LectureFichier.java:386)
	at ch.controleur.Controlleur.controleFichier(Controlleur.java:127)
	at ch.main.MainProject.main(MainProject.java:88)
Je ne comprends absolument pas pourquoi alors que j'ai bien mon connection.close() à la fin de mon traitement; tandis que je vois bien dans mes process qu'ils gonflent au fur et à mesure de mes traitements.

J'utilise le driver JDBC4 Postgresql Driver, Version 9.1-901 sur une JVM 1.7.

Merci d'avance pour votre aide!