#php #oracle #oci8
#php #Oracle #oci8
Вопрос:
Это очень повторяющаяся проблема с некоторыми пользователями базы данных Oracle, и я прочитал и попробовал разные подходы с большим успехом.
Я испытываю ошибку ORA-03135 во время выполнения инструкции SELECT. Это происходит только для определенных записей одной таблицы. В таблице есть поле, определенное как varchar (4000), и я обнаружил, что ошибка возникает, когда я пытаюсь прочитать запись с большой строкой в поле, о котором я говорил ранее (около 2000 символов или более).
После некоторого чтения я попытался установить SQLNET.EXPIRE_TIME, SQLNET.INBOUND_CONNECT_TIMEOUT, SQLNET.SEND_TIMEOUT и SQLNET.RECV_TIMEOUT безуспешно.
Я не думаю, что это проблема с таймаутом, потому что, если я попробую тот же запрос на клиенте, таком как Sqlplus, это сработает, и я получу результат мгновенно.
В сети нет брандмауэра, и при возникновении ошибки на стороне сервера не генерируются предупреждения / журналы. Также нет ограничений профиля.
Я использую базу данных Oracle 11.2, работающую на Oracle Linux и PHP OCI8, для извлечения данных.
Есть ли какое-либо другое место, которое я мог бы поискать?
Заранее спасибо!
Комментарии:
1. Вы видели документ базы знаний Oracle «Устранение неполадок при потере соединения ORA-3135 (идентификатор документа 787354.1)». Обычно это проблема с брандмауэром, но ваша настройка не соответствует. Возможно, здесь необходим запрос на обслуживание.
2. Проверьте свой журнал предупреждений на наличие ошибок, возникающих одновременно с разрывом соединения. Возможно, сеанс завершен, потому что данные не могут быть прочитаны… Даже проблема с хранилищем может вызвать ORA-03135
Ответ №1:
Хорошо, только что решил это…
Я был неправ. Похоже, ошибка возникает в строках с какой-то фигней в конце, и не только в больших. Удаление последнего символа решает проблему.
Я проведу некоторое дальнейшее расследование и попытаюсь точно выяснить, что происходит.
Редактировать 1:
теперь уверен на 100%, ошибка возникает, когда последней строкой является escape-символ » n». Довольно забавно, да?