В чем разница между «ORA-12571: сбой писателя пакета TNS» и «ORA-03135: соединение потеряно контакт»?
Вопрос
Я работаю в среде, в которой время от времени получаем производственные проблемы, связанные с соединениями Oracle. Мы используем ODP.NET из приложений ASP.NET, и мы подозреваем, что брандмауэр закрывает соединения, которые были в пуле соединения слишком долго.
Иногда мы получаем ошибку «ORA-12571: сбой писателя TNS», а иногда мы получаем «ORA-03135: подключение потерянного контакта».
Мне было интересно, если бы кто-то столкнулся с этим и / или имеет понимание разницы между двумя ошибками.
Решение
Использование аналогии мобильного телефона:
- ORA-12571 (неудача) означает вызов вызова.
- ORA-03135 (Соединение потеряно) Другая сторона повесила.
Другие советы
Мое понимание заключается в том, что 3135 возникает, когда соединение потеряно. Это не говорит вам, почему связь было потеряно, хотя. Это может быть прекращено сервером, потому что сервер не удалось получить ответ на зонд в течение определенного времени, и предполагается, что соединение было мертвым. Или (я не уверен в этом) Точная задняя часть этого: клиент не удалось получить ответ зонда с сервера в течение определенного времени, поэтому предполагалось, что соединение было потеряно. «Определенное количество времени» опускается SQLNET.EXPIRE_TIME = [минуты] в sqlnet.ora.
Что касается 12571, мое (снова расплывчатое) понимание заключается в том, что произошло внезапное неспособность отправить пакет во время связи с сервером, и что это обычно вызывается некотором программным обеспечением или аппаратным обеспечением, препятствующим соединению (либо по дизайну, либо по ошибке. ). Например, если вы вытащите свой кабель Ethernet, а затем попробуйте выполнить запрос, вы, вероятно, получите это. Или если брандмауэр или анти-вредоносное программное обеспечение решают заблокировать трафик.