Typically, databases that support storing client information do so by providing a register, a variable, or a column in a system table in which the information is stored. If an application attempts to store information and the database does not provide a mechanism for storing that information, the driver caches the information locally. Similarly, if an application returns client information and the database does not provide a mechanism for storing that information, the driver returns the locally cached value.
For example, let’s assume that the following code returns a pooled connection to a database and sets a client application name for that connection. In this example, the application sets the application name SALES157 using the driver property ApplicationName.
// Get Database Connection
Connection con = DriverManager.getConnection(
"jdbc:datadirect:hive://Server3:10000;DatabaseName=MyDB;
ApplicationName=SALES157","TEST","secret");
...
The application name SALES157 is stored locally by the database. When the connection to the database is closed, the client information on the connection is reset to an empty string.