2017-03-21 2 views
1

Lassen Sie uns sagen, ein Stück Code nahm eine Verbindung aus dem Pool und gab sie nicht zurück zum Pool.Websphere liberty force Verbindung zurück zum Pool

Ich möchte wissen, ob es eine Einstellung in Freiheit gibt, die eine Verbindung zurück zum Pool erzwingt, wenn nach einiger Leerlaufzeit keine Aktivität auf der Verbindung identifiziert wird, die 10 Sekunden dauern kann.

Ich verwende Freiheit 8.5.5.9

Antwort

5

Websphere Freiheit keinen Mechanismus haben, die Verbindungen wieder in den Pool nach einer gewissen Zeit in Benutzung zwingen wird.

Diesem Verhalten am nächsten kommt das "Transaktionszeitlimit" (Standardwert 120s), bei dem globale Transaktionen nach Ablauf des Zeitlimits überschritten werden und alle Ressourcen in der globalen Transaktion bereinigt werden.

Standardmäßig bereinigt WebSphere jedoch durchgesickerte Verbindungen immer nach dem Ende des Transaktionsbereichs (sei es eine lokale Transaktionseinschränkung oder eine globale Transaktion).

Zum Beispiel, wenn ich die folgend in einem Servlet:

Connection conn = ds.getConnection(); 
// conn never closed! 

Die Verbindung würde automatisch geschlossen und wieder in den Verbindungspool, wenn die Servlet-Anforderung endet.

Wenn Sie eine ähnliche Sache in einer globalen Transaktion:

tx.begin(); 
Connection conn = ds.getConnection(); 
// conn never closed! 
// tx never ended! 

Die globale Transaktion beendet werden und Ressourcen zurückgerollt werden.

Solange Sie keine lang andauernden Serviceanforderungen haben, sollte das Standardbereinigungsverhalten das von Ihnen gewünschte Verhalten aufweisen. Wenn Sie lange Serviceanfragen haben, sollten Sie in Betracht ziehen, das Transaktionszeitlimit zu optimieren.

+0

Aus Neugier möchte ich wissen, ob es solche Einstellungen in Websphere Application Server gibt, die die Verbindungen zurück zwingen können? –

+2

Ist das oben explizit nicht explizit beantwortet? – covener

+0

@KrishnaChaitanya Wenn Sie "Gibt es eine solche Einstellung im Websphere-Anwendungsserver" angeben, beziehen Sie sich auf WebSphere Liberty oder Traditional? Deine Frage ist als "Freiheit" markiert, also habe ich Liberty angenommen. Wenn Sie sich für WebSphere Traditional interessieren, ist das Verhalten dasselbe wie in Liberty. –

Verwandte Themen