Sessions are a key component of the EclipseLink Server application— they provide EclipseLink with access to the database. Sessions enable you to execute queries, and they return persistent objects and other results for client applications.
The EclipseLink session manager enables developers to build a series of sessions that are maintained under a single entity. The session manager is a static utility class that loads EclipseLink sessions from the sessions.xml file, caches the sessions by name in memory, and provides a single access point for EclipseLink sessions.
Loading a Session Manager Instance
import org.eclipse.persistence.tools.sessionmanagement.SessionManager; SessionManager sessionManager = SessionManager.getManager();
EclipseLink uses a class loader to load the session manager. The session manager, in turn, uses that same class loader to load named sessions that are not already initialized in the session manager cache.
Loading a Named Session from Session Manager Using Defaults
/* This example loads a named session (mysession) defined in the sessions.xml file. */ SessionManager manager = SessionManager.getManager(); Server server = (Server) manager.getSession("myserversession");
Loading a Session with an Alternative Class Loader
You can use an alternative class loader to load sessions. This is common when your EclipseLink application integrates with a J2EE container. If the session is not already in the session manager's in-memory cache of sessions, the session manager creates the session and logs in.
/* This example uses the specified ClassLoader to load a session (mysession) defined in the sessions.xml file. */ ClassLoader classLoader = YourApplicationClass.getClassLoader(); SessionManager manager = SessionManager.getManager(); Session session = manager.getSession("mysession", classLoader);