If you track client information in your database, you can choose one of two ways to pass WebSphere Application Server client data on database connections.
You 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 your application code.
The WebSphere Application Server trace facility provides the capability for setting client information implicitly. You can designate one of two special trace groups to enable or disable client information passing: WAS.clientinfo trace or WAS.clientinfopluslogging trace.
In the case of connection sharing, WebSphere Application Server sets the client information on the first acquired connection handle only. If connection sharing is enabled and two or more getConnection methods are called (resulting in two handles on the same connection), only the first getConnection call causes the client information to pass to the backend database. This scenario does not apply to the explicit process of passing client information; in such cases every setClientinformation method is relayed to the database regardless of connection sharing.
000325_WSRdbManagedConnectionImpl@1234_myAccountingInfo:where 000325 is the thread id and WSRdbManagedConnectionImpl@1234 is the WebSphere connection instance.
When you configure Application Server to pass client information, it does reset client information when a connection is returned to the pool, but only if the WAS.clientinfo and WAS.clientinfopluslogging trace mechanisms are disabled (that is, WAS.clientinfo=all=disabled:WAS.clientinfopluslogging=all=disabled).
In the explicit case, however, the reset operation is done only when the application issues setClientInformation(null) on the WSConnection connection.
By default, the implicit mechanism is disabled. You can turn on this mechanism dynamically, without stopping and starting your application server, or statically by setting the WebSphere Application Server 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.
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 Enterprise JavaBean (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.