[oracle] et .net, mes sessions oracle se multiplient ?

et .net, mes sessions oracle se multiplient ? [oracle] - SQL/NoSQL - Programmation

Marsh Posté le 01-03-2004 à 23:26:49    

j'ai un pb de sessions oracle qui sont créees pour chaque
éxécution de la même page.
 
Elles reste dans la file d'attente oracle un peu trop longtemps,
donc à force le total des sessions est dépassé et message d'erreur ...
 
alors question : est-ce qu'il est possible de ne pas créer
une session à chaque fois et toujours garder la même comme en asp
ou alors y-a-t'il une solution pour qu'elles se virent elles
même de la file d'attente dès qu'elles ont terminé.


Message édité par bill_clinton le 02-03-2004 à 00:16:25
Reply

Marsh Posté le 01-03-2004 à 23:26:49   

Reply

Marsh Posté le 02-03-2004 à 00:38:51    

Salut,
 
Il faut fermer explicitement toutes les connexions ouvertes et autres objets d'accès aux données.
 
Ainsi un OraCnx.open (ouverture d'une connexion) au début de code, aura son OraCnx.Close (voire même un OraCnx.dispose après, en plus, pour être clean)
et de même les DataReader ouverts seront explicitement fermés (.Close et .Dispose)
 
Si on ne le fait pas, chaque accès ouvert le reste et on finit par atteindre la limite de process ouverts sur Oracle (150 par défaut, je crois).
Un ménage rapide peut alors être fait en tuant (gestionnaire des taches) le process aspnet_wp.exe (il se recrée automatiquement sitôt tué)
 
En effet, on aurait pu croire, qu'à la fin de l'exécution d'une procédure ou d'une fonction, la destruction automatique des objets va entraîner la fermeture implicite de la session associée, hé ben non.
 
voilà, j'espère avoir été utile.

Reply

Marsh Posté le 02-03-2004 à 01:06:23    

en fait je viens de voir les codes sql des sessions et celui de la page que je teste ne reviens qu'une seule fois.
 
la je débugue une appli .net donc évidemment je m'apercois que des pages se chargent automatiquement ...


Message édité par bill_clinton le 02-03-2004 à 01:06:56
Reply

Marsh Posté le 02-03-2004 à 01:27:09    

si par exemple, j'ai une fonction comme ca, pour me créer mes connexions, je pense qu'elles ne seront jamais fermées non ?
 

Code :
  1. Public Shared Function OuvrirConnexion() As System.Data.OleDb.OleDbConnection
  2.         Dim Connexion As New System.Data.OleDb.OleDbConnection()
  3.         Connexion.ConnectionString = System.Configuration.ConfigurationSettings.AppSettings("ChaineConnexion" )
  4.         Connexion.Open()
  5.         Return Connexion
  6.     End Function


Message édité par bill_clinton le 02-03-2004 à 01:27:49
Reply

Marsh Posté le 02-03-2004 à 23:26:21    

bill_clinton a écrit :

si par exemple, j'ai une fonction comme ca, pour me créer mes connexions, je pense qu'elles ne seront jamais fermées non ?
 

Code :
  1. Public Shared Function OuvrirConnexion() As System.Data.OleDb.OleDbConnection
  2.         Dim Connexion As New System.Data.OleDb.OleDbConnection()
  3.         Connexion.ConnectionString = System.Configuration.ConfigurationSettings.AppSettings("ChaineConnexion" )
  4.         Connexion.Open()
  5.         Return Connexion
  6.     End Function




 
Dans ce cas, c'est au code qui appelé cette fonction pour obtenir cette connexion d'en assurer la fermeture après usage

Reply

Marsh Posté le 02-03-2004 à 23:39:50    

tu utilises le provider OleDB ?
il y a un provider Oracle exprès pourtant

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed