2010-01-22 10 views
0

Nous avons une application asp.net qui utilise le client Oracle. Dans la chaîne de connexion, nous spécifions les 3 attributs de base: source de données, ID utilisateur et mot de passe. Nous utilisons la mise en commun des connexions. Nos données résident dans deux schémas Oracle différents. La plupart des demandes concernent des données de Schema1. Les délais d'expiration proviennent des appels de données du schéma2Obtention d'exceptions de délai de requête à partir d'une application asp.net utilisant le client Oracle avec plusieurs schémas

Est-il possible que les connexions soient implicitement liées à un schéma?

Cela expliquerait beaucoup. Comme la plupart des appels concernent des données provenant de schema1, le pool est rempli de connexions qui ne sont bonnes que pour schema1. Ensuite, un appel vient pour les données de schema2 et aucune des connexions dans le pool ne peut satisfaire la requête et nous obtenons le timeout.

Merci pour toute aide, - Greg

Répondre

0

Une connexion Oracle est toujours liée à un schéma, la valeur par défaut est propre schéma de l'utilisateur. Si vous utilisez deux chaînes de connexion différentes, vous devriez déjà avoir deux pools distincts, donc je suppose que vous avez peut-être atteint le nombre maximum de sessions pour la base de données.

Quel est votre paramètre d'instance "SESSIONS". Comparez cela à votre "Max Pool Size" réglage de la connexion. Par défaut, je pense que 100 pour 11g, mais vous n'avez pas mentionné quelle version. Vous devrez peut-être augmenter les PROCESSES ou réduire la taille maximale du pool.

Vous devez interroger V $ SESSION au moment où vous voyez ces délais pour voir combien de sessions Oracle réelles.

Sélectionnez le nom d'utilisateur, comptez (1) à partir du groupe de sessions v $ par nom d'utilisateur;