2010-12-02 3 views
4

Wir haben Weblogic in einem 2 verwalteten Server-Cluster eingerichtet. Anforderungen durchlaufen einen Load Balancer, der (angeblich) für Sticky-Sitzungen konfiguriert wurde. Unsere Anforderungen werden jedoch so zwischen den verwalteten Knoten ausgetauscht, als ob keine festen Sitzungen konfiguriert sind.Weblogic Sitzungscookie ändert primären und sekundären Server

Eine Sache, die ich bemerkte, ist, dass der JSESSIONID-Cookie gelegentlich die primären und sekundären Server-Hashes vertauscht. Sie sollten während der gesamten Nutzungsdauer des Benutzers gleich bleiben.

z. wir sehen

Request 1, JSESSIONID=ABCDEFG...!SERVER1HASH!SERVER2HASH 
Request 2, JSESSIONID=ABCDEFG...!SERVER2HASH!SERVER1HASH 
Request 3, JSESSIONID=ABCDEFG...!SERVER1HASH!SERVER2HASH 

Und manchmal sehen wir auch die Hash ist auf „NONE“ eingestellt werden, als ob das Mitglied des Clusters nicht mehr da ist:

Request 4, JSESSIONID=ABCDEFG...!SERVER1HASH!NONE 

Weiß jemand, warum die primäre und sekundäre Server würden so schalten?

+0

Das wäre ein Problem am Load Balancer, wo es die Sitzung nicht als sticky mit Server 1 erkennt und nicht auf Server 2 umschaltet. Gibt es zwischen LB und Weblogic ein Apache oder ein anderes Webserver-Plugin? – JoseK

+0

und überprüfen Sie Ihre Multicast-Adresse ist nicht x.0.0.1 – JoseK

+0

Thanks-- möchte das in eine Antwort einfügen und ich werde es akzeptieren? Es gibt keinen separaten Webserver vor weblogic. Sieht aus wie eine schlechte Load-Balancer-Konfiguration. – BestPractices

Antwort

3

In den Fällen, die wir über in der Vergangenheit gekommen sind, dann ist es ein Problem bei der Load Balancer, wo dies nicht der Fall oder kann nicht die Sitzung als klebriger erkennen mit Server 1 und schaltet es auf Server 2. Dieses Verhalten ist stärker ausgeprägt bei starkem Verkehr.

Bei einer Gelegenheit (circa 2003 auf Weblogic 6.1), war es, weil die Cluster multicast address das Muster x.0.0.1 war

Nach einer sehr langen Untersuchung mit BEA Leuten, das gefunden wurde, die Quelle zu sein das Problem. Dies resultierte in den public BEA docs being updated ausdrücklich

angeben

keine x.0.0.1 Multicast Adresse verwenden, in denen x zwischen 0 und 9, inklusive

0

Wir hatten auch dieses Problem, wenn die JSESSIONID Der Cookie wurde geändert (in weblogic.xml), als eine andere Web-App online ging, aber das Apache Weblogic-Plugin verwendete den Standard-WLCookieName.