2010-04-16 20 views
2

Je travaille dans un environnement où nous avons de temps en temps des problèmes de production liés aux connexions Oracle. Nous utilisons ODP.NET à partir d'applications ASP.NET et nous suspectons que le pare-feu ferme trop longtemps les connexions qui ont été dans le pool de connexions.Quelle est la différence entre "ORA-12571: TNS packet writer failure" et "ORA-03135: connection lost contact"?

Parfois, nous obtenons une erreur "ORA-12571: TNS packet writer failure", et parfois nous obtenons "ORA-03135: connexion perdue contact".

Je me demandais si quelqu'un a rencontré cela et/ou a une compréhension de la différence entre les 2 erreurs.

Répondre

5

En utilisant une analogie de téléphone mobile:

  • ORA-12571 (non) signifie que l'appel est abandonné.
  • ORA-03135 (Connexion perdue) Une autre personne a raccroché.
3

Ma compréhension est que 3135 se produit lorsqu'une connexion est perdue. Cela ne vous dit pas pourquoi la connexion a été perdue, cependant. Il a peut-être été interrompu par le serveur car le serveur a échoué à recevoir une réponse à une sonde pendant un certain laps de temps et a supposé que la connexion était morte. Ou (je ne suis pas sûr à ce sujet) le contraire exact de cela: le client n'a pas reçu une réponse de sonde du serveur pendant un certain laps de temps, ainsi il a supposé que la connexion a été perdue. La "certaine quantité de temps" est cotrolled par SQLNET.EXPIRE_TIME = [minutes] dans sqlnet.ora. En ce qui concerne 12571, ma compréhension (encore vague) est qu'il y a eu un échec soudain à envoyer un paquet pendant la communication avec le serveur, et cela est généralement causé par un logiciel ou un matériel interférant avec la connexion (soit par conception ou par erreur). Par exemple, si vous retirez votre câble Ethernet et essayez d'exécuter une requête, vous obtiendrez probablement ceci. Ou si un pare-feu ou une application anti-malware décide de bloquer le trafic.