code: public static Session getInstance(String cacheName, String appName, PageContext pc, Session existing, Log log) throws PageException {
  	if (appName != null && appName.startsWith("no-in-memory-cache-")) existing = null;
  
  	synchronized (token) {
  	    StorageValue sv = _loadData(pc, cacheName, appName, "session", log);
  	    if (sv != null) {
  		long time = sv.lastModified();
  
  		if (existing instanceof StorageScopeCache) {
  		    if (((StorageScopeCache) existing).lastModified() >= time) {
  			return existing;
  		    }
  		}
  		return new SessionCache(pc, cacheName, appName, sv.getValue(), time);
  	    }
  	    else if (existing != null) {
  		return existing;
  	    }
  
  	    SessionCache session = new SessionCache(pc, cacheName, appName, new StructImpl(), 0);
  	    session.store(pc);
  	    return session;
  	}
      }
docs: load an new instance of the client datasource scope
  
  @param cacheName
  @param appName
  @param pc
  @return client datasource scope
  @throws PageException