code: public int getHoldability(Connection conn) throws SQLException {
          if (tc.isDebugEnabled())
              Tr.debug(this, tc, "getHoldability", AdapterUtil.toString(conn));
  
          int holdability = 0;
  
          try {
              if (holdabilitySupported) 
              {
                  holdability = conn.getHoldability();
                  return holdability;
              }
              return 0; // holdability is not supported
          } catch (AbstractMethodError ame) {
              // No FFDC needed
              // This JDBC driver doesn't support Connection.getCursorHoldability().
  
              //  - Change Tr.info to Tr.debug in getHoldability
              if (tc.isDebugEnabled())
                  Tr.debug(this, tc, "getHoldability",
                           "getHoldability is not supported in this JDBC driver. Encounter a java.lang.AbstractMethodError");
              holdabilitySupported = false; 
              return 0;
          }
          catch (UnsupportedOperationException uex) //temporary fix
          {
              // 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.UnsupportedOperationException");
              holdabilitySupported = false;
              return 0;
          }
          catch (SQLException sqe) {
              if ((isConnectionError(sqe))) {
                  throw sqe; // if this is a stale we need to throw exception here.
              }
  
              // Some DB drivers throw SQLException when the JDBC version is 2.x.
              // Holdability is not supported in 2.0
              if (tc.isDebugEnabled()) {
                  Tr.debug(this, tc, "getHoldability is not supported in this JDBC driver. Encounter a java.sql.SQLException", sqe);
              }
              holdabilitySupported = false;
              return 0;
          }
  
      }
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>