docs: String getCollectionName(String url) {
          final String SEPARATOR = "\\";
          String cell = null;
          String node = null;
          String serverName = null;
          int index = -1;
  
          if (com.ibm.websphere.ras.TraceComponent.isAnyTracingEnabled() && LoggingUtil.SESSION_LOGGER_WAS.isLoggable(Level.FINE)) {
              LoggingUtil.SESSION_LOGGER_WAS.entering(methodClassName, methodNames[GET_COLLECTION_NAME], "url: " + url);
          }
  
          //lets look to see if we can use the url.  This most likely means the native driver
          if (url != null && url.indexOf("jdbc:db2") != -1) {
              String collection = url;
  
              index = collection.indexOf(";");
              if (index != -1) {
                  collection = collection.substring(0, index);
              }
              index = collection.indexOf("//");
              if (index != -1) {
                  collection = collection.substring(index + 2);
              }
              index = collection.indexOf("/");
              if (index != -1) {
                  collection = collection.substring(index + 1).trim();
                  if (collection.length() != 0) {
                      as400_collection = collection;
                  }
              }
          } else {
              //using toolbox driver
  
              //            try {
              //            	/*
              //                String unformatted = com.ibm.websphere.runtime.ServerName.getFullName();
              //
              //                if (com.ibm.websphere.ras.TraceComponent.isAnyTracingEnabled()&&LoggingUtil.SESSION_LOGGER_WAS.isLoggable(Level.FINE)) {
              //                    LoggingUtil.SESSION_LOGGER_WAS.logp(Level.FINE, methodClassName, methodNames[GET_COLLECTION_NAME], "Full server name retrieved: " + unformatted);
              //                }
              //
              //                //we need everything or nothing, so do no checking here until we're done.
              //                //if we something winds up null, then we're toast anyway, so take the exception
              //                //and use the defaults in the catch below.
              //                index = unformatted.indexOf(SEPARATOR);
              //                cell = unformatted.substring(0, index);
              //                unformatted = unformatted.substring(index + SEPARATOR.length());
              //
              //                index = unformatted.indexOf(SEPARATOR);
              //                node = unformatted.substring(0, index);
              //
              //                serverName = unformatted.substring(index + SEPARATOR.length());
              //
              //                if (com.ibm.websphere.ras.TraceComponent.isAnyTracingEnabled()&&LoggingUtil.SESSION_LOGGER_WAS.isLoggable(Level.FINE)) {
              //                    LoggingUtil.SESSION_LOGGER_WAS.logp(Level.FINE, methodClassName, methodNames[GET_COLLECTION_NAME], "Using cell name: " + cell);
              //                    LoggingUtil.SESSION_LOGGER_WAS.logp(Level.FINE, methodClassName, methodNames[GET_COLLECTION_NAME], "Using node name: " + node);
              //                    LoggingUtil.SESSION_LOGGER_WAS.logp(Level.FINE, methodClassName, methodNames[GET_COLLECTION_NAME], "Using server name: " + serverName);
              //                }
              //
              //                if ((cell == null) || (node == null) || (serverName == null))
              //                    throw new Exception("Unable to retrieve cell, node, or serverName.");
              //
              //                com.ibm.ws.runtime.service.Repository repository = com.ibm.ws.runtime.service.RepositoryFactory.createRepository(System.getProperty("user.install.root") + "/config", cell, node, serverName);
              //
              //                  */
              //                // com.ibm.ws.runtime.service.Repository repository = com.ibm.ws.runtime.service.RepositoryFactory.createRepository(System.getProperty("user.install.root") + "/config", cell, node, serverName);
              //                // PK78174 this instanceof com.ibm.wsspi.runtime.component.WsComponent
              //                Repository repository = (Repository) WsServiceRegistry.getService(this, Repository.class);
              //
              //                if (repository == null)
              //                    throw new Exception("Unable to acquire a reference to the repository.");
              //
              //                String jndiDSName = _smc.getJNDIDataSourceName();
              //                if ((as400_collection = retrieveDBSessionCollection(repository, com.ibm.ws.runtime.service.ConfigRoot.SERVER, jndiDSName)) == null) {
              //                    if ((as400_collection = retrieveDBSessionCollection(repository, com.ibm.ws.runtime.service.ConfigRoot.NODE, jndiDSName)) == null) {
              //                        if ((as400_collection = retrieveDBSessionCollection(repository, com.ibm.ws.runtime.service.ConfigRoot.CELL, jndiDSName)) == null) {
              //                        	if ((as400_collection = retrieveDBSessionCollection(repository, com.ibm.ws.runtime.service.ConfigRoot.CLUSTER, jndiDSName)) == null) {
              //                        		throw new Exception("DataSource not configured with JNDI name: " + jndiDSName);
              //                        	}
              //                        }
              //                    }
              //                }
              //            } catch (Exception ex) {
              //                LoggingUtil.SESSION_LOGGER_WAS.logp(Level.WARNING, methodClassName, methodNames[GET_COLLECTION_NAME], "CommonMessage.exception", ex);
              //            }
          }
  
          if (as400_collection == null) {
              String installLibrary = System.getProperty("was.install.library");
              if (installLibrary == null) {
                  LoggingUtil.SESSION_LOGGER_WAS.logp(Level.WARNING, methodClassName, methodNames[GET_COLLECTION_NAME], "CommonMessage.miscData",
                                                      "was.install.library not set.  Using collection QEJBASSN for session persistance.");
                  as400_collection = "QEJBASSN";
              } else {
                  LoggingUtil.SESSION_LOGGER_WAS.logp(Level.WARNING, methodClassName, methodNames[GET_COLLECTION_NAME], "CommonMessage.miscData",
                                                      "using was.install.library to derive collection name for session persistance.");
                  as400_collection = installLibrary + "SN";
                  if (as400_collection.length() > 10) {
                      as400_collection = as400_collection.substring(0, 10);
                  }
              }
          }
          if (com.ibm.websphere.ras.TraceComponent.isAnyTracingEnabled() && LoggingUtil.SESSION_LOGGER_WAS.isLoggable(Level.FINER)) {
              LoggingUtil.SESSION_LOGGER_WAS.exiting(methodClassName, methodNames[GET_COLLECTION_NAME], "Session Persistance will use the collection: " + as400_collection);
          }
          return as400_collection;
      }