Oracle Verbindung lässt sich nicht schließen

  • VB.NET
  • .NET (FX) 4.0

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Cell.

    Oracle Verbindung lässt sich nicht schließen

    Hallo zusammen,

    Ich habe folgendes Problem mit meiner Datenverbindung zu Oracle. Ich kann sie nicht mehr beenden. Komischerweise bleibt die Verbindung weiterhin bestehen auch wenn ich die CoracleConnection closed und disposed habe. Erst wenn ich meine Anwendung beende wird auch die Verbindung abgebrochen.

    Hier mein verwendeter Code (Ich lasse die Abfrage bewusst weg weil das Problem auch dann auftritt wenn ich kein Statement abgebe.

    VB.NET-Quellcode

    1. Private Sub Oracle_verbindungstest()
    2. Dim conn As New OracleConnection(oradb)
    3. conn.ConnectionString = oradb
    4. conn.Open()
    5. 'Hier wird die Verbindung aufgebaut ... und sollte auch sofort wieder beendet werden.
    6. conn.Close()
    7. conn.Dispose()
    8. End Sub
    Das ist zwar nicht die Lösung für dein Problem, aber ist Zeile 5 nicht sinnlos da du den ConnectionString schon in Zeile 4 der Connection zuweist?

    Ich kenne das Schließen der Verbindung nur mit .close() warum das bei dir nicht funktioniert kann ich an dieser Stelle nicht sehen.
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."
    ​Das ist zwar nicht die Lösung für dein Problem, aber ist Zeile 5 nicht sinnlos da du den ConnectionString schon in Zeile 4 der Connection zuweist?


    Das Stimmt natürlich ....


    ich habe den Code jetzt mal in sofern angepasst das ich die State Variable der Verbindung einmal abfrage wenn die Verbindung offen ist und einmal wenn die geschlossen sein sollte.

    Ich bekomme auch bei einer offenen Verbindung eine 1 und bei einer geschlossenen 0

    ABER wenn ich in der Eingabeaufforderung mit netstat die Verbindungen prüfe ist der Oracle Server noch immer drin ( Status HERGESTELLT ). Wenn ich die Anwendung dann schließe und netstat wieder aufrufe ist die Verbindung zwar noch da aber mit dem Status WARTEND und verschwindet dann irgendwann. Solange die Anwendung aber offen ist bleibt auch die Verbindung offen.
    Das wird durch das Verbindungspooling hervorgerufen, guckst du hier:
    msdn.microsoft.com/de-de/library/ms254502(v=vs.110).aspx
    Wenn du lange genug wartest, dann wird die wartende Verbindung sich irgendwann auflösen.
    Irch würde das alles so belassen - das passt im Allgemeinen ganz gut so.
    An manchen Tagen gibt es zu allem Überfluss auch noch Ärger!