Ich versuche, eine Einfügung mit einer potenziell großen Menge von Binärdaten in eine Remote-Oracle (11g) -Datenbank mit Entity Framework (ODP.Net) zu tun. Es funktioniert gut für wirklich kleine Dateien (< 5 KB), aber für größere (z. B. 44 KB) bekomme ich einen Fehler: "ORA-03135: Verbindung verloren Kontakt"."ORA-03135: Verbindung verloren Kontakt" beim Einfügen großer Datei
Ich glaube nicht, es ist Zeitüberschreitung, da die Ausnahme innerhalb einer Sekunde nach der Ausführung des Befehls auftritt.
Ich habe versucht, die beiden folgenden in meiner Verbindungszeichenfolge einstellen, aber ohne Erfolg:
Validate Connection=true
Pooling=false
ich in der listener.log
Datei auf dem entfernten Rechner auch aussehen. Es zeigt die getätigten Verbindungen, aber keine Anzeichen von Ausnahmen oder abgebrochenen Verbindungen.
Ich bin für vorgeschlagene Fixes oder Methoden zur Fehlerbehebung.
Edit:
Die gleiche SQL-Operationen arbeiten, wenn im lokalen Netzwerk auf eine Oracle-Instanz zugreifen.
Nun, vielleicht ist es nicht, aber ich hatte die "ORA-03135: Verbindung verloren Kontakt" auf seltsame Sachen, wenn die Verbindung überhaupt nicht verloren wurde dass Oracle die eingereichte SQL-Anweisung nicht mehr schlucken konnte. Ich habe es auf große Anfragen (> 2000 Codezeile) bekommen. Vielleicht schicke ich dich auf den richtigen Weg, aber ich dachte, nach 4 Stunden keine Antwort könnte ich dir wenigstens dieses Stück meiner eigenen Erfahrung erzählen. Für mich sah es so aus, als würde die Nachricht immer erscheinen, wenn der Parser des SQL-Befehls im Hintergrund abgestürzt ist. – hol
Es lohnt sich möglicherweise, das Warnprotokoll auf dem Remotecomputer zu überprüfen, um festzustellen, ob ein Fehler gemeldet wurde. Wenn nicht, deutet das möglicherweise auf das Problem beim Client und nicht beim Server hin. Gibt es auch irgendwelche Firewalls auf dem Weg oder irgendetwas anderes auf Netzwerkebene, das Protokolle haben könnte, die Sie überprüfen können? –
Ein Netzwerkprotokoll wäre hilfreich. Die Firewall ist nicht aktiviert und es handelt sich um einen Windows-Servercomputer, der Oracle hostet. Ich bin mir nicht sicher, wo TCP-Verkehr auf einem Windows-Rechner angemeldet ist, aber ich muss das vielleicht herausfinden. –