2011-06-21 47 views
7

Ejecuto Weblogic 10.3 localmente y tengo una pregunta sobre la sessionId que genera. Al imprimir session.getId() veo algo que se parece a esto:!!weblogic jsessionid

BBp9TAACMTglQ2TDFAKR4tpyXg73LZDQJ2PtT9x8htG1tWY122aa 869187422 1308677666322

cuáles son estos signos de exclamación y lo que le sigue, en concreto la segunda pareja: 1308677666322? Parece que a veces el servidor lo agrega y otras no. Creo que Weblogic lo agrega si uso el mismo navegador para iniciar sesión en mi aplicación por segunda vez. ¿Esta cookie está relacionada de alguna manera?

+0

Consulte url-encoding-enabled para obtener más información sobre por qué la identificación de la sesión podría estar codificada en la url - http://docs.oracle.com/cd/E13222_01/wls/docs92/webapp/weblogic_xml.html#wp1062269; nota también puede estar relacionada con la configuración de su infraestructura – BestPractices

Respuesta

20

Buscando en algunas generado aleatoriamente Weblogic JSessionIDs de mi propia aplicación

BrYx4hyPZ4VSP9Wo4eU0OrqmhXMLFONbRHnpLFwRKZ9MSaf6wvYj!-314662473 

y

BrYiFED29itaC4EBpWYM8RKVQQauHkvnTsA2OAKUPZXVc9oUD5fB!-784323496. 

Ahora bien, si se observa la parte del identificador de sesión después de la primera! es decir 314662473 y 784323496.

Este número es el identificador único que Weblogic le da a la JVM en ejecución, es decir, el servidor Weblogic en ejecución.

Si hay más de un servidor en su aplicación, Weblogic sabe cómo enrutar su sesión de vuelta al servidor correcto utilizando este número de JVM de 9 dígitos que es parte de la ID de la sesión.

Cada vez que reinicie el servidor weblogic, generará una nueva ID JVM y la usará mientras se esté ejecutando ese servidor weblogic. Por lo tanto, las visitas a ese servidor tendrán la misma ID al final de la ID de la sesión.

El format of the session ID es:

JSESSIONID = SESSION_ID PRIMARY_JVMID_HASH SECONDARY_JVM_HASH CREATION_TIME

Así que si el primario no está disponible, se va a tratar de saltar por encima de secundaria y si ha habilitado sesión de replicación!!! - entonces los datos de la sesión pueden ser recuperados. Si está ejecutando sólo un único servidor en el local de, a continuación, el formato es simplemente

JSESSIONID = SESSION_ID! PRIMARY_JVMID_HASH! CREATION_TIME

con respecto a algunas veces no aparece, he visto que es por lo general una dependiendo del navegador si el ID de sesión se muestra en la barra de direcciones o no

0

El Servidor WebLogic usa esos ID para mantener la Afinidad de Sesión HTTP en el modelo de Replicación en Memoria del Clúster WebLogic.

Para aquellas aplicaciones web con la replicación de sesión HTTP habilitada (en el descriptor de despliegue weblogic.xml y deshabilitado por defecto) WebLogic mantendrá una copia primaria y una copia de seguridad de su sesión HTTP con el clúster.

Para evitar la sobrecarga del clúster, el complemento proxy de WebLogic (implementado en su capa de nivel web) analiza la cookie de sesión y redirige cada solicitud al WLS que aloja su copia primaria.En caso de falla o sobrecarga del servidor administrado que aloja la sesión principal, el complemento Proxy redirige la solicitud a la instancia donde reside su sesión HTTP.

El complemento Proxy rastreará una lista dinámica de todos los miembros del clúster de WebLogic como pares (ID de JVM/IP: puertos) para redirigir cada solicitud de manera adecuada.

Si su aplicación no habilita la función de replicación en memoria, su cookie solo incluirá la ID de JVM donde vive HTTP Sesion (la copia principal y única).

Cuestiones relacionadas