docs: @Override
      public void doConnectionSetup(Connection conn) throws SQLException {
          final boolean isTraceOn = TraceComponent.isAnyTracingEnabled();
  
          if (isTraceOn && tc.isEntryEnabled()) 
              Tr.entry(this, tc, "doConnectionSetup");
  
          //set the currrentSQLid on the connection if its not null
          Statement stmt = null;
          Transaction suspendedTx = null; 
          EmbeddableWebSphereTransactionManager tm = mcf.connectorSvc.getTransactionManager();
  
          try {
              if (currentSQLid != null && !currentSQLid.equals("")) 
              {
                  // If the work below is happening under a global transaction scope, we must suspend the 
                  // global transaction before we perform the action. That is because if we are to perform an
                  // action that implies that a local transaction should on the thread, we need to make sure that
                  // the action will take place under a local transaction scope. 
                  // If we do not do this, others that are aware of the transaction type currently on
                  // the thread (i.e. DB2 T2 jdbc driver) may react in a way that is inconsistent with
                  // the actions and expectations below.
                  UOWCurrent uow = (UOWCurrent) tm;
                  UOWCoordinator coord = uow == null ? null : uow.getUOWCoord();
                  boolean inGlobalTransaction = coord != null && coord.isGlobal();
                  if (inGlobalTransaction) { 
                      try {
                          suspendedTx = tm.suspend();
                      } catch (Throwable t) {
                          throw new SQLException(t);
                      }
                  }
  
                  if (isTraceOn && tc.isDebugEnabled()) 
                  {
                      Tr.debug(this, tc, "Setting currentSQLID : " 
                                         + currentSQLid);
                  }
                  stmt = conn.createStatement();
                  String sql = "set current sqlid = '" + currentSQLid + "'";
                  stmt.executeUpdate(sql);
              }
  
          } finally {
              // close the statement
              try {
                  if (stmt != null)
                      stmt.close();
              } catch (SQLException e) { 
                  com.ibm.ws.ffdc.FFDCFilter.processException(e, getClass().getName(), "231", this);
                  if (isTraceOn && tc.isDebugEnabled()) 
                      Tr.debug(this, tc, "SQLException occured in closing the statement ", e);
              } finally { 
                  // If there is a suspended transaction, resume it.
                  if (suspendedTx != null) {
                      try {
                          tm.resume(suspendedTx);
                      } catch (Throwable t) {
                          throw new SQLException(t);
                      }
                  }
              }
          }
  
          if (isTraceOn && tc.isEntryEnabled())
              Tr.exit(this, tc, "doConnectionSetup");
      }