Что означает ошибка ORA-12571 (TNS: сбой записи пакетов) в веб-службе?

StackOverflow https://stackoverflow.com/questions/1579605

Вопрос

Фон:Я вызываю веб-службу, написанную на ASP.NET, которая запрашивает базу данных Oracle.Я знаю, что сама веб-служба работает, потому что я использовал ее раньше других приложений.Итак, у меня есть веб-приложение в Visual Studio, которое я переключал взад и вперед, чтобы указать от веб-сервиса «DEV» к производственной версии того же веб-сервиса, настроенной для тестирования.Указать на настроенный веб-сервис «DEV» не проблема, но при вызове производственной версии я всегда получаю исключение при вызове службы:

SoapException was unhandled by user code
Server was unable to process request. ---> could not execute query
[ SELECT this_.FIELD1 as FIELD1_18_0_, this_.FIELD2 as FIELD12_18_0_ FROM ABC.TABLE_A this_ WHERE this_.FIELD1 like :p0 ORDER BY this_.FIELD1 asc ]
Positional parameters:  #0>00073%
[SQL: SELECT this_.FIELD1 as FIELD1_18_0_, this_.FIELD2 as FIELD12_18_0_ FROM ABC.TABLE_A this_ WHERE this_.FIELD1 like :p0 ORDER BY this_.FIELD1] ---> ORA-12571: TNS:packet writer failure

Я выполнил SQL-запросы к соответствующей базе данных (вырезал и вставил прямо из сообщения об исключении), и запрос вернулся с ожидаемыми данными.Я пробовал обновить и повторно добавить ссылку на веб-службу как «Ссылку на службу» (способ .NET 3.0+), так и как «Веб-ссылку» (более старый способ .NET), и оба выдают одну и ту же ошибку.

Вопрос:Итак, что же означает «ORA-12571»:Ошибка TNS: ошибка записи пакетов» означает в контексте веб-службы?Поиск номера ошибки Oracle дает некоторые очень расплывчатые возможные причины, такие как «ослабленное кабельное соединение» или «конфликт IP-адресов».Я совершенно уверен, что это ни то, ни другое, поскольку в настоящее время эту веб-службу успешно использует другое приложение.Возможно, какая-то ошибка конфигурации или что-то более тонкое?Кто-нибудь еще видел, чтобы этот досадный номер ошибки Oracle был связан с чем-то, связанным с веб-сервисом?

Это было полезно?

Решение

Ваш вызов поступает от клиента ws к серверу ws в базу данных oracle.

Ваша ошибка — это ошибка ORA, сгенерированная базой данных.Итак, ваша проблема, вероятно, между сервером ws и базой данных.

Когда вы запускали «SQL-запросы к соответствующей базе данных», вы делали это с веб-сервера?Если нет, не могли бы вы попробовать это.Убедитесь, что вы используете ту же конфигурацию подключения.

РЕДАКТИРОВАТЬ

Согласно комментарию ниже, настоящая проблема заключалась в несоответствии драйверов.

Другие советы

Я бы предложил более тщательно пересмотреть ваши предположения, поскольку это явно ошибка в диалоге веб-сервиса с базой данных и она должна быть полностью независимой от вызывающей стороны w/s.

Если вызов w/s генерирует это конкретное исключение, он должен делать это для всех других вызовов, поэтому ваше «другое приложение», успешно использующее веб-службу, просто не выполняет тот же код, или на это влияют внешние факторы.

В любом случае это не связано с тем, как служба регистрируется или вызывается.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top