Qual è la differenza tra “ORA-12571: TNS fallimento pacchetto scrittore” e “ORA-03135: collegamento contatto perduto”?
Domanda
Sto lavorando in un ambiente in cui otteniamo i problemi di produzione di volta in volta relativi a connessioni Oracle. Usiamo ODP.NET da applicazioni ASP.NET, e abbiamo il sospetto le connessioni Chiude firewall che sono stati nel pool di connessioni troppo a lungo.
A volte si ottiene un "ORA-12571: TNS fallimento pacchetto di scrittore" errore, e, talvolta, si ottiene "ORA-03135: il collegamento perso il contatto."
Mi chiedevo se qualcuno ha eseguito in questo e / o ha una comprensione della differenza tra i 2 errori.
Soluzione
Usando un'analogia cellulare:
- ORA-12571 (Failure) Mezzi chiamata viene interrotta.
- ORA-03135 (Connection Lost) Altra parte riattaccato.
Altri suggerimenti
La mia comprensione è che 3135 si verifica quando una connessione viene persa. Questo non vi dice perché la connessione è stata persa, però. Potrebbe essere stata terminata dal server perché il server non è riuscito a ricevere una risposta a una sonda per un certo periodo di tempo, e presume che la connessione era morto. O (io non sono sicuro di questo) l'esatto contrario di quello: il client non è riuscito a ricevere una risposta della sonda dal server per un certo periodo di tempo, quindi è assunto la connessione si è interrotta. Il "certo periodo di tempo" è cotrolled da SQLNET.EXPIRE_TIME = [minuti] in sqlnet.ora.
Per quanto riguarda il 12571, il mio (ancora vaga) comprensione è che c'era un guasto improvviso ad inviare un pacchetto durante la comunicazione con il server, e che questo è in genere causata da alcuni software o hardware interferire con la connessione (sia per la progettazione, o per errore). Per esempio, se si tira fuori il cavo ethernet e quindi provare a eseguire una query, probabilmente otterrete questo. O se un firewall o l'applicazione anti-malware decide di bloccare il traffico.