2009-12-13 13 views
1

Lors de la connexion au serveur Oracle à partir de l'application .NET à l'aide d'ADO.NET pour Oracle, même si je fermais la connexion, la connexion reste inactive sur le serveur Oracle, de sorte que les nouvelles connexions ne pouvaient pas être établi en raison de la limitation des sessions par utilisateur, est-il possible de s'assurer que toutes les connexions sont fermées? à partir du serveur Oracle ou de l'application .NET.ADO.NET pour oracle ne ferme pas les connexions

Merci à l'avance

Répondre

5

pourrait-il être les connexions restent ouverts pendant un certain temps en raison de connection pooling? Pouvez-vous s'il vous plaît coller du code montrant comment vous fermez les connexions? Aussi utilisez-vous ODP.NET ou les classes fournies par Microsoft? Vous pouvez essayer de désactiver la mise en commun des connexions (ajoutez ;Pooling=false à la chaîne de connexion dans ODP.NET) pour voir si le problème est dû à l'utilisation de cette connexion (sachez simplement que la création d'une nouvelle connexion physique à la base de données est une opération coûteuse, donc vous ne voulez probablement pas désactiver la mise en commun des connexions de façon permanente).

+0

Merci, je tournai la mise en commun hors mais toujours eu la même erreur, mais je suis en utilisant des classes Microsoft .NET 3.5 (fournisseur Microsoft pour Oracle) est-il une question de savoir pour fournisseur Microsoft? ou devrais-je utiliser ODP.NET? Cordialement. –

+2

Le client ODP.NET peut faire plus que MS One et le MS est déconseillé dans .NET 4.0, il est donc conseillé de passer à ODP.NET. Pour résoudre davantage le problème, je vous recommande de coller un exemple de code. – RichardOD

0

Quelque chose de similaire à:

using (OracleConnection connection = new OracleConnection(connectionString)) 
{ 
    OracleCommand command = new OracleCommand(queryString); 
    command.Connection = connection; 
    try 
    { 
     connection.Open(); 
     command.ExecuteNonQuery(); 
    } 
    catch (Exception ex) 
    { 
     Console.WriteLine(ex.Message); 
    } 
}