Próbuję zrobić wstawkę z potencjalnie dużą ilością danych binarnych do zdalnej bazy danych Oracle (11g) przy użyciu Entity Framework (ODP.Net). Działa dobrze dla naprawdę małych plików (< 5 KB), ale w przypadku większych (na przykład 44 KB) pojawia się błąd: "ORA-03135: connection lost contact"."ORA-03135: połączenie stracił kontakt" podczas wstawiania dużego pliku
Nie sądzę, że upływa limit czasu, ponieważ wyjątek występuje w ciągu sekundy od wykonania polecenia.
Próbowałem ustawienie obu z następujących w moim ciąg połączenia, ale bezskutecznie:
Validate Connection=true
Pooling=false
ja również spojrzał w pliku listener.log
na zdalnej maszynie. Pokazuje wykonane połączenia, ale żadnych oznak wyjątków ani przerwanych połączeń.
Jestem za sugerowane poprawki lub metody rozwiązywania problemów.
Edit:
Te same operacje SQL działa podczas uzyskiwania dostępu do instancji Oracle w sieci lokalnej.
Cóż, może to nie to, ale miałem "ORA-03135: połączenie stracił kontakt" na dziwne rzeczy, gdy połączenie nie zostało utracone w ogóle to tylko się stało że Oracle nie był już w stanie połknąć przesłanego oświadczenia SQL. Mam go na ogromne zapytania (> 2000 linii kodu). Może wysyłam cię na właściwy tor, ale pomyślałem, że po 4 godzinach nie otrzymam odpowiedzi, przynajmniej mógłbym ci powiedzieć, że to moje własne doświadczenie. Dla mnie wyglądało na to, że komunikat zawsze pojawia się, gdy analizator składni polecenia SQL rozbił się w tle. – hol
Może warto sprawdzić dziennik alertów na zdalnym komputerze, aby sprawdzić, czy zgłosił błąd. Jeśli nie, może to wskazywać na problem będący na końcu klienta, a nie na serwerze. Czy na drodze są jakieś zapory ogniowe lub cokolwiek innego na poziomie sieci, które może mieć dzienniki, które możesz sprawdzić? –
Rejestr sieci byłby pomocny. Zapora sieciowa nie jest włączona i jest serwerem Windows obsługującym serwer Oracle. Nie jestem pewien, gdzie ruch TCP jest rejestrowany na komputerze z systemem Windows, ale może muszę to znaleźć. –