docs: @FFDCIgnore(NoSuchMethodException.class)
      protected void setConnectionManager(ConnectionManager cm) {
  
          if (cm == null) {
              IllegalArgumentException e = new IllegalArgumentException("setConnectionManager: illegal argument exception. ConnectionManager is null.");
              Tr.error(tc, "ILLEGAL_ARGUMENT_EXCEPTION_J2CA0080", "setConnectionManager", e);
              throw e;
          }
  
          qmidenabled = !(mc instanceof WSManagedConnection);
          if (qmidenabled) {
              Class<? extends Object> mcImplClass = ((Object) mc).getClass();
              Integer recoveryToken = null;
              try {
                  Method m = mcImplClass.getMethod("getQmid", (Class<?>[]) null);
                  String qmid = (String) m.invoke((Object) mc, (Object[]) null);
                  recoveryToken = cm.getQMIDRecoveryToken(qmid, pm);
              } catch (NoSuchMethodException nsme) {
                  qmidenabled = false;
              } catch (InvocationTargetException ite) {
                  qmidenabled = false;
              } catch (IllegalAccessException e) {
                  qmidenabled = false;
              } catch (IllegalArgumentException e) {
                  qmidenabled = false;
              }
              if (recoveryToken == null) {
                  this.recoveryToken = cm.getRecoveryToken();
              } else {
                  this.recoveryToken = recoveryToken.intValue();
              }
          } else {
              recoveryToken = cm.getRecoveryToken();
          }
  
          this.cm = cm;
  
      }