Información del cliente establecida implícitamente
Si localiza la información del cliente en la base de datos, puede elegir uno de los dos métodos para pasar los datos del cliente de WebSphere Application Server en las conexiones de base de datos.
- Desea mantener la aplicación libre de las API propietarias, o bien,
- La aplicación utiliza persistencia gestionada por contenedor (CMP), en cuyo caso no puede utilizar la API propietaria para establecer la información de cliente en conexiones de base de datos.
El recurso de rastreo de WebSphere Application Server proporciona la posibilidad de establecer implícitamente la información de cliente. Puede designar uno entre dos grupos especiales de rastreo para habilitar o inhabilitar la información del cliente pasando: Rastreo WAS.clientinfo o Rastreo WAS.clientinfopluslogging.
Escenarios posibles de ejecución
- Compartimiento de conexiones
En el caso del compartimiento de conexiones, WebSphere Application Server establece la información de cliente sólo en el primer manejador de conexión adquirido. Si está habilitada la compartición de conexiones y se llama a dos o más los métodos getConnection (que provocan dos manejadores en la misma conexión), sólo la primera llamada getConnection provoca que la información de cliente se pase a la base de datos de programa de fondo. Este caso no se aplica al proceso explícito de pasar información de cliente; en dichos casos cada método setClientInformation confía en la base de datos independientemente del compartimiento de conexiones.
- Coexistencia implícita/explícitaCuando se utilizan los dos procedimientos, explícito e implícito, para confiar en la información de cliente, se combina alguna combinación de los datos establecidos de forma explícita e implícita, pero el valor explícito lleva la prioridad. Por ejemplo, si la aplicación establece la información contable del cliente en "myAccountingInfo" (Mi información contable), la serie accountingInfo (información contable) final que se pasa a la base de datos de programa de fondo se parece al siguiente código de ejemplo:
Donde 000325 es el ID de hebra y WSRdbManagedConnectionImpl@1234 es la instancia de conexión de WebSphere.000325_WSRdbManagedConnectionImpl@1234_myAccountingInfo:
- Restablecimiento de la información del cliente
Cuando configura el servidor de aplicaciones para que pase información de cliente, se restablece la información del cliente cuando la conexión se devuelve a la agrupación, pero sólo si se han inhabilitado los mecanismos de rastreo WAS.clientinfo y WAS.clientinfopluslogging (es decir, WAS.clientinfo=all=disabled:WAS.clientinfopluslogging=all=disabled).
En el caso explícito no obstante, la operación de restablecimiento se realiza únicamente cuando la aplicación emite setClientInformation(null) en la conexión WSConnection.
Rastreo WAS.clientinfo
De forma predeterminada, el mecanismo implícito está inhabilitado. Puede activar este mecanismo de forma dinámica, sin detener e iniciar el servidor de aplicaciones, o bien estática configurando el grupo de rastreo WAS.clientinfo=all=enabled de WebSphere Application Server.
La información recopilada de forma implícita y establecida en la conexión de base de
datos consiste en nombre de usuario, ubicación de usuario y nombre de
aplicación.
La información recopilada de forma implícita y establecida en la conexión de base de
datos consta del ID de hebra, el nombre de usuario, la ubicación de usuario y el nombre de
aplicación.
ID de hebra
Un valor hexadecimal de ocho caracteres que identifica la hebra Java que controla el proceso de la solicitud de aplicación en WebSphere Application Server. Este ID se muestra en la cabecera de rastreo.
- nombre de usuario
- El nombre del usuario que inicia la solicitud de aplicación. Esta opción se recopila y se pasa a la base de datos de fondo (si está soportada). Esta información se recopila llamando al método WSSecurityHelper.getFirstCaller.
- ubicación de usuario
- El nombre de la ubicación del usuario, con el formato célula:nodo:servidor. Esta opción se recopila y se pasa a la base de datos de fondo (si procede). Esta información se recopila llamando al método WSSecurityHelper.getFirstServer.
- nombre de aplicación
- Nombre de la aplicación en ejecución. Este valor es la salida del método getApplication desde el objeto Nombre deJava EE. Este valor se recopila con independencia del valor de Seguridad global.
Rastreo WAS.clientinfopluslogging
Al depurar los problemas de base de datos, como los puntos muertos, hay cierta información que puede ayudarle de en la depuración. Esta información se obtiene normalmente habilitando un rastreo RRA (Relational Resource Adapter) de WebSphere y un rastreo de contenedor de Enterprise JavaBeans (EJB). Sin embargo, hay casos en los que el momento en el tiempo es clave a la hora de reproducir un problema. Disponer de demasiada información de rastreo puede alterar el comportamiento de la aplicación, como un cambio de tiempos, y no volver a darse el problema.
- Series SQL que se ejecutan (como, select userId from tabl1 where id =? para su actualización).
- Inicio, compromiso y retrotracción de transacciones.
- Llamadas de EJB (por ejemplo, Create, Remove, findByPrimaryKey).