code: @Override
      public int doStartTag() throws JspException {
  
          if ((rawDataSource == null) && dataSourceSpecified) {
              throw new JspException(
                      Resources.getMessage("SQL_DATASOURCE_NULL"));
          }
  
          DataSource dataSource = DataSourceUtil.getDataSource(rawDataSource,
                  pageContext);
  
          try {
              conn = dataSource.getConnection();
              origIsolation = conn.getTransactionIsolation();
              if (origIsolation == Connection.TRANSACTION_NONE) {
                  throw new JspTagException(
                          Resources.getMessage("TRANSACTION_NO_SUPPORT"));
              }
              if ((isolation != Connection.TRANSACTION_NONE)
                      && (isolation != origIsolation)) {
                  conn.setTransactionIsolation(isolation);
              }
              conn.setAutoCommit(false);
          } catch (SQLException e) {
              throw new JspTagException(
                      Resources.getMessage("ERROR_GET_CONNECTION",
                              e.toString()), e);
          }
  
          return EVAL_BODY_INCLUDE;
      }
docs: Prepares for execution by setting the initial state, such as
  getting the <code>Connection</code> and preparing it for
  the transaction.