Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Oracle - Timeout bei Verbindung
Bratwurstexe
myCSharp.de - Member

Avatar #DjnCTOgpyUQc0tznMTdl.png


Dabei seit:
Beiträge: 16

Themenstarter:

Oracle - Timeout bei Verbindung

beantworten | zitieren | melden

Info zur Datenbank
  • OCI: Version 11.1
  • Oracle Server Version PL/SQL Developer 11g Release 11.2.0.3.0
  • DLL: C:\OracleInstantClient\oci.dll

    Die erforderlichen Daten für den "ConnectionString" habe ich mir aus der tnsnames.ora auf dem Server genommen.

Problembeschreibung

Hallo zusammen,
ich bekomme beim Ausführen (Klick auf den Button1) nach einer kurzen Zeit von etwa 15 Sekunden folgende Timeout Fehlermeldung:
Fehler
Ausnahme ausgelöst: "Oracle.ManagedDataAccess.Client.OracleException" in Oracle.ManagedDataAccess.dll
Eine externe Komponente hat eine Ausnahme ausgelöst.

"OraConnect.exe" (CLR v4.0.30319: OraConnect.exe): "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\PrivateAssemblies\Runtime\Microsoft.VisualStudio.Debugger.Runtime.Desktop.dll" geladen. Das Laden von Symbolen wurde übersprungen. Das Modul ist optimiert, und die Debugoption "Nur eigenen Code" ist aktiviert.
Das Programm "[24004] OraConnect.exe" wurde mit Code -1 (0xffffffff) beendet.

Leider konnte ich dazu nichts finden und mich würde interessieren warum ich diese Fehlermeldung bekomme bzw. Wo ich ansetzen kann um das Problem zu lösen und eine Verbindung aufgebaut bekomme.

Für Ideen wäre ich euch sehr dankbar.


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Oracle.ManagedDataAccess.Client; 
using System.Configuration;
using System.Diagnostics;


//OCI: version 11.1
// Oracle Server Version PL/SQL Developer 11g Release 11.2.0.3.0
// DLL C:\OracleInstantClient\oci.dll



namespace OraConnect
{
    public partial class Form1 : Form
    {

        OracleConnection con = new OracleConnection(ConfigurationManager.ConnectionStrings["con"].ConnectionString);

        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {

            
            con.Open();    
            MessageBox.Show("Connected");
            con.Close();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            con.Close();
            Close();
        }
    }
}


App.Config


<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <section name="oracle.manageddataaccess.client" type="OracleInternal.Common.ODPMSectionHandler, Oracle.ManagedDataAccess, Version=4.122.21.1, Culture=neutral, PublicKeyToken=89b483f429c47342" />
  </configSections>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
  </startup>
  <system.data>
    <DbProviderFactories>
      <remove invariant="Oracle.ManagedDataAccess.Client" />
      <add name="ODP.NET, Managed Driver" invariant="Oracle.ManagedDataAccess.Client" description="Oracle Data Provider for .NET, Managed Driver" type="Oracle.ManagedDataAccess.Client.OracleClientFactory, Oracle.ManagedDataAccess, Version=4.122.21.1, Culture=neutral, PublicKeyToken=89b483f429c47342" />
    </DbProviderFactories>
  </system.data>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Text.Json" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>

	
	
	<connectionStrings>

		<add name="con" connectionString="Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=*******)(PORT=1***))(CONNECT_DATA=(SERVICE_NAME=ORCL1)));User Id=*********;Password=*******;" />
		
		
	</connectionStrings>
Attachments
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15.852

beantworten | zitieren | melden

Timeouts sind meistens Verbindungsprobleme, zB Netzwerk, Firewall...
private Nachricht | Beiträge des Benutzers
Bratwurstexe
myCSharp.de - Member

Avatar #DjnCTOgpyUQc0tznMTdl.png


Dabei seit:
Beiträge: 16

Themenstarter:

beantworten | zitieren | melden

Zitat von Abt
Timeouts sind meistens Verbindungsprobleme, zB Netzwerk, Firewall...

Das ist mir bewusst. Ich habe (hätte ich natürlich vorher dazu schreiben sollen) Die Verbindung von meinem Client zu der Datenbank getestet und hatte hier keinerlei Probleme mit der Verbindung.

Die Frage ist natürlich, warum bekomme ich keine Verbindung aus meinem Programm heraus?

Könnte jemand evtl. einmal über meinen ConnectionString schauen? Evtl. habe ich hier einen Fehler?


<connectionStrings>

		<add name="con" connectionString="Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=*******)(PORT=1***))(CONNECT_DATA=(SERVICE_NAME=ORCL1)));User Id=*********;Password=*******;" />


	</connectionStrings>
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15.852

beantworten | zitieren | melden

Dein Client muss nich zwangsläufig die gleiche Verbindungsart haben; es gibt mehrere.
Welchen String Du benötigst kannst Du der Anleitung Deines Providers zusammen mit den Settings des Servers (die kennen wir nicht) entnehmen: ConnectionStrings.com - Forgot that connection string? Get it here!

PS: seit Dir bewusst, dass man neue Applikationen nicht unbedingt mit dem .NET Framework entwickeln sollte.
Dieses wurde mit Version 4.8 abgekündigt. Die neue Welt nennt sich .NET 5 (und höher); auch mit neuen Visual Studio Templates.
private Nachricht | Beiträge des Benutzers
Bratwurstexe
myCSharp.de - Member

Avatar #DjnCTOgpyUQc0tznMTdl.png


Dabei seit:
Beiträge: 16

Themenstarter:

beantworten | zitieren | melden

Hallo Abt,

Es lag tatscächlich an einem falschen ConnectioonString


Ich habe jetzt folgenden benutzt und ich bekomme jetzt eine Verbindung zur Datenbank.




<add name="con" connectionString="Data Source=b*******;Persist Security Info=True;User ID=b*******;Password=**********;Unicode=True" providerName="System.Data.OracleClient"/>
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Bratwurstexe am .
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15.852

beantworten | zitieren | melden

Manchmal sind es die einfachsten Dinge :-)
Aber gut, dass es nun klappt!
private Nachricht | Beiträge des Benutzers