Problème de mémoire

nicompx Messages postés 107 Date d'inscription lundi 16 janvier 2006 Statut Membre Dernière intervention 15 juillet 2009 - 29 août 2006 à 10:05
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 - 30 août 2006 à 03:41
Bonjour,


J'ai un problème de mémoire avec une application.

En gros : le programme insère EN BOUCLE dans une base de données Oracle des lignes.

Je regarde la mémoire utilisée par le process avec Task Manager la mémoire utilisée grandit sans arrêt, puis l'application plante.

Voici le code d'insertion dans ma DB.


publicvoid requete_non_select(string sQuery)
{
fichier_ini fic =
new fichier_ini();
OracleConnection OConnexion =
new OracleConnection();
OConnexion.ConnectionString = fic.lecture_ini("1");
//Récupère la string de connexion dans le fichier ini
OracleCommand cmd =
new OracleCommand(sQuery);
//Création d'une commande
cmd.Connection = OConnexion;
cmd.CommandType = CommandType.Text;
//Type de commande
OConnexion.Open();
//Ouverture de la connexion
cmd.ExecuteNonQuery();
//Execute la requête
OConnexion.Close();
//Fermeture de la connexion
}









Merci d'avance.

>> NiCoMpX <<

8 réponses

SharpMao Messages postés 1024 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 7 juin 2010 69
29 août 2006 à 10:12
Hello,

Ca n'es peut-être pas ça, mais dans ta méthode lecture_ini de ta classe fichier_ini, est ce que tu refermes le fichier ?

Amicalement, SharpMao
0
cs_Bidou Messages postés 5486 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
29 août 2006 à 10:25
Salut,
Quelle est la requête?
De plus, on stock pas (plus) une requête dans un fichier ini mais dans un fichier xml (pourquoi pas le fichier de config...). Car l'ini est légèrement dépassé ;-)

<hr size="2" />VC# forever
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
29 août 2006 à 10:31
En fait, c'est surtout la chaine de connexion qu'il faut szocker dans le fichier de config, c'est fait pour ;)
Autrement, un try / catch / finally pour fermer la connexion a la bdd quoiqu'il arrive et disposer les ressources, ce serait pas du luxe
(Utiliser oConnexion.Dispose(); )
Mx
MVP C# 
0
cs_Bidou Messages postés 5486 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
29 août 2006 à 10:40
C'est ce que je voulais dire pardon, je ne sais pas pourquoi j'ai mis le mot requête ;-)
C'était bien sûr en rapport avec cette ligne :
OConnexion.ConnectionString = fic.lecture_ini("1");
//Récupère la string de connexion dans le fichier ini

Les requêtes doivent aller dans dans SP...

<hr size="2" />VC# forever
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nicompx Messages postés 107 Date d'inscription lundi 16 janvier 2006 Statut Membre Dernière intervention 15 juillet 2009
29 août 2006 à 10:42
Salut,


Oui je ferme le fichier!




>> NiCoMpX <<
0
nicompx Messages postés 107 Date d'inscription lundi 16 janvier 2006 Statut Membre Dernière intervention 15 juillet 2009
29 août 2006 à 11:02
Toujours le me problème après avoir ajouté oConnexion.Dispose(); !!!
Que faire?

>> NiCoMpX <<
0
nicompx Messages postés 107 Date d'inscription lundi 16 janvier 2006 Statut Membre Dernière intervention 15 juillet 2009
29 août 2006 à 11:12
Mon application est une application console.
Une fois que je réduit la console, la mémoire utilisé par l'application est libérée.
Je ne comprend pas pourquoi??

>> NiCoMpX <<
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
30 août 2006 à 03:41
Salut, peut être le pool de connexion qui ne libère pas vraiment les connexions :

http://www.csharpfr.com/infomsg_TESTER-CONNEXION-BASE-DONNEES_677853.aspx#6
0
Rejoignez-nous