2017-11-11 7 views
1

Ich verstehe nicht die Anwendung von expirationTimeout Feld in Activemq PooledConnectionFactory. Das Java-Dokument besagt, dass "Verbindungen unabhängig von Lade- oder Leerlaufzeit ablaufen dürfen. Dies ist nützlich, um mit Failover eine erneute Verbindung aus dem Pool zu erzwingen, um den Lastausgleich oder die Verwendung der Master-Wiederherstellung wiederherzustellen". bitte gib mir ein beispiel, ein reales szenario welches expiryTimeout field effect drin hat.Was ist die Bedeutung von Ablauf Timeout in Activemq PooledConnectionFactory?

Antwort

1

Die Option für das Verfalls-Timeout ist ein bisschen eine ältere Funktion des Pools, die in den meisten Anwendungen heutzutage nicht mehr so ​​nützlich ist. Wenn Sie eine Ablaufzeit konfigurieren, wird die Verbindung, die ausgeliehen und später geschlossen wird, vollständig geschlossen und gelöscht, wenn keine anderen aktiven Benutzer der Verbindung vorhanden sind. Andernfalls bleibt sie aktiv, bis alle aktiven Instanzen geschlossen sind , dann wird das zugrunde liegende Connection-Objekt geschlossen.

Dies funktioniert etwas anders als das Leerlauf-Timeout, das für Connection-Instanzen gilt, die ungenutzt im Pool liegen und nach einiger Zeit geschlossen werden, um Ressourcen auf der Broker-Seite freizugeben.

Heute ist es besser, einen Failover-URI in der PooledConnectionFactory mit Broker-Unterstützung für die Neuverteilung von Clusterclients zu verwenden, der die Last im Brokercluster dynamisch neu verteilt, im Gegensatz zum Ablaufzeitlimit, das Connection-Instanzen nur einmal beendet Jeder, der sie gerade aktiv nutzt, hat sie freigegeben, indem er sie angerufen hat.

Verwandte Themen