2013-03-13 16 views
7

mam .net App poproszono zmodyfikować, wykorzystuje .NET Framework 2.0Oracle ODBC Błąd

mam skonfigurować połączenie ODBC DSN ze szczegółami połączeń dla naszego Oracle DB na moim komputerze lokalnym, przetestował połączenie i działa dobrze.

Teraz uruchomiłem moją aplikację, poszło bez problemu i skończyłem, sprawdziłem nasz dziennik błędów i znaleźliśmy kilka błędów niezwiązanych z tym problemem, ale ten błąd się nie pojawił.

Więc uruchomiłem aplikację ponownie z punktami przerw w celu uzyskania tych błędów. Tym razem uderzył z poniższym błędem

ERROR [IM004] [Microsoft] [ODBC Driver Manager] kierowcy SQLAllocHandle na SQL_HANDLE_ENV udało

co teraz robi mi na to, że po prostu zabrakło dobrze, nawet 10 minut temu i dodałem tylko punkt przełomowy.

Znalazłem kilka odpowiedzi i oddałem je wszystkie.

  1. ustawić odczytu/Wykonaj folder sterownika Oracle, niż na zresetować uprawnienia i nie ma różnicy
  2. Sprawdziłem „ścieżka” zmiennej środowiskowej i to jest w porządku
  3. Korzystanie z ODBC Administrator Przetestowałem połączenie bez błędu.
  4. Zweryfikowany ciąg połączenia wskazujący na DSN jest nadal poprawny 5. Pozycja nr
  5. Zweryfikowana moja aplikacja jest skonfigurowana do uruchamiania 32-bitowego, ponieważ sterownik ma 32-bitowy.

Jedyne, czego nie zrobiłem, to zapisać, zamknąć ponownie komputer i spróbować ponownie. Co zrobię zaraz po tym wpisie, jeśli to zadziała, opublikuję to.

W każdym razie, jeśli ktoś ma pojęcie, co może spowodować takie zachowanie, byłbym bardzo wdzięczny.

Komputer Win7, .NET Framework 2.0 jest, to VB.net, Oracle 10g jest sterownik (10,2)

Aktualizacja: porządku użyłem Administrator ODBC DSN i wyjąć go odbudować. Uruchomiłem moją aplikację i działało.

Powróciłem później, po wprowadzeniu zmian i ponownie uruchomiłem aplikację i ponownie otrzymałem błąd. próbował odbudować DSN i to nie pomogło, próbowałem uruchomić ponownie i to nie pomogło.

Poniżej znajduje się ślad stosu.

StackTrace: 
     at System.Data.Odbc.OdbcConnection.HandleError(OdbcHandle hrHandle, RetCode retcode) 
     at System.Data.Odbc.OdbcConnectionHandle..ctor(OdbcConnection connection, OdbcConnectionString constr, OdbcEnvironmentHandle environmentHandle) 
     at System.Data.Odbc.OdbcConnectionOpen..ctor(OdbcConnection outerConnection, OdbcConnectionString connectionOptions) 
     at System.Data.Odbc.OdbcConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject) 
     at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup) 
     at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) 
     at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) 
     at System.Data.Odbc.OdbcConnection.Open() 
+0

Czy prawidłowo pozbywasz się swoich połączeń? –

+0

Sprawdziłem to, myślałem, że może nie być, ale wygląda na to, że nie mogę znaleźć niczego, co jest otwarte, a które nie zostanie zamknięte. – sarchbold

+2

Czy możesz spróbować stworzyć bardzo prosty program za pomocą połączeń ODBC z czystą kością i sprawdzić, czy to działa? Firma Microsoft miała również aplikację ODBCTest, która umożliwia bezpośrednie wywoływanie funkcji API w celu testowania niskiego poziomu. Sprawdź, czy możesz go znaleźć i wypróbować. Czy próbowałeś włączyć śledzenie ODBC z panelu administracyjnego ODBC i zobaczyć, co się loguje? – OldProgrammer

Odpowiedz

0

Czy uruchamiasz to na zdalnym pulpicie? Jeśli tak, być może trzeba będzie dodać "Utwórz obiekty globalne" dla użytkowników pulpitu zdalnego do zasad lokalnych.

Jeśli jesteś na lokalnym komputerze, sprawdź wersję używanego sterownika ODBC. Jeśli jest to coś starszego niż 11.2.x.x, prawdopodobnie powinieneś zainstalować nowszy sterownik ODBC firmy Oracle (nie używaj sterownika ODBC firmy Microsoft Oracle - ma on problemy).

Powiązane problemy