Setting a Client Connection Label
You can set a client connection label when you connect to a Vertica database. You can also set or return the client connection label using the SET_CLIENT_LABEL and GET_CLIENT_LABEL functions.
Set the client connection label:
=> SELECT SET_CLIENT_LABEL('py_data_load_application'); SET_CLIENT_LABEL ---------------------------------------------- client_label set to py_data_load_application (1 row)
Return the current client connection label:
=> SELECT GET_CLIENT_LABEL(); GET_CLIENT_LABEL -------------------------- py_data_load_application (1 row)
JDBC
The JDBC Client has a method to set and return the client connection label: getClientInfo() and setClientInfo(). You can use these methods with the SQL Functions GET_CLIENT_LABEL and SET_CLIENT_LABEL.
When you use these two methods, make sure you pass the string value APPLICATIONNAME
to both the setter and getter methods.
Use setClientInfo() to create a client label, and use getClientInfo() to return the client label:
import java.sql.*; import java.util.Properties; public class ClientLabelJDBC { public static void main(String[] args) { Properties myProp = new Properties(); myProp.put("user", "dbadmin"); myProp.put("password", ""); myProp.put("loginTimeout", "35"); Connection conn; try { conn = DriverManager.getConnection( "jdbc:vertica://docc05.verticacorp.com:5433/doccdb", myProp); System.out.println("Connected!"); conn.setClientInfo("APPLICATIONNAME", "JDBC Client - Data Load"); System.out.println("New Conn label: " + conn.getClientInfo("APPLICATIONNAME")); conn.close(); } catch (SQLTransientConnectionException connException) { // There was a potentially temporary network error // Could automatically retry a number of times here, but // instead just report error and exit. System.out.print("Network connection issue: "); System.out.print(connException.getMessage()); System.out.println(" Try again later!"); return; } catch (SQLInvalidAuthorizationSpecException authException) { // Either the username or password was wrong System.out.print("Could not log into database: "); System.out.print(authException.getMessage()); System.out.println(" Check the login credentials and try again."); return; } catch (SQLException e) { // Catch-all for other exceptions e.printStackTrace(); } } }
When you run this method, it prints the following result to the standard output:
Connected! New Conn Label: JDBC Client - Data Load