IBM.Daten.DB2.DB2Exception: FEHLER [08001] [IBM] SQL30081N Kommunikationsfehler wurde erkannt.

Meine Anwendung arbeitet mit IBM DB2 über Ihre .net-Anbieter(FP5). Wenn ich Links Anwendung für eine lange Zeit und nach, die versuchen alles aus der Datenbank bekomme ich folgende Fehlermeldung:

---> IBM.Daten.DB2.DB2Exception: FEHLER [08001] [IBM] SQL30081N Kommunikationsfehler wurde erkannt. Kommunikation Protokoll
verwendet: "TCP/IP". Kommunikations-API verwendet wird: "SOCKETS". Lage
wo der Fehler erkannt wurde: "SERVER_IP". Kommunikation Funktion
die Erkennung der Fehler: "recv". Protokoll-spezifische Fehler-code(s):
"10054", "*", "0". SQLSTATE=08001

Benutze ich entity framework zur Kommunikation mit der Datenbank und vor dem Absturz Operationen habe ich immer folgenden code:

using (EEntities db =  EntitiesFactory.CreateEEntity())
                {
                    //..some operations
                }   

wo:

public static EEntities CreateEEntity()
        {
            if (!string.IsNullOrEmpty(GlobalCommon.DBConnectionString))
                return CreateEEntity(GlobalCommon.DBConnectionString);
            return new EEntities();
        }

        public static EEntities CreateEEntity(string connectionString)
        {
            return new EEntities(connectionString);
        }

und:

public static string DBConnectionString
        {
            get
            {
                if (!string.IsNullOrWhiteSpace(_DBConnectionString))
                    return _DBConnectionString;

                string providerConnectionString = "Database=" +
                    Settings.Default.DBDatabase + ";User ID=" +
                    DBUserID + ";Password=" +
                    DBPassword + ";Server=" +
                    DBServer + ";Max Pool Size=150;Min Pool Size=15;Connection Lifetime=80;Pooling=true;";


                //Initialize the EntityConnectionStringBuilder.
                EntityConnectionStringBuilder entityBuilder =
                    new EntityConnectionStringBuilder();

                //Set the provider name.
                entityBuilder.Provider = "IBM.Data.DB2";

                //Set the provider-specific connection string.
                entityBuilder.ProviderConnectionString = providerConnectionString;

                //Set the Metadata location.
                entityBuilder.Metadata = @"res://*/DAL.DBModel.csdl|
                            res://*/DAL.DBModel.ssdl|
                            res://*/DAL.DBModel.msl";
                _DBConnectionString = entityBuilder.ToString();

                return _DBConnectionString;
            }
            set
            {
                _DBConnectionString = value;
            }
        }

so, dass ich denke, mit folgenden Zeilen, die ich immer mache erneut verbinden wenn die Verbindung beendet wurde.

Kann es ein problem mit der Bündelung oder Verbindung Lebensdauer?..

InformationsquelleAutor 0x49D1 | 2012-06-26
Schreibe einen Kommentar