code: public synchronized void shutdownDbmsPools() {
          //force shutdown
          //runnable
          datasourceCleaner.shutdown();
          datasourceCleaner = null;
          //shell for the runnable
          cleanerThread.interrupt();//stop the thread
          cleanerThread = null;
  
          if (dbmsPoolTable == null) {
              return;
          }
          Enumeration<String> allDbmsKeys = dbmsPoolTable.keys();
          while (allDbmsKeys.hasMoreElements()) {
              String dbmsKey = allDbmsKeys.nextElement();
              PooledDataSourceProvider provider = this.getProvider(dbmsKey);
              Hashtable<String, DataSource> dsTable = dbmsPoolTable.get(dbmsKey);
              for (DataSource ds : dsTable.values()) {
                  try {
                      provider.closePooledDataSource(ds);
                  } catch (SQLException e) {
  //          todo          logger.error("Failed to close datasource in dbms poolKey = "
  //                            + dbmsKey);
                  }
              }
              dsTable.clear();
          }
          dbmsPoolTable.clear();
          dbmsPoolTable = null;
      }
docs: force shutdown everything