Suministro de información de cliente ampliada al origen de datos con métodos solo de IBM Data Server Driver for JDBC and SQLJ

Un conjunto de métodos sólo de IBM Data Server Driver for JDBC and SQLJ proporciona información adicional sobre el cliente al servidor. Esta información se puede utilizar con fines contables, de gestión de la carga de trabajo o de depuración.

Acerca de esta tarea

Se envía información ampliada sobre el cliente al servidor de bases de datos cuando la aplicación realiza una acción que accede al servidor, tal como ejecutar SQL.

En la IBM Data Server Driver for JDBC and SQLJ versión 4.0 o posterior, los IBM Data Server Driver for JDBC and SQLJ -únicos métodos están obsoletos. En su lugar debe utilizar java.sql.Connection.setClientInfo.

Los IBM Data Server Driver for JDBC and SQLJ -únicos métodos se enumeran en la siguiente tabla.

Tabla 1. Métodos que proporcionan información sobre el cliente al servidor de datos
Método Información proporcionada
setDB2ClientAccountingInformation Información contable
setDB2ClientApplicationInformation Nombre de la aplicación que está trabajando con una conexión
setDB2ClientDebugInfo El atributo de conexión CLIENT DEBUGINFO para el depurador unificado
setDB2ClientProgramId Serie de caracteres especificada por el emisor que le permite identificar qué programa está asociado a una determinada sentencia de SQL. setDB2ClientProgramId no se aplica a los servidores de datos de los sistemas Db2 en Linux®, UNIX y Windows.
setDB2ClientUser Nombre de usuario para una conexión
setDB2ClientWorkstation Nombre de estación de trabajo del cliente para una conexión

Procedimiento

Para definir la información ampliada sobre el cliente, siga estos pasos:

  1. Cree un Connection.
  2. Emitir el objeto java.sql.Connection a un com.ibm.db2.jcc.DB2Connection.
  3. Llame a cualquiera de los métodos que se muestran en la Tabla 1.
  4. Ejecute una sentencia de SQL para hacer que la información se envíe al servidor de datos.

Ejemplo

El código de programa siguiente ejecuta los pasos anteriores para pasar un nombre de usuario y un nombre de estación de trabajo al servidor de datos. Los números que aparecen a la derecha de algunas sentencias corresponden a los pasos descritos anteriormente.
Figura 1. Ejemplo de transferencia de información de cliente ampliada a un servidor de datos
public class ClientInfoTest {
  public static void main(String[] args) {
    String url = "jdbc:db2://sysmvs1.stl.ibm.com:5021/san_jose";
    try {
      Class.forName("com.ibm.db2.jcc.DB2Driver");
      String user = "db2adm"; 
      String password = "db2adm"; 
      Connection conn = DriverManager.getConnection(url,        1 
        user, password); 
      if (conn instanceof DB2Connection) {
        DB2Connection db2conn = (DB2Connection) conn;           2 
        db2conn.setDB2ClientUser("Michael L Thompson");         3 
        db2conn.setDB2ClientWorkstation("sjwkstn1");
        // Execute SQL to force extended client information to be sent
        // to the server
        conn.prepareStatement("SELECT * FROM SYSIBM.SYSDUMMY1"
          + "WHERE 0 = 1").executeQuery();                      4 
      }
    } catch (Throwable e) {
        e.printStackTrace();
      }
  }
}