Oracle ORA-12170: TNS: иногда возникал тайм-аут соединения - PullRequest
0 голосов
/ 20 декабря 2018

У меня есть небольшая программа, которая выполняет команду ftp, чтобы получить файл csv с компьютера, прочитать файл csv и сохранить информацию в базе данных.

Я столкнулся с проблемой, когда продолжаю получать сообщение об ошибке

System.Data.OleDb.OleDbException (0x80004005): ORA-12170: TNS: Тайм-аут соединения произошел System.Data.OleDb.OleDbException (0x80004005): ORA-12170: TNS: Тайм-аут соединения произошел в GetPLCData_P1OOConse..OpenConn () в

C: \ Users \ shaari \ Desktop \ Workspace \ Current \ Midware \ GetData_Mitsubishi \ GetPLCData \ GetPLCData \ ConnectOracle_NoUse.vb: строка 30 в GetPLCData_P1M1.Form1.GetTableStructure (String m): \ Users \ shaari \ Desktop \ Workspace \ Current \ Midware \ GetData_Mitsubishi \ GetPLCData \ GetPLCData \ Form1.vb: строка 1449

У меня была эта программа на 3 ПК. На остальных 2 ПК нетесть эта проблема.Только 1 ПК получил эту проблему, в то время как я использую одинаковые настройки для всех программ.Разница только в названии машины и категории.На двух других ПК, на которых установлена ​​эта программа, запущена только 1 программа, а на этом специальном ПК - 2 программы.Извините за мой плохой английский. Смысл в том, что у меня в общей сложности 4 компьютера A, B, C и D. Программа A предназначена для получения данных на компьютере A, и эта программа запускается на ПК A. Программа Bдля извлечения данных на машине B и запуска этой программы на ПК B. Программа C предназначена для извлечения данных на машине C, и эта программа запускается на PC C . Программа D предназначена для извлечения данных на машине D, и эта программа запускается на ПК C .Обратите внимание, что на ПК C запущены 2 программы, то есть Программы C и D. Является ли это причиной тайм-аута TNS?Пожалуйста, посоветуйте мне решить эту проблему, ребята.Я потратил около 1 месяца на эту проблему, но все еще не смог найти логического объяснения, почему это происходит.Если это так.Пожалуйста, сообщите мне также, где я могу проверить еще раз, чтобы решить эту проблему.

OracleConnectionString = "Provider=OraOLEDB.Oracle.1;User ID=user;Data Source=source;Password=pass" 'This line inside the app setting file

Код

Public Function GetTableStructure(mTableName As String) As DataTable
    Try
        Dim dt As DataTable = New DataTable

        Dim pstruct As String = "Select * from " & mTableName & " where 1 = 2 "
        Dim Addap As OleDbDataAdapter

        OracleConnString As String = ConfigurationSettings.AppSettings("OracleConnectionString")
        OpenConn()

        ds.Clear()
        ds.Tables.Clear()
        Addap = New OleDbDataAdapter(pstruct, strCon)
        Addap.Fill(ds, "PLC_Realtime_Log")
        dt = ds.Tables("PLC_Realtime_Log")
        Return dt

    Catch ex As Exception
        Trace.WriteLine(ex.ToString)
        Return Nothing
    End Try
End Function
...