Passing client information to a database
Use a WAS API or trace function, you can pass unique client information on every connection that originates from the same data source.
Overview
Some databases, such as DB2, support a data source custom property that triggers your database servers to extract client information from WebSphere Application Server connections. (Consult the database documentation to see whether your product supports this capability and which property the product requires.) Be aware, however, that these properties introduce a very limited functionality in Application Server. Consequently, an appserver connection manager incurs the following risky behaviors, which can result in the transfer of wrong client information to the database.
- The connection manager cannot change client information on the data source, or the connections obtained from that data source, dynamically.
- The connection manager must set the same client information on all connections that are obtained from that data source. For example, if you set ApplicationName as part of the data source clientInformation property, all connections from that data source have the same application name.
Application Server offers two methods of passing client information that provide the necessary connection management flexibility. Using either method, you can set client information on some connections and not others, as well as set different client information on different database connections from the same data source.
Procedure
- Use the IBM proprietary setClientInformation(Properties) API. The API is defined on the WSConnection class, which is part of the com.ibm.websphere.rsadapter package.
- Cast the connection objects in your applications to com.ibm.websphere.rsadapter.WSConnection before calling the API.
- Optionally, set a properties object for adding new client information on a connection if and when new information is introduced by the backend database:
public void setClientInformation (Properties props)throws SQLException;
- You can also activate the function implicitly (that is, within Application Server) by using the WAS.clientinfo trace string. Enable this trace dynamically, from the console, just as you activate any other trace. For more information about passing client information implicitly, see Implicitly set client information.
Results
Example
See Example: Setting client information with the setClientInformation(Properties) API.
Example: Setting client information with the setClientInformation(Properties) API
Implicitly set client information
Setting client information traces with the console