code: @Override
      public int getHoldability(Connection conn) throws SQLException {
          int holdability = 0;
  
          if (tc.isDebugEnabled())
              Tr.debug(this, tc, "getHoldability",
                       AdapterUtil.toString(conn));
  
          try {
              if (holdabilitySupported) 
              {
                  holdability = conn.getHoldability();
                  return holdability;
              }
              return 0; // return 0 if holdability is not supported 
          } catch (AbstractMethodError ame) {
              // No FFDC needed
              // This JDBC driver doesn't support Connection.getCursorHoldability().
              if (tc.isDebugEnabled())
                  Tr.debug(this, tc, "getHoldability",
                           "getHoldability is not supported in this JDBC driver. Encounter a java.lang.AbstractMethodError");
              holdabilitySupported = false; // holdability is not supported 
              return 0;
          } catch (SQLException sqle) {
              // No FFDC needed
  
              // Check the error code
              if (sqle.getErrorCode() == 17023) {
                  // SQLException with error code 17023 is the exception 
                  // java.sql.SQLException: Unsupported feature
                  if (tc.isDebugEnabled())
                      Tr.debug(this, tc, "getHoldability",
                               "getHoldability is not supported in this JDBC driver. Encounter a java.sql.SQLException: " + sqle.getMessage());
                  holdabilitySupported = false; // holdability is not supported    
                  return 0;
              } else {
                  // Something wrong with the connection.
                  throw sqle;
              }
          }
      }
docs: <p>This method is used to get the holdability value of the connection object.
  If there is an exception thrown, we need to check whether the exception is due to
  the fact that this getHoldability feature is not supported. If that's the case,
  0 is returned.</p>
  
  <p>For most datasources, when the getHoldability feature is not supported, an
  AbstractMethodError will be thrown.</p>
  
  <p>However, for Oracle datasource, when the getHoldability feature is not supported,
  an SQLException will be thrown with message "Unsupported feature".<p>