Соединение с Oracle в порядке, но ORA-12170: тайм-аут TNS: Connect при выполнении запросов

У меня есть некоторые ошибки при выполнении запросов к базе данных oracle 11g из консольного приложения .net С#. Соединение установлено правильно (свойство conn.State равно Open после следующих строк)

OracleConnection conn = new OracleConnection(connString);
conn.Open();

но при запуске любого запроса я получаю сообщение об ошибке ORA-12170 (произошло время ожидания подключения). Я не думаю, что проблема в коде, так как тот же тест с другой базой данных работает правильно.

Connection.State is Open

Error: ORA-12170: TNS:Connect timeout occurred
   at Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, OpoSqlValCtx* pOpoSqlValCtx, Object src, String procedure, Boolean bCheck)
   at Oracle.DataAccess.Client.OracleException.HandleError(Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, Object src)
   at Oracle.DataAccess.Client.OracleConnection.Open()
   at Proj1.DB.OracleProj1.GetOpenConn(String connString) in C:\WorkTV\src\projects\OracleProj1\source\Core\Proj1Core\DB\OracleProj1.cs:line 560
   at Proj1.DB.OracleProj1.AddLog(DateTime start, DateTime end, Int32 userID, String ip, Int32 assetID, Int32 segmentID, Int32 flowID, Int32 permissionID, Int32 permissionSubtype, Int32 resultCode, String resultDescription, String resultLog) in C:\WorkTV\src\projects\OracleProj1\source\Core\Proj1Core\DB\OracleProj1.cs:line 3513
   at Proj1.Util.Tool.AddLog(Int32 resultCode, String resultDescription, String resultLog) in C:\WorkTV\src\projects\OracleProj1\source\Core\Proj1Core\Util\Tool.cs:line 177
   at Proj1.DB.OracleProj1.ExecuteNonQuery(OracleConnection conn, String query, String& log, Proj1Object Proj1Object) in C:\WorkTV\src\projects\OracleProj1\source\Core\Proj1Core\DB\OracleProj1.cs:line 638
   at Proj1.DB.OracleProj1.TestConnection(String connString) in C:\WorkTV\src\projects\OracleProj1\source\Core\Proj1Core\DB\OracleProj1.cs:line 315

Connection.State is Closed

Я могу подключиться к этой базе данных через Oracle SQL Developer под тем же пользователем и успешно вставлять/удалять строки.

При попытке подключиться к sqlplus через командную строку я получаю сообщение ORA-12560: TNS:ошибка адаптера протокола, поэтому я не могу выполнить проверку.

Все службы оракула работают.

Команда Lsnrctl status говорит:

Instance "xxx", status READY, has 1 handler(s) for this service...

Будем признательны за любую помощь, связанную с любой из обеих ошибок.


person klautern    schedule 05.01.2012    source источник
comment
Я только что решил проблему ORA-12560, скопировав tnsnames.ora в папку CLIENT_HOME\network\admin и подключившись к sqlplus, указав псевдоним службы: sqlplus user/password@alias   -  person klautern    schedule 05.01.2012
comment
Посмотрите на внутреннее исключение, разместив его здесь.   -  person radu florescu    schedule 06.01.2012
comment
Я добавил полное исключение к вопросу   -  person klautern    schedule 09.01.2012


Ответы (1)


Вы должны попробовать проверить свои библиотеки ODP. Это сработало для меня, мое внутреннее исключение было связано с несовместимостью между Oracle.DataAccess и базой данных Oracle 11g.

Проверьте эту ссылку и этот ответ.

person radu florescu    schedule 09.01.2012