ejb3/src/main/java/org/jboss/as/ejb3/component/stateful/StatefulSessionComponent.java
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