public SessionID createSessionRemote() {
        ControlPoint controlPoint = getControlPoint();
        if(controlPoint == null) {
            return createSession();
        } else {
            try {
                RunResult result = controlPoint.beginRequest();
                if (result == RunResult.REJECTED) {
                    throw EjbLogger.ROOT_LOGGER.containerSuspended();
                }
                try {
                    return createSession();
                } finally {
                    controlPoint.requestComplete();
                }
            } catch (EJBComponentUnavailableException | ComponentIsStoppedException e) {
                throw e;
            } catch (Exception e) {
                throw new EJBException(e);
            }
        }
    }
public SessionID createSessionRemote() {
        ControlPoint controlPoint = getControlPoint();
        if(controlPoint == null) {
            return createSession();
        } else {
            try {
                RunResult result = controlPoint.beginRequest();
                if (result == RunResult.REJECTED) {
                    throw EjbLogger.ROOT_LOGGER.containerSuspended();
                }
                try {
                    return createSession();
                } finally {
                    controlPoint.requestComplete();
                }
            } catch (EJBComponentUnavailableException | ComponentIsStoppedException e) {
                throw e;
            } catch (Exception e) {
                throw new EJBException(e);
            }
        }
    }
public SessionID createSessionRemote ( ) { ControlPoint controlPoint = getControlPoint ( ) ; if ( controlPoint == null ) { return createSession ( ) ; } else { try { RunResult result = controlPoint . beginRequest ( ) ; if ( result == RunResult . REJECTED ) { throw EjbLogger . ROOT_LOGGER . containerSuspended ( ) ; } try { return createSession ( ) ; } finally { controlPoint . requestComplete ( ) ; } } catch ( EJBComponentUnavailableException | ComponentIsStoppedException e ) { throw e ; } catch ( Exception e ) { throw new EJBException ( e ) ; } } }
creates a session using the global request controller.

This should only be used by callers that service remote requests (i.e. places that represent a remote entry point into the container)
@return The session id
creates a session using the global request controller .