5 Stimmen

Oracle Odp.Net nicht gemeldeter Fehler beim Aufruf einer Prozedur in einem ungültigen Paket

Ich habe gerade meinen schlimmsten Wartungsalbtraum erlebt: einen stillen Fehler.

Ich rief eine Prozedur mit Odp.Net innerhalb eines benutzerdefinierten Pakets auf, und der Prozeduraufruf scheiterte stillschweigend, ohne dass eine Ausnahme ausgelöst wurde (überprüft mit Schritt-für-Schritt-Debug und einer catch all-Klausel). Nach langem Suchen stellte ich fest, dass das Paket ungültig war (ein Missgeschick auf dem Server). Nachdem ich das Paket neu kompiliert hatte, war alles wieder in Ordnung (der Aufrufcode war korrekt und unverändert).

Da es in Oracle sehr einfach ist, ein Paket versehentlich ungültig zu machen, muss ich diese Art von Fehlern abfangen, und sei es nur, um sie zur Fehlersuche zu protokollieren.

Mit MS's System.Data.OracleClient wurde in diesem Fall eine OracleException ausgelöst, gibt es eine Möglichkeit, ein ähnliches Verhalten mit Oracle's Oracle.DataAccess zu erreichen? Eine Art von sqlnet.ora Parameter ? Ich habe nirgendwo im Netz ein ähnliches Problem gefunden.

mit Oracle11R2-Server, neuester Oracle Win32-Client. .Net3.5.

2voto

Peter C Punkte 161

Haben Sie versucht, odp.net trace log zu aktivieren?

<oracle.dataaccess.client>
  <settings>
   <add name="TraceFileName" value="c:\odpnet1.trc"/>
   <add name="TraceLevel" value="63"/>
 </settings>
 </oracle.dataaccess.client>

Vielleicht bringt es etwas Licht ins Dunkel?

0voto

JackD Punkte 603

Es ist ein Problem des Anbieters. Ich habe ODP.NET nach einer ähnlichen Ausnahme geändert. Jetzt benutze ich dotConnect für Oracle und empfehle Ihnen, das Gleiche zu tun.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X