В чем причина ошибки ORA-03135: соединение потеряно при миграции Microsoft OracleClient на ODP.NET

Недавно решил сделать миграцию. И на некоторых серверах баз данных все работает нормально, а на других по неизвестной причине возникают ошибки. Я использую следующий код:

using System.Data.OracleClient;
using Oracle.ManagedDataAccess.Client;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            System.Data.OracleClient.OracleConnection _conn = 
                new System.Data.OracleClient.OracleConnection("Data Source=[TNS_NAME];User Id=[USER_ID];Password=[PASS];");
            _conn.Open();
            Oracle.ManagedDataAccess.Client.OracleConnection _conn1 =
                new Oracle.ManagedDataAccess.Client.OracleConnection("Data Source=[HOST/TNS_NAME];User Id=[USER_ID];Password=[PASS];Validate Connection = true");
            _conn1.Open();
        }
    }
}

в строке _conn1.Open() появляется сообщение об ошибке «ORA-03135: Связь потеряна связь». Почему может происходить это явление? Сервер БД - Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64-разрядная производственная среда


person Feagor    schedule 06.06.2014    source источник
comment
Одно различие между OracleClient и ODP.NET состоит в том, что OracleConnection ODP.NET фактически является пулом соединений. Возможно, ваша база данных истекает по таймауту для более старых подключений в этом пуле. Вы можете попробовать использовать свойство ValidateConnection, чтобы гарантировать, что любое полученное вами соединение является хорошим. Тем не менее, это стоит как минимум одного обхода, поэтому, возможно, будет лучше поработать с вашим администратором баз данных, чтобы понять, почему происходит тайм-аут.   -  person Christian Shay    schedule 10.06.2014


Ответы (1)


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

Попросите администратора базы данных изучить журналы, чтобы узнать, может ли он что-нибудь найти. Брандмауэр мог прервать соединение. Или SQL Net может быть настроен на тайм-аут соединений.

Есть ли у вашей компании контракт на поддержку? Если это так, я бы открыл SR, и они могут помочь вам отследить ситуацию, чтобы сузить проблему. Вам потребуется помощь вашего администратора базы данных, чтобы посмотреть на сторону сервера.

person Christian Shay    schedule 06.06.2014