Salut les gens.
J’ai un petit problème qui me bourre le choux depuis un bon moment, et j’arrive pas à avancer, même google ne m’a pas vraiment aidé avec les solutions proposées.
Voici le code :
[code]private static Business.Glossary[] GetAll(string commandText){
Surcharge.OraDataReader __dr = null;
Surcharge.OracleClient __client = null;
try
{
__dr = DataAccessor.GetData(__client, commandText);
while(__dr.Read()){
Glossary __newGlossary = new Glossary(__dr[“ID1”], __dr[“ID2”]);
__glossaries.Add(__newGlossary);
}
}finally{
if(Validation.IsNotNull(__dr)) { __dr.Close(); }
}
return (Business.Glossary[])__glossaries.ToArray(typeof(Business.Glossary));
}
internal static Surcharge.OraDataReader GetData(Surcharge.OracleClient __client, string commandText)
{
__client = new Surcharge.OracleClient(ConnectionString);
Surcharge.OraDataReader __dr = null;
try{
__dr = __client.ExecuteReader(CommandType.Text, commandText);
}catch(Exception e){
string errorMessage = e.Message;
__client.Close();
throw e;
}
return __dr;
}[/code]
J’espère pas avoir fait un copier coller trop cochon.
Bon, le problème est le suivant, ça marche généralement tout le temps.
Des fois, sans raison réellement logique, ça plante.
Sur une ligne précise, toujours la même :
A ce moment je me prend une exception Oracle : Connection mut be open for this operation
Et je trouve pas.
Dans la logique je me dis qu’il s’est passé quelque chose en mémoire qui a fait fermer la connection. Mais pourquoi ?
Je crée ma connection et la récupère normalement par le paramètre de la méthode. Pourquoi je le perd ? Ais-je oublié un notion aussi simple sur la durée de vie des variables ?
2eme hypothèse : Le static. C’est un site web, et donc plusieurs personnes à la fois se connecte et interroge la base.
Cela va-t-il poser problème ? Normalement non, cela crée une queue, mais la queue précédente va-t-elle exploser la connection de la queue suivante ?
Bref, je reste assez étonné du problème sans vraiment bien le comprendre.
Et je vais bientôt mourir vu la thématique de la réunion de ce soir à ce sujet…
Pourriez pas m’aider siou plait…?
PS: Oui, ici ils ont un framework dans lequel ils ont surchargé le space OracleClient.