Bonjour,
J'ai un job tout simple qui possède une connexion MySQl, un Tmap et un fichier csv d'écriture en sortie.
Dans le Tmap, j'appelle une routine utilisateur qui créé une connexion MySql, fait un select et ferme cette connexion.
Tout va bien sauf que j'obtiens des tas de connexion en TIME_WAIT et le système finit par saturer !
Je pense que le problème vient de l'écriture de ma routine, mais je ne vois pas quoi faire car je ferme bien ma connexion. Pourquoi ai-je autant de connexions à se créer ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part "Erreur SQL : Data source rejected establishment of connection, message from server: "Too many connections"
Faut-il passer par un autre composant Talend pour rechercher une valeur spécifique à chaque ligne ?
Merci de votre aide,
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57 public static int IdLine(String varKeyaxe,String varServer, String varPort, String varDb, String varLogin, String varPass) { /* Récupère l'identifiant de la ligne dans line à partir du cod_com = keyaxe */ int varIdLine = 0; Connection varConnection; String varAdd = "noDatetimeStringSync=true"; String url = "jdbc:mysql://" + varServer + ":" + varPort + "/" + varDb + "?" + varAdd; java.sql.Statement statement = null; if (varKeyaxe != null) { try{ varConnection = DriverManager.getConnection(url,varLogin,varPass); statement = varConnection.createStatement(); String sql = "select IDLINE from line where COD_COMM = '" + varKeyaxe + "'"; ResultSet resultat = statement.executeQuery(sql); while(resultat.next()){ System.out.println("Je suis dans le while ! "); varIdLine = resultat.getInt(1); } //interaction avec la base System.out.println("Je close le stat ! "); statement.close(); System.out.println("Je close la conn ! "); varConnection.commit(); varConnection.close(); if (varConnection.isClosed()) { } else { varConnection.close(); System.out.println("Je ferme ! "); } //varConnection.close(); } catch(SQLException sqle){ System.out.println("Je suis sqle ! "); System.out.println("Erreur SQL : " + sqle.getMessage()); //Cf. Comment gérer les erreurs ? } catch(Exception e){ System.out.println("Je suis e ! "); System.out.println("Autre erreur : "); e.printStackTrace(); } finally { } } return varIdLine;
Partager