code: synchronized void removeSession(long sessionID) {
  
          LongKeyIntValueHashMap scsMap;
          long                   csid;
          Iterator               i;
  
          scsMap = (LongKeyIntValueHashMap) sessionUseMap.remove(sessionID);
  
          if (scsMap == null) {
              return;
          }
  
          i = scsMap.keySet().iterator();
  
          while (i.hasNext()) {
              csid = i.nextLong();
  
              int usecount = useMap.get(csid, 1) - 1;
  
              if (usecount == 0) {
                  Statement cs = (Statement) csidMap.remove(csid);
  
                  if (cs != null) {
                      int schemaid = cs.getSchemaName().hashCode();
                      LongValueHashMap sqlMap =
                          (LongValueHashMap) schemaMap.get(schemaid);
                      String sql = (String) sqlLookup.remove(csid);
  
                      sqlMap.remove(sql);
                  }
  
                  useMap.remove(csid);
              } else {
                  useMap.put(csid, usecount);
              }
          }
      }
docs: Releases the link betwen the session and all compiled statement objects
  it is linked to. If any such statement is not linked with any other
  session, it is removed from management.
  
  @param sessionID the session identifier