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?..
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese Fehler in der Regel bedeutet, dass Ihre Verbindung wurde getötet durch das DBA, oder dass es ein Netzwerk-Objekt, das brach die Verbindung von Ihrer Anwendung.
Wenn Sie diese Fehlermeldung erhalten, einfach die Verbindung zu der Datenbank.