[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Feb 2005
    Beiträge
    47

    .net Connection - Problem nach Verlust der Connection

    Hallo,
    ich habe eine C#-Klasse, die mir eine Connection zur AS400 zur Versügung stellt. Wenn diese Verbindung abbricht und nach einer Zeit wieder hergestellt wird, dann kann die Verbindung nicht mehr aufgebaut werden.

    So sieht mein Code aus:
    Code:
        public static class AS400Connection    { 
           private static String connectionString = "";
           private static System.Data.OleDb.OleDbConnection conn;       
      public static OleDbConnection getConnection()      
      {         
       try     
           {      
              if (conn == null || conn.State != System.Data.ConnectionState.Open)
                    {    
                    getNewConnection();  
                      return conn;    
                }  
                  else 
                   {  
                      return conn; 
                   } 
               }    
            catch (Exception)   
             {    
                return null; 
               }  
          }       
      public static void closeConnection() 
           { 
               if (conn != null && conn.State != System.Data.ConnectionState.Closed)
                {     
               conn.Close();   
             }   
         }     
        public static void getNewConnection()   
         {         
       conn = new System.Data.OleDb.OleDbConnection(connectionString);   
             try   
             {       
             conn.Open();   
             }     
           catch (Exception)    
            {         
           conn = null; 
               } 
           }   
     }
    Wenn die Connection fehlschlägt wird das im catch abgefangen und versucht eine neue Verbindung aufzubauen. Egal wie, es funktioniert nicht. Ich bekomme keine neue Connection.

    Hab ich da nen Denkfehler oder woran kanns liegen??

    btw.: Im ConnectionString stehen natürlich die korrekten Connection-Infos

    Danke Oli

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Wenn du Fehler abfängst, solltest du eine variable deklarieren und dir die Fehlernachricht ausgeben (z.B. über Trace-Ausgabe).

    Zusätzlich kannst du Ereignisse des Conn-Objektes überwachen und auf ein Close der Verbindung reagieren.

    Da bei OLEDB auch Nicht-.Net-Komponenten betroffen sind, ist ein Dispose des Conn-Objektes nach dem Close erforderlich.

    Bei Verbindungen gibt es auch einen Connection-Pool der intern verwaltet wird.
    Nach einem Close/Disconnect landet die Verbindung im Pool und wird beim nächsten Open wiederverwendet.

    Aber wie oben geschrieben, wichtig ist die Fehlernachricht der Exception.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Apr 2005
    Beiträge
    385
    Also wie ich das sehe, wird im Fehlerfall keine neue Conenction aufgebaut! try/catch fängt ab und setzt die conn auf NULL in der Methode getNewConnection().

    Wo ist der Wiederaufbauversuch?

Similar Threads

  1. Problem mit Java-Methoden Aufruf aus ILE RPG?
    By Stoeberl in forum NEWSboard Programmierung
    Antworten: 8
    Letzter Beitrag: 10-01-07, 10:58
  2. Problem mit Steuerzeichen in Datenbank?
    By Stoeberl in forum NEWSboard Programmierung
    Antworten: 11
    Letzter Beitrag: 26-10-06, 10:07
  3. Authorization Problem nach ändern der Primary Group
    By ChrisX in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 11-10-06, 15:31
  4. Merkwürdiges Problem in VRPG
    By Flappes in forum IBM i Hauptforum
    Antworten: 0
    Letzter Beitrag: 06-10-06, 08:39
  5. CrtSQLRPGi - Problem bei Programmerstellung
    By sim in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 10-05-06, 14:45

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •