Bonjour,
j'ai une appli ASP.NET en C# que je developpe.
Je suis pour le moment le seul utilisateur qui l'utilise ...et pourtant au bout de quelques manipulations dans l'application, j'ai l'erreur suivante :
ORA-00020: maximum number of processes (200) exceeded
Je pense que je ferme bien les connexions :
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 public static OracleDataReader GetColorChoices() { OracleConnection _connection = new OracleConnection(ConfigurationSettings.AppSettings["ConnectString"]); try { _connection.Open(); } catch (Exception err) {} string strQuery = "SELECT color, description FROM color_choices"; OracleCommand _command = new OracleCommand(strQuery, _connection); _command.CommandType = CommandType.Text; OracleDataReader _reader = null; try { _reader = _command.ExecuteReader(System.Data.CommandBehavior.CloseConnection); return _reader; } catch { _connection.Close(); return _reader; } }
Une des solutions que j'ai trouvé sur le net consiste à augmenter e parametre (200) dans un fichier de Oracle mais bon je ne crois pas que ce soit une bonne solution, vaut mieux trouver ce qui se passe dans mon programme![]()
Enfin pour ne pas ouvrir/fermer la connexion a chaque requete (ma page remplit tout de meme une quinzaine de datagrids + requetes d'identification ...), j'ai tenté de créer une connexion et de louvrir dans le session_start du global.asax et d'utiliser cette objet a chaque requete mais je me retrouve face au meme pb !
Merci d'avance pour votre aide j'y suis depuis 12h je deviens fou
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 protected void Session_Start(Object sender, EventArgs e){ try{ OracleClient.OracleConnection _connection = new OracleClient.OracleConnection(ConfigurationSettings.AppSettings["ConnectString"]); System.Web.HttpContext.Current.Session["ORACLECONNECTION"] = _connection; _connection.Open(); } catch{DAL.Impl.Utils.Alert("Connexion pb");} } /****/ protected void Session_End(Object sender, EventArgs e){ try{ OracleConnection _connection = (OracleConnection)System.Web.HttpContext.Current.Session["ORACLECONNECTION"]; _connection.Close(); _connection.Dispose(); System.Web.HttpContext.Current.Session["ORACLECONNECTION"] = null; } catch{} } /**puis utilisation dans mes requetes : **/ public static OracleDataReader GetColorChoices() { OracleConnection _connection = (OracleConnection)System.Web.HttpContext.Current.Session["ORACLECONNECTION"]; string strQuery = "SELECT color, description FROM color_choices"; OracleCommand _command = new OracleCommand(strQuery, _connection); _command.CommandType = CommandType.Text; OracleDataReader _reader = null; try { _reader = _command.ExecuteReader(System.Data.CommandBehavior.CloseConnection); return _reader; } catch { _connection.Close(); return _reader; } }lol
Gaël
Partager