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 lol
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; } }
Gaël
Partager