code: public void cleanup() throws ResourceException {
  
          if (TraceComponent.isAnyTracingEnabled() && TRACE.isEntryEnabled()) {
              SibTr.entry(this, TRACE, "cleanup");
          }
  
          // Invalidate any currently associated connections
          for (Iterator iterator = _connections.iterator(); iterator.hasNext();) {
  
              final SibRaConnection connection = (SibRaConnection) iterator
                      .next();
              connection.invalidate();
  
          }
  
          // If we have a connection exception then we must have hit a problem with getting the
          // physical connection. We need to throw an exception here to force the destroy of this
          // managed connection else it goes in the free pool. I better solution would be to expose
          // an api that we can call on jca, this is work in progress.
          if (_connectionException != null)
          {
            //The string used here is searched for by jca so that it won't log the error
              ResourceException exception = new ResourceException("Skip logging for this failing connection");
              if (TRACE.isEventEnabled()) {
                SibTr.exception(this, TRACE, exception);
              }
              throw exception;
          }
  
          if (TraceComponent.isAnyTracingEnabled() && TRACE.isEntryEnabled()) {
              SibTr.exit(this, TRACE, "cleanup");
          }
  
      }
docs: Cleans up this managed connection prior to returning it to the free pool.
  Invalidates any connection handles still associated with the managed
  connection as, in the normal case, they would all have been dissociated
  before cleanup was started.