code: @Override
      public void setClientInformationArray(String[] clientInfoArray, WSRdbManagedConnectionImpl mc, boolean explicitCall) throws SQLException {
          final boolean isTraceOn = TraceComponent.isAnyTracingEnabled(); 
  
          if (isTraceOn && tc.isDebugEnabled()) 
              Tr.debug(this, tc, "setClientInformationArray", clientInfoArray, mc, explicitCall);
  
          //Note that the clientInfoArray will never be null
  
          // set the flag here even if the call fails, safer that way.
          if (explicitCall)
              mc.clientInfoExplicitlySet = true;
          else
              mc.clientInfoImplicitlySet = true;
  
          try {
              invokeOnDB2Connection(mc.sqlConn, setDB2ClientUser, "setDB2ClientUser", TYPES_String, clientInfoArray[0]);
              invokeOnDB2Connection(mc.sqlConn, setDB2ClientWorkstation, "setDB2ClientWorkstation", TYPES_String, clientInfoArray[1]);
              invokeOnDB2Connection(mc.sqlConn, setDB2ClientApplicationInformation, "setDB2ClientApplicationInformation", TYPES_String, clientInfoArray[2]);
              invokeOnDB2Connection(mc.sqlConn, setDB2ClientAccountingInformation, "setDB2ClientAccountingInformation", TYPES_String, clientInfoArray[3]);
          } catch (SQLException ex) {
              FFDCFilter.processException(ex, getClass().getName(), "611", this);
              if (isTraceOn && tc.isDebugEnabled()) 
                  Tr.debug(this, tc, "setClientInformationArray - Exception", ex);
              throw AdapterUtil.mapSQLException(ex, mc); 
          }
      }
docs: /*
  order of array is: 0- clientId, 1- workstationid, 2- applicationname, 3- accounInfo