docs: public void dissociateConnections() throws ResourceException 
      {
          final boolean isTraceOn = TraceComponent.isAnyTracingEnabled();
  
          if (isTraceOn && tc.isEntryEnabled())
              Tr.entry(this, tc, "dissociateConnections"); 
  
          // The first exception to occur while dissociating connection handles.
          ResourceException firstX = null;
  
          // Indicate that we are cleaning up handles, so we know not to send events for
          // operations done in the cleanup. 
          cleaningUpHandles = true;
  
          for (int i = numHandlesInUse; i > 0;)
              try 
              {
                  handlesInUse[--i].dissociate(); 
                  handlesInUse[i] = null; 
              } catch (ResourceException dissociationX) {
                  // No FFDC code needed because the following method does any FFDC that might
                  // be necessary.
                  dissociationX = processHandleDissociationError(i, dissociationX);
                  if (firstX == null)
                      firstX = dissociationX;
              }
  
          numHandlesInUse = 0; 
          cleaningUpHandles = false;
  
          // - need to dissociate the cachedConnection too
          // - we can't dissocate the cachedConnection because DB2 has direct access to our WSJccConnection
          // and the preparedStatement wrapper. They can't follow the normal jdbc model because the sqlj engine
          // was written by Oracle. Therefore, we put the restriction that the BMP must run in a unshareable mode
          // it caches the handle. In this case, we never need to dissociate the cached handle.
          /*
           * try
           * if (cachedConnection != null)
           * ((Reassociateable)cachedConnection).dissociate();
           * }catch (ResourceException dissociationX2)
           * // No FFDC code needed because the following method does any FFDC that might
           * // be necessary.
           * dissociationX2 = processHandleDissociationError2((Reassociateable)cachedConnection, dissociationX2);
           * if (firstX == null) firstX = dissociationX2;
           */
          if (firstX != null) {
              if (isTraceOn && tc.isEntryEnabled())
                  Tr.exit(this, tc, "dissociateConnections", firstX);
              throw firstX;
          }
          if (isTraceOn && tc.isEntryEnabled())
              Tr.exit(this, tc, "dissociateConnections");
      }