The ClientInfo interface in the Connection class is used to manage and retrieve client connection information.
ClientInfo interface
The following table describes the methods of the ClientInfo interface.
| Method | Description |
|---|---|
| getClientInfo() | Returns a list of names and current values of all client information attributes supported by the driver. |
| getClientInfo(String name) | Returns the value of the client information attribute specified by the name parameter. |
| setClientInfo(Properties properties) | Sets the values of the client information attributes of the connection. |
| setClientInfo(String name, String value) | Sets the value of the client information attribute specified by the name parameter to the value specified by the value parameter. |
Note
Starting from OceanBase Connector/J 2.4.15, the general implementation of ClientInfo is compatible with the behaviors of mysql-jdbc and oracle-jdbc. The implementation is based on local storage and does not rely on the server-side capabilities.
OceanBase Connector/J
OceanBase Connector/J allows you to delegate the setClientInfo and getClientInfo calls of a connection to a custom implementation class by using the clientInfoProvider connection attribute. The interface of the custom implementation class is com.oceanbase.jdbc.ClientInfoProvider. This parameter applies to both MySQL and Oracle tenants. OceanBase Connector/J provides a built-in reference implementation DbmsApplicationInfoProvider, which is used to record client information to the GV$OB_PROCESSLIST view. To use this implementation, you must also use the DBMS_APPLICATION_INFO system package. If you do not configure the clientInfoProvider parameter, the default ClientInfo behavior is used.
OceanBase Connector/J is compatible with MySQL Connector/J (mysql-jdbc). The interface definitions are consistent. In a MySQL tenant, if you do not configure the clientInfoProvider parameter, the default behavior is compatible with mysql-jdbc.
Recommendations
- If you want to use the default ClientInfo behavior, do not configure the
clientInfoProviderparameter. If you want to use a custom behavior, configure theclientInfoProviderparameter and implement a custom provider. This parameter applies to both MySQL and Oracle tenants.
If you want to store client information to the server or expect custom behavior during the set/get ClientInfo calls, you can configure the clientInfoProvider parameter in the JDBC URL.
Procedure
Create a custom ClientInfoProvider class that implements the
com.oceanbase.jdbc.ClientInfoProviderinterface and implements the methods of the interface.Method Description initialize(conn, properties) Initializes the current provider by passing in the current connection and related parameters. destroy() Releases the related resources. getClientInfo(conn) Corresponds to the getClientInfo() method of the Connection class. getClientInfo(conn, name) Corresponds to the Connection#getClientInfo(String) method. setClientInfo(conn, properties) Corresponds to the Connection#setClientInfo(Properties) method. setClientInfo(conn, name, value) Corresponds to the Connection#setClientInfo(String, String) method. Specify the full class name of the custom ClientInfoProvider class in the URL in the format of
clientInfoProvider=ClientInfoProvider. This way, the setClientInfo and getClientInfo calls of the connection are delegated to the custom implementation class.
