+

Search Tips   |   Advanced Search

Implicitly set client information


If we track client information in the database, we can choose one of two ways to pass WAS client data on database connections.

We can choose to explicitly pass the information on connections by calling an IBM proprietary API, setClientInformation(Properties), on the com.ibm.websphere.rsadapter.WSConnection object within the application code. The object...

com.ibm.websphere.rsadapter.WSConnection

...is located in...

PLUGINS_ROOT/com.ibm.ws.runtime_6.1.0.jar

In some cases, however, we might want WAS to handle the passing of client information to database connections.

This method of setting the client information is referred to as implicit. We might choose the implicit method because:

The WAS trace facility provides the capability for setting client information implicitly. We can designate one of two special trace groups to enable or disable client information passing: WAS.clientinfo trace or WAS.clientinfopluslogging trace.

 

Possible run-time scenarios

 

WAS.clientinfo trace

By default, the implicit mechanism is disabled. We can turn on this mechanism dynamically, without stopping and starting the application server, or statically by setting the WAS trace group WAS.clientinfo=all=enabled.

The information implicitly collected and set on the database connection consists of the user name, user location and application name.

User name and user location can only be implicitly collected and set on the database connection if we enable Java 2 security.

user name

The name of the user that initiates the application request. This option is collected and passed to the backend database (when supported) only if Java 2 security is enabled. Information here is collected by calling the WSSecurityHelper.getFirstCaller method.

user location

The name of the location of the user, in the form of cell:node:server.

This option is collected and passed to the backend database, when appropriate, only when Java 2 security is enabled. Information here is collected by calling the WSSecurityHelper.getFirstServer method.

application name

The name of the application running. This value is the output of the getApplication method from the Java EEName object. This value is collected regardless of the Global Security setting.

 

WAS.clientinfopluslogging trace

When debugging database problems, such as deadlocks, there is a set of information that is needed to help with the debugging effort. This information is typically obtained by enabling a WebSphere Relational Resource Adapter (RRA) trace, and an EJB container trace. However, there are some cases where timing is an issue when reproducing a given problem. Having too much tracing information can alter the behavior of the application, such as change the timing, and the problem might no longer occur. Because of this situation, a new trace group is provided where only a minimum set of information is collected. This trace group is WAS.clientinfopluslogging. This function sets the client information implicitly on the connection, just like the WAS.clientinfo trace, as well as logs and traces important application activities. Those activities are:





 

Related tasks


Set client information traces with the admin console