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 :
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
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); } }
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.
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)
J'utilise le driver JDBC4 Postgresql Driver, Version 9.1-901 sur une JVM 1.7.
Merci d'avance pour votre aide!
Partager