<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_252) on Fri Jul 16 09:38:49 UTC 2021 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>ClientSession (EclipseLink 3.0.2, API Reference)</title>
<meta name="date" content="2021-07-16">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="ClientSession (EclipseLink 3.0.2, API Reference)";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage">EclipseLink 3.0.2, API Reference</div>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Class</li>
<li><a href="../../../../../org/eclipse/persistence/sessions/server/ConnectionPolicy.html" title="class in org.eclipse.persistence.sessions.server"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/eclipse/persistence/sessions/server/ClientSession.html" target="_top">Frames</a></li>
<li><a href="ClientSession.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.eclipse.persistence.sessions.server</div>
<h2 title="Class ClientSession" class="title">Class ClientSession</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>org.eclipse.persistence.internal.core.sessions.CoreAbstractSession&lt;<a href="../../../../../org/eclipse/persistence/descriptors/ClassDescriptor.html" title="class in org.eclipse.persistence.descriptors">ClassDescriptor</a>,<a href="../../../../../org/eclipse/persistence/sessions/Login.html" title="interface in org.eclipse.persistence.sessions">Login</a>,org.eclipse.persistence.internal.databaseaccess.Platform,<a href="../../../../../org/eclipse/persistence/sessions/Project.html" title="class in org.eclipse.persistence.sessions">Project</a>,<a href="../../../../../org/eclipse/persistence/sessions/SessionEventManager.html" title="class in org.eclipse.persistence.sessions">SessionEventManager</a>&gt;</li>
<li>
<ul class="inheritance">
<li>org.eclipse.persistence.internal.sessions.AbstractSession</li>
<li>
<ul class="inheritance">
<li>org.eclipse.persistence.sessions.server.ClientSession</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</a>, <a href="../../../../../org/eclipse/persistence/core/sessions/CoreSession.html" title="interface in org.eclipse.persistence.core.sessions">CoreSession</a>&lt;<a href="../../../../../org/eclipse/persistence/descriptors/ClassDescriptor.html" title="class in org.eclipse.persistence.descriptors">ClassDescriptor</a>,<a href="../../../../../org/eclipse/persistence/sessions/Login.html" title="interface in org.eclipse.persistence.sessions">Login</a>,org.eclipse.persistence.internal.databaseaccess.Platform,<a href="../../../../../org/eclipse/persistence/sessions/Project.html" title="class in org.eclipse.persistence.sessions">Project</a>,<a href="../../../../../org/eclipse/persistence/sessions/SessionEventManager.html" title="class in org.eclipse.persistence.sessions">SessionEventManager</a>&gt;, <a href="../../../../../org/eclipse/persistence/sessions/coordination/CommandProcessor.html" title="interface in org.eclipse.persistence.sessions.coordination">CommandProcessor</a>, <a href="../../../../../org/eclipse/persistence/sessions/Session.html" title="interface in org.eclipse.persistence.sessions">Session</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="typeNameLabel">ClientSession</span>
extends org.eclipse.persistence.internal.sessions.AbstractSession</pre>
<div class="block"><b>Purpose</b>: Acts as a client to the server session.
 <p>
 <b>Description</b>: This session is brokered by the server session for use in three-tiered applications.
 It is used to store the context of the connection, i.e. the login to be used for this client.
 This allows each client connected to the server to contain its own user login.
 <p>
 <b>Responsibilities</b>:
    <ul>
    <li> Allow units of work to be acquired and pass them the client login's exclusive connection.
    <li> Forward all requests and queries to its parent server session.
    </ul>
  <p>
 This class is an implementation of <a href="../../../../../org/eclipse/persistence/sessions/Session.html" title="interface in org.eclipse.persistence.sessions"><code>Session</code></a>.
 Please refer to that class for a full API.  The public interface should be used.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/eclipse/persistence/sessions/server/Server.html" title="interface in org.eclipse.persistence.sessions.server"><code>Server</code></a>, 
<a href="../../../../../org/eclipse/persistence/sessions/Session.html" title="interface in org.eclipse.persistence.sessions"><code>Session</code></a>, 
<a href="../../../../../org/eclipse/persistence/sessions/UnitOfWork.html" title="interface in org.eclipse.persistence.sessions"><code>UnitOfWork</code></a>, 
<a href="../../../../../serialized-form.html#org.eclipse.persistence.sessions.server.ClientSession">Serialized Form</a></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!--   -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="../../../../../org/eclipse/persistence/sessions/server/ConnectionPolicy.html" title="class in org.eclipse.persistence.sessions.server">ConnectionPolicy</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/sessions/server/ClientSession.html#connectionPolicy">connectionPolicy</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/sessions/server/ClientSession.html#isActive">isActive</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="../../../../../org/eclipse/persistence/sessions/server/ServerSession.html" title="class in org.eclipse.persistence.sessions.server">ServerSession</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/sessions/server/ClientSession.html#parent">parent</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected org.eclipse.persistence.internal.sequencing.Sequencing</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/sessions/server/ClientSession.html#sequencing">sequencing</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,org.eclipse.persistence.internal.databaseaccess.Accessor&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/sessions/server/ClientSession.html#writeConnections">writeConnections</a></span></code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.org.eclipse.persistence.internal.sessions.AbstractSession">
<!--   -->
</a>
<h3>Fields inherited from class&nbsp;org.eclipse.persistence.internal.sessions.AbstractSession</h3>
<code>accessors, activeCommandThreads, attributeGroups, broker, commandManager, commitManager, defaultReferenceMode, deferredEvents, descriptors, eventManager, exceptionHandler, externalTransactionController, identityMapAccessor, injectionManager, integrityChecker, isConcurrent, isExecutingEvents, isFinalizersEnabled, isInBroker, isInProfile, isLoggingOff, isSynchronized, jpaQueriesProcessed, lastDescriptorAccessed, logSessionString, metadatalistener, multitenantContextProperties, name, numberOfActiveUnitsOfWork, objectsLockedForClone, partitioningPolicy, pessimisticLockTimeoutDefault, pessimisticLockTimeoutUnitDefault, platform, profiler, project, properties, queries, queryBuilder, queryTimeoutDefault, queryTimeoutUnitDefault, serializer, sessionLog, shouldCheckWriteLock, shouldOptimizeResultSetAccess, shouldPropagateChanges, staticMetamodelClasses, tablePerTenantDescriptors, tablePerTenantQueries, tolerateInvalidJPQL, transactionMutex, wasJTSTransactionInternallyStarted</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.org.eclipse.persistence.sessions.coordination.CommandProcessor">
<!--   -->
</a>
<h3>Fields inherited from interface&nbsp;org.eclipse.persistence.sessions.coordination.<a href="../../../../../org/eclipse/persistence/sessions/coordination/CommandProcessor.html" title="interface in org.eclipse.persistence.sessions.coordination">CommandProcessor</a></h3>
<code><a href="../../../../../org/eclipse/persistence/sessions/coordination/CommandProcessor.html#LOG_DEBUG">LOG_DEBUG</a>, <a href="../../../../../org/eclipse/persistence/sessions/coordination/CommandProcessor.html#LOG_ERROR">LOG_ERROR</a>, <a href="../../../../../org/eclipse/persistence/sessions/coordination/CommandProcessor.html#LOG_INFO">LOG_INFO</a>, <a href="../../../../../org/eclipse/persistence/sessions/coordination/CommandProcessor.html#LOG_WARNING">LOG_WARNING</a></code></li>
</ul>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!--   -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier</th>
<th class="colLast" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected </code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/sessions/server/ClientSession.html#ClientSession-org.eclipse.persistence.sessions.Project-">ClientSession</a></span>(<a href="../../../../../org/eclipse/persistence/sessions/Project.html" title="class in org.eclipse.persistence.sessions">Project</a>&nbsp;project)</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/sessions/server/ClientSession.html#ClientSession-org.eclipse.persistence.sessions.server.ServerSession-org.eclipse.persistence.sessions.server.ConnectionPolicy-">ClientSession</a></span>(<a href="../../../../../org/eclipse/persistence/sessions/server/ServerSession.html" title="class in org.eclipse.persistence.sessions.server">ServerSession</a>&nbsp;parent,
             <a href="../../../../../org/eclipse/persistence/sessions/server/ConnectionPolicy.html" title="class in org.eclipse.persistence.sessions.server">ConnectionPolicy</a>&nbsp;connectionPolicy)</code>
<div class="block">INTERNAL:
 Create and return a new client session.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/sessions/server/ClientSession.html#ClientSession-org.eclipse.persistence.sessions.server.ServerSession-org.eclipse.persistence.sessions.server.ConnectionPolicy-java.util.Map-">ClientSession</a></span>(<a href="../../../../../org/eclipse/persistence/sessions/server/ServerSession.html" title="class in org.eclipse.persistence.sessions.server">ServerSession</a>&nbsp;parent,
             <a href="../../../../../org/eclipse/persistence/sessions/server/ConnectionPolicy.html" title="class in org.eclipse.persistence.sessions.server">ConnectionPolicy</a>&nbsp;connectionPolicy,
             <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&nbsp;properties)</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>org.eclipse.persistence.internal.databaseaccess.Accessor</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/sessions/server/ClientSession.html#addWriteConnection-java.lang.String-org.eclipse.persistence.internal.databaseaccess.Accessor-">addWriteConnection</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;poolName,
                  org.eclipse.persistence.internal.databaseaccess.Accessor&nbsp;writeConnection)</code>
<div class="block">INTERNAL:
 Add the connection to the client session.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/sessions/server/ClientSession.html#basicCommitTransaction--">basicCommitTransaction</a></span>()</code>
<div class="block">INTERNAL:
 This is internal to the unit of work and should not be called otherwise.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/sessions/server/ClientSession.html#basicRollbackTransaction--">basicRollbackTransaction</a></span>()</code>
<div class="block">INTERNAL:
 This is internal to the unit of work and should not be called otherwise.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/sessions/server/ClientSession.html#connect-org.eclipse.persistence.internal.databaseaccess.Accessor-">connect</a></span>(org.eclipse.persistence.internal.databaseaccess.Accessor&nbsp;accessor)</code>
<div class="block">INTERNAL:
 Connect the session only (this must be the write connection as the read is shared).</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/sessions/server/ClientSession.html#containsQuery-java.lang.String-">containsQuery</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;queryName)</code>
<div class="block">INTERNAL:
 Was PUBLIC: customer will be redirected to <a href="../../../../../org/eclipse/persistence/sessions/Session.html" title="interface in org.eclipse.persistence.sessions"><code>Session</code></a>.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/sessions/server/ClientSession.html#disconnect-org.eclipse.persistence.internal.databaseaccess.Accessor-">disconnect</a></span>(org.eclipse.persistence.internal.databaseaccess.Accessor&nbsp;accessor)</code>
<div class="block">INTERNAL:
 Disconnect the accessor only (this must be the write connection as the read is shared).</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/sessions/server/ClientSession.html#executeCall-org.eclipse.persistence.queries.Call-org.eclipse.persistence.internal.sessions.AbstractRecord-org.eclipse.persistence.queries.DatabaseQuery-">executeCall</a></span>(<a href="../../../../../org/eclipse/persistence/queries/Call.html" title="interface in org.eclipse.persistence.queries">Call</a>&nbsp;call,
           org.eclipse.persistence.internal.sessions.AbstractRecord&nbsp;translationRow,
           <a href="../../../../../org/eclipse/persistence/queries/DatabaseQuery.html" title="class in org.eclipse.persistence.queries">DatabaseQuery</a>&nbsp;query)</code>
<div class="block">INTERNAL:
 Execute the call on the correct connection accessor.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>org.eclipse.persistence.internal.databaseaccess.Accessor</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/sessions/server/ClientSession.html#getAccessor--">getAccessor</a></span>()</code>
<div class="block">INTERNAL:
 This should normally not be used, getAccessors() should be used to support partitioning.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;org.eclipse.persistence.internal.databaseaccess.Accessor&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/sessions/server/ClientSession.html#getAccessors--">getAccessors</a></span>()</code>
<div class="block">INTERNAL:
 Return the write connections if in a transaction.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/persistence/sessions/coordination/CommandManager.html" title="interface in org.eclipse.persistence.sessions.coordination">CommandManager</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/sessions/server/ClientSession.html#getCommandManager--">getCommandManager</a></span>()</code>
<div class="block">INTERNAL:
 Return the manager that allows this processor to receive or propagate commands from/to TopLink cluster</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/persistence/sessions/server/ConnectionPolicy.html" title="class in org.eclipse.persistence.sessions.server">ConnectionPolicy</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/sessions/server/ClientSession.html#getConnectionPolicy--">getConnectionPolicy</a></span>()</code>
<div class="block">ADVANCED:
 This method will return the connection policy that was used during the
 acquisition of this client session.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>,<a href="../../../../../org/eclipse/persistence/descriptors/ClassDescriptor.html" title="class in org.eclipse.persistence.descriptors">ClassDescriptor</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/sessions/server/ClientSession.html#getDescriptors--">getDescriptors</a></span>()</code>
<div class="block">ADVANCED:
 Return all registered descriptors.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>org.eclipse.persistence.internal.sessions.AbstractSession</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/sessions/server/ClientSession.html#getExecutionSession-org.eclipse.persistence.queries.DatabaseQuery-">getExecutionSession</a></span>(<a href="../../../../../org/eclipse/persistence/queries/DatabaseQuery.html" title="class in org.eclipse.persistence.queries">DatabaseQuery</a>&nbsp;query)</code>
<div class="block">INTERNAL:
 Gets the session which this query will be executed on.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/persistence/sessions/server/ServerSession.html" title="class in org.eclipse.persistence.sessions.server">ServerSession</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/sessions/server/ClientSession.html#getParent--">getParent</a></span>()</code>
<div class="block">INTERNAL:
 Return the parent.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>org.eclipse.persistence.internal.sessions.AbstractSession</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/sessions/server/ClientSession.html#getParentIdentityMapSession-org.eclipse.persistence.descriptors.ClassDescriptor-boolean-boolean-">getParentIdentityMapSession</a></span>(<a href="../../../../../org/eclipse/persistence/descriptors/ClassDescriptor.html" title="class in org.eclipse.persistence.descriptors">ClassDescriptor</a>&nbsp;descriptor,
                           boolean&nbsp;canReturnSelf,
                           boolean&nbsp;terminalOnly)</code>
<div class="block">INTERNAL:
 Returns the appropriate IdentityMap session for this descriptor.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/sessions/server/ClientSession.html#getProperty-java.lang.String-">getProperty</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
<div class="block">Search for and return the user defined property from this client session, if it not found then search for the property
 from parent.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/persistence/queries/DatabaseQuery.html" title="class in org.eclipse.persistence.queries">DatabaseQuery</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/sessions/server/ClientSession.html#getQuery-java.lang.String-">getQuery</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
<div class="block">INTERNAL:
 Was PUBLIC: customer will be redirected to <a href="../../../../../org/eclipse/persistence/sessions/Session.html" title="interface in org.eclipse.persistence.sessions"><code>Session</code></a>.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/persistence/queries/DatabaseQuery.html" title="class in org.eclipse.persistence.queries">DatabaseQuery</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/sessions/server/ClientSession.html#getQuery-java.lang.String-java.util.Vector-">getQuery</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
        <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Vector.html?is-external=true" title="class or interface in java.util">Vector</a>&nbsp;args)</code>
<div class="block">INTERNAL:</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>org.eclipse.persistence.internal.sequencing.Sequencing</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/sessions/server/ClientSession.html#getSequencing--">getSequencing</a></span>()</code>
<div class="block">INTERNAL:
 Return the Sequencing object used by the session.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/persistence/platform/server/ServerPlatform.html" title="interface in org.eclipse.persistence.platform.server">ServerPlatform</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/sessions/server/ClientSession.html#getServerPlatform--">getServerPlatform</a></span>()</code>
<div class="block">INTERNAL:
 Marked internal as this is not customer API but helper methods for
 accessing the server platform from within other sessions types
 (i.e.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/sessions/server/ClientSession.html#getSessionTypeString--">getSessionTypeString</a></span>()</code>
<div class="block">INTERNAL:
 Returns the type of session, its class.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>org.eclipse.persistence.internal.databaseaccess.Accessor</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/sessions/server/ClientSession.html#getWriteConnection--">getWriteConnection</a></span>()</code>
<div class="block">INTERNAL:
 Return the connection to be used for database modification.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,org.eclipse.persistence.internal.databaseaccess.Accessor&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/sessions/server/ClientSession.html#getWriteConnections--">getWriteConnections</a></span>()</code>
<div class="block">INTERNAL:
 Return the map of write connections.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/sessions/server/ClientSession.html#hasWriteConnection--">hasWriteConnection</a></span>()</code>
<div class="block">INTERNAL:
 Return if this session has been connected.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/sessions/server/ClientSession.html#initializeIdentityMapAccessor--">initializeIdentityMapAccessor</a></span>()</code>
<div class="block">INTERNAL:
 Set up the IdentityMapManager.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/sessions/server/ClientSession.html#initializeSequencing--">initializeSequencing</a></span>()</code>
<div class="block">INTERNAL:
 was ADVANCED:
 Creates sequencing object for the session.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/sessions/server/ClientSession.html#isActive--">isActive</a></span>()</code>
<div class="block">INTERNAL:
 Was PUBLIC: customer will be redirected to <a href="../../../../../org/eclipse/persistence/sessions/Session.html" title="interface in org.eclipse.persistence.sessions"><code>Session</code></a>.</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/sessions/server/ClientSession.html#isClientSession--">isClientSession</a></span>()</code>
<div class="block">INTERNAL:
 Return if this session is a client session.</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/sessions/server/ClientSession.html#isConnected--">isConnected</a></span>()</code>
<div class="block">INTERNAL:
 Was PUBLIC: customer will be redirected to <a href="../../../../../org/eclipse/persistence/sessions/Session.html" title="interface in org.eclipse.persistence.sessions"><code>Session</code></a>.</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/sessions/server/ClientSession.html#isExclusiveConnectionRequired--">isExclusiveConnectionRequired</a></span>()</code>
<div class="block">INTERNAL:
 This method is called in case externalConnectionPooling is used.</div>
</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/sessions/server/ClientSession.html#release--">release</a></span>()</code>
<div class="block">INTERNAL:
 Was PUBLIC: customer will be redirected to <a href="../../../../../org/eclipse/persistence/sessions/Session.html" title="interface in org.eclipse.persistence.sessions"><code>Session</code></a>.</div>
</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/sessions/server/ClientSession.html#releaseConnectionAfterCall-org.eclipse.persistence.queries.DatabaseQuery-">releaseConnectionAfterCall</a></span>(<a href="../../../../../org/eclipse/persistence/queries/DatabaseQuery.html" title="class in org.eclipse.persistence.queries">DatabaseQuery</a>&nbsp;query)</code>
<div class="block">INTERNAL:
 Release (if required) connection after call.</div>
</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/sessions/server/ClientSession.html#releaseJTSConnection--">releaseJTSConnection</a></span>()</code>
<div class="block">INTERNAL:
 Called in the end of beforeCompletion of external transaction synchronization listener.</div>
</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/sessions/server/ClientSession.html#releaseReadConnection-org.eclipse.persistence.internal.databaseaccess.Accessor-">releaseReadConnection</a></span>(org.eclipse.persistence.internal.databaseaccess.Accessor&nbsp;connection)</code>
<div class="block">INTERNAL:
 Release the cursor query's connection.</div>
</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/sessions/server/ClientSession.html#releaseWriteConnection--">releaseWriteConnection</a></span>()</code>
<div class="block">INTERNAL:
 This is internal to the unit of work and should not be called otherwise.</div>
</td>
</tr>
<tr id="i35" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/sessions/server/ClientSession.html#retryQuery-org.eclipse.persistence.queries.DatabaseQuery-org.eclipse.persistence.internal.sessions.AbstractRecord-org.eclipse.persistence.exceptions.DatabaseException-int-org.eclipse.persistence.internal.sessions.AbstractSession-">retryQuery</a></span>(<a href="../../../../../org/eclipse/persistence/queries/DatabaseQuery.html" title="class in org.eclipse.persistence.queries">DatabaseQuery</a>&nbsp;query,
          org.eclipse.persistence.internal.sessions.AbstractRecord&nbsp;row,
          <a href="../../../../../org/eclipse/persistence/exceptions/DatabaseException.html" title="class in org.eclipse.persistence.exceptions">DatabaseException</a>&nbsp;databaseException,
          int&nbsp;retryCount,
          org.eclipse.persistence.internal.sessions.AbstractSession&nbsp;executionSession)</code>
<div class="block">INTERNAL:
 A query execution failed due to an invalid query.</div>
</td>
</tr>
<tr id="i36" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/persistence/exceptions/DatabaseException.html" title="class in org.eclipse.persistence.exceptions">DatabaseException</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/sessions/server/ClientSession.html#retryTransaction-org.eclipse.persistence.internal.databaseaccess.Accessor-org.eclipse.persistence.exceptions.DatabaseException-int-org.eclipse.persistence.internal.sessions.AbstractSession-">retryTransaction</a></span>(org.eclipse.persistence.internal.databaseaccess.Accessor&nbsp;writeConnection,
                <a href="../../../../../org/eclipse/persistence/exceptions/DatabaseException.html" title="class in org.eclipse.persistence.exceptions">DatabaseException</a>&nbsp;databaseException,
                int&nbsp;retryCount,
                org.eclipse.persistence.internal.sessions.AbstractSession&nbsp;executionSession)</code>
<div class="block">INTERNAL:
 A begin transaction failed.</div>
</td>
</tr>
<tr id="i37" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/sessions/server/ClientSession.html#setConnectionPolicy-org.eclipse.persistence.sessions.server.ConnectionPolicy-">setConnectionPolicy</a></span>(<a href="../../../../../org/eclipse/persistence/sessions/server/ConnectionPolicy.html" title="class in org.eclipse.persistence.sessions.server">ConnectionPolicy</a>&nbsp;connectionPolicy)</code>
<div class="block">INTERNAL:
 Set the connection policy.</div>
</td>
</tr>
<tr id="i38" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/sessions/server/ClientSession.html#setIsActive-boolean-">setIsActive</a></span>(boolean&nbsp;isActive)</code>
<div class="block">INTERNAL:
 Set if the client session is active (has not been released).</div>
</td>
</tr>
<tr id="i39" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/sessions/server/ClientSession.html#setParent-org.eclipse.persistence.sessions.server.ServerSession-">setParent</a></span>(<a href="../../../../../org/eclipse/persistence/sessions/server/ServerSession.html" title="class in org.eclipse.persistence.sessions.server">ServerSession</a>&nbsp;parent)</code>
<div class="block">INTERNAL:
 Set the parent.</div>
</td>
</tr>
<tr id="i40" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/sessions/server/ClientSession.html#setWriteConnection-org.eclipse.persistence.internal.databaseaccess.Accessor-">setWriteConnection</a></span>(org.eclipse.persistence.internal.databaseaccess.Accessor&nbsp;writeConnection)</code>
<div class="block">INTERNAL:
 Set the connection to be used for database modification.</div>
</td>
</tr>
<tr id="i41" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/sessions/server/ClientSession.html#setWriteConnections-java.util.Map-">setWriteConnections</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,org.eclipse.persistence.internal.databaseaccess.Accessor&gt;&nbsp;writeConnections)</code>
<div class="block">INTERNAL:
 Set the connection to be used for database modification.</div>
</td>
</tr>
<tr id="i42" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/sessions/server/ClientSession.html#shouldPropagateChanges--">shouldPropagateChanges</a></span>()</code>
<div class="block">INTERNAL:
 Return whether changes should be propagated to TopLink cluster.</div>
</td>
</tr>
<tr id="i43" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/sessions/server/ClientSession.html#toString--">toString</a></span>()</code>
<div class="block">INTERNAL:
 Print the connection status with the session.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.eclipse.persistence.internal.sessions.AbstractSession">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;org.eclipse.persistence.internal.sessions.AbstractSession</h3>
<code>acquireHistoricalSession, acquireNonSynchronizedUnitOfWork, acquireNonSynchronizedUnitOfWork, acquireRepeatableWriteUnitOfWork, acquireUnitOfWork, acquireUnitOfWork, addAlias, addJPAQuery, addJPATablePerTenantQuery, addMultitenantContextProperty, addQuery, addQuery, addQuery, addStaticMetamodelClass, addTablePerTenantDescriptor, addTablePerTenantQuery, basicBeginTransaction, basicBeginTransaction, basicExecuteCall, beginExternalTransaction, beginTransaction, buildDefaultQueryBuilder, checkAndRefreshInvalidObject, checkHierarchyForDescriptor, cleanUpInjectionManager, clearDescriptors, clearIntegrityChecker, clearLastDescriptorAccessed, clearProfile, clone, commitExternalTransaction, commitTransaction, compareObjects, compareObjectsDontMatch, config, copy, copy, copyDescriptorNamedQueries, copyDescriptorsFromProject, copyInternal, copyReadOnlyClasses, createCloneQueryValueHolder, createCloneTransformationValueHolder, createInjectionManager, createProtectedInstanceFromCachedData, deferEvent, deleteAllObjects, deleteObject, doesObjectExist, dontLogMessages, endOperationProfile, endOperationProfile, executeDeferredEvents, executeNonSelectingCall, executeNonSelectingSQL, executeQuery, executeQuery, executeQuery, executeQuery, executeQuery, executeQuery, executeQuery, executeQuery, executeQuery, executeQuery, executeQuery, executeQuery, executeQuery, executeQuery, executeQuery, executeQuery, executeSelectingCall, executeSQL, fine, finer, finest, getAccessors, getActiveCommandThreads, getActiveSession, getActiveUnitOfWork, getAliasDescriptors, getAllQueries, getAsOfClause, getAttributeGroups, getBroker, getCacheKeyFromTargetSessionForMerge, getClassDescriptor, getClassDescriptor, getClassDescriptorForAlias, getCommitManager, getDatasourceLogin, getDatasourcePlatform, getDefaultReadOnlyClasses, getDefaultReferenceMode, getDescriptor, getDescriptor, getDescriptorForAlias, getEventManager, getExceptionHandler, getExceptionHandlerClass, getExternalTransactionController, getId, getIdentityMapAccessor, getIdentityMapAccessorInstance, getInjectionManager, getIntegrityChecker, getJPAQueries, getJPATablePerTenantQueries, getLoader, getLog, getLogin, getLogLevel, getLogLevel, getLogSessionString, getMappedSuperclass, getMultitenantContextProperties, getName, getNextQueryId, getNextSequenceNumberValue, getNumberOfActiveUnitsOfWork, getParentIdentityMapSession, getParentIdentityMapSession, getPartitioningPolicy, getPessimisticLockTimeoutDefault, getPessimisticLockTimeoutUnitDefault, getPlatform, getPlatform, getProfiler, getProject, getProperties, getQueries, getQuery, getQuery, getQueryBuilder, getQueryTimeoutDefault, getQueryTimeoutUnitDefault, getRefreshMetadataListener, getRootSession, getSerializer, getSessionForClass, getSessionForName, getSessionLog, getStaticMetamodelClass, getTablePerTenantDescriptors, getTablePerTenantQueries, getTransactionMutex, handleException, handleSevere, hasBroker, hasCommitManager, hasDescriptor, hasEventManager, hasExceptionHandler, hasExternalTransactionController, hasProperties, hasTablePerTenantDescriptors, hasTablePerTenantQueries, incrementProfile, incrementProfile, info, insertObject, internalExecuteQuery, isBroker, isClassReadOnly, isClassReadOnly, isConcurrent, isConsideredInvalid, isDatabaseSession, isDistributedSession, isExclusiveIsolatedClientSession, isFinalizersEnabled, isHistoricalSession, isInBroker, isInProfile, isInTransaction, isIsolatedClientSession, isJPAQueriesProcessed, isLoggingOff, isProtectedSession, isRemoteSession, isRemoteUnitOfWork, isServerSession, isSessionBroker, isSynchronized, isUnitOfWork, keyFromObject, load, load, log, log, log, log, log, log, log, log, logMessage, logMessage, logThrowable, postAcquireConnection, prepareDatabaseQuery, preReleaseConnection, priviledgedExecuteNonSelectingCall, priviledgedExecuteSelectingCall, processCommand, processJPAQueries, processJPAQuery, readAllObjects, readAllObjects, readAllObjects, readAllObjects, readObject, readObject, readObject, readObject, readObject, refreshAndLockObject, refreshAndLockObject, refreshObject, registerFinalizer, releaseUnitOfWork, removeProperty, removeQuery, removeQuery, retrieveCacheKey, rollbackExternalTransaction, rollbackTransaction, setAccessor, setBroker, setCommandManager, setCommitManager, setDatasourceLogin, setDefaultReferenceMode, setEventManager, setExceptionHandler, setExternalTransactionController, setInjectionManager, setIntegrityChecker, setIsConcurrent, setIsFinalizersEnabled, setIsInBroker, setIsInProfile, setJPAQueriesProcessed, setLog, setLoggingOff, setLogin, setLogin, setLogLevel, setName, setNumberOfActiveUnitsOfWork, setPartitioningPolicy, setPessimisticLockTimeoutDefault, setPessimisticLockTimeoutUnitDefault, setProfiler, setProject, setProperties, setProperty, setQueries, setQueryBuilder, setQueryTimeoutDefault, setQueryTimeoutUnitDefault, setRefreshMetadataListener, setSerializer, setSessionLog, setShouldOptimizeResultSetAccess, setShouldPropagateChanges, setSynchronized, setTolerateInvalidJPQL, setTransactionMutex, setWasJTSTransactionInternallyStarted, severe, shouldDisplayData, shouldLog, shouldLogMessages, shouldLogMessages, shouldOptimizeResultSetAccess, shouldTolerateInvalidJPQL, startOperationProfile, startOperationProfile, unwrapObject, updateObject, updateProfile, updateTablePerTenantDescriptors, validateCache, validateQuery, verifyDelete, warning, wasJTSTransactionInternallyStarted, wrapObject, writeAllObjectsWithChangeSet, writeObject, writesCompleted</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!--   -->
</a>
<h3>Field Detail</h3>
<a name="parent">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>parent</h4>
<pre>protected&nbsp;<a href="../../../../../org/eclipse/persistence/sessions/server/ServerSession.html" title="class in org.eclipse.persistence.sessions.server">ServerSession</a> parent</pre>
</li>
</ul>
<a name="connectionPolicy">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>connectionPolicy</h4>
<pre>protected&nbsp;<a href="../../../../../org/eclipse/persistence/sessions/server/ConnectionPolicy.html" title="class in org.eclipse.persistence.sessions.server">ConnectionPolicy</a> connectionPolicy</pre>
</li>
</ul>
<a name="writeConnections">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>writeConnections</h4>
<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,org.eclipse.persistence.internal.databaseaccess.Accessor&gt; writeConnections</pre>
</li>
</ul>
<a name="isActive">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isActive</h4>
<pre>protected&nbsp;boolean isActive</pre>
</li>
</ul>
<a name="sequencing">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>sequencing</h4>
<pre>protected&nbsp;org.eclipse.persistence.internal.sequencing.Sequencing sequencing</pre>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!--   -->
</a>
<h3>Constructor Detail</h3>
<a name="ClientSession-org.eclipse.persistence.sessions.server.ServerSession-org.eclipse.persistence.sessions.server.ConnectionPolicy-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ClientSession</h4>
<pre>public&nbsp;ClientSession(<a href="../../../../../org/eclipse/persistence/sessions/server/ServerSession.html" title="class in org.eclipse.persistence.sessions.server">ServerSession</a>&nbsp;parent,
                     <a href="../../../../../org/eclipse/persistence/sessions/server/ConnectionPolicy.html" title="class in org.eclipse.persistence.sessions.server">ConnectionPolicy</a>&nbsp;connectionPolicy)</pre>
<div class="block">INTERNAL:
 Create and return a new client session.</div>
</li>
</ul>
<a name="ClientSession-org.eclipse.persistence.sessions.server.ServerSession-org.eclipse.persistence.sessions.server.ConnectionPolicy-java.util.Map-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ClientSession</h4>
<pre>public&nbsp;ClientSession(<a href="../../../../../org/eclipse/persistence/sessions/server/ServerSession.html" title="class in org.eclipse.persistence.sessions.server">ServerSession</a>&nbsp;parent,
                     <a href="../../../../../org/eclipse/persistence/sessions/server/ConnectionPolicy.html" title="class in org.eclipse.persistence.sessions.server">ConnectionPolicy</a>&nbsp;connectionPolicy,
                     <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&nbsp;properties)</pre>
</li>
</ul>
<a name="ClientSession-org.eclipse.persistence.sessions.Project-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>ClientSession</h4>
<pre>protected&nbsp;ClientSession(<a href="../../../../../org/eclipse/persistence/sessions/Project.html" title="class in org.eclipse.persistence.sessions">Project</a>&nbsp;project)</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="releaseJTSConnection--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>releaseJTSConnection</h4>
<pre>public&nbsp;void&nbsp;releaseJTSConnection()</pre>
<div class="block">INTERNAL:
 Called in the end of beforeCompletion of external transaction synchronization listener.
 Close the managed sql connection corresponding to the external transaction
 and releases accessor.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>releaseJTSConnection</code>&nbsp;in class&nbsp;<code>org.eclipse.persistence.internal.sessions.AbstractSession</code></dd>
</dl>
</li>
</ul>
<a name="basicCommitTransaction--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>basicCommitTransaction</h4>
<pre>public&nbsp;void&nbsp;basicCommitTransaction()</pre>
<div class="block">INTERNAL:
 This is internal to the unit of work and should not be called otherwise.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>basicCommitTransaction</code>&nbsp;in class&nbsp;<code>org.eclipse.persistence.internal.sessions.AbstractSession</code></dd>
</dl>
</li>
</ul>
<a name="basicRollbackTransaction--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>basicRollbackTransaction</h4>
<pre>public&nbsp;void&nbsp;basicRollbackTransaction()</pre>
<div class="block">INTERNAL:
 This is internal to the unit of work and should not be called otherwise.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>basicRollbackTransaction</code>&nbsp;in class&nbsp;<code>org.eclipse.persistence.internal.sessions.AbstractSession</code></dd>
</dl>
</li>
</ul>
<a name="connect-org.eclipse.persistence.internal.databaseaccess.Accessor-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>connect</h4>
<pre>public&nbsp;void&nbsp;connect(org.eclipse.persistence.internal.databaseaccess.Accessor&nbsp;accessor)
             throws <a href="../../../../../org/eclipse/persistence/exceptions/DatabaseException.html" title="class in org.eclipse.persistence.exceptions">DatabaseException</a></pre>
<div class="block">INTERNAL:
 Connect the session only (this must be the write connection as the read is shared).</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/eclipse/persistence/exceptions/DatabaseException.html" title="class in org.eclipse.persistence.exceptions">DatabaseException</a></code></dd>
</dl>
</li>
</ul>
<a name="containsQuery-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>containsQuery</h4>
<pre>public&nbsp;boolean&nbsp;containsQuery(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;queryName)</pre>
<div class="block">INTERNAL:
 Was PUBLIC: customer will be redirected to <a href="../../../../../org/eclipse/persistence/sessions/Session.html" title="interface in org.eclipse.persistence.sessions"><code>Session</code></a>.
 Return true if the pre-defined query is defined on the session.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/eclipse/persistence/sessions/Session.html#containsQuery-java.lang.String-">containsQuery</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/eclipse/persistence/sessions/Session.html" title="interface in org.eclipse.persistence.sessions">Session</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>containsQuery</code>&nbsp;in class&nbsp;<code>org.eclipse.persistence.internal.sessions.AbstractSession</code></dd>
</dl>
</li>
</ul>
<a name="disconnect-org.eclipse.persistence.internal.databaseaccess.Accessor-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>disconnect</h4>
<pre>public&nbsp;void&nbsp;disconnect(org.eclipse.persistence.internal.databaseaccess.Accessor&nbsp;accessor)
                throws <a href="../../../../../org/eclipse/persistence/exceptions/DatabaseException.html" title="class in org.eclipse.persistence.exceptions">DatabaseException</a></pre>
<div class="block">INTERNAL:
 Disconnect the accessor only (this must be the write connection as the read is shared).</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/eclipse/persistence/exceptions/DatabaseException.html" title="class in org.eclipse.persistence.exceptions">DatabaseException</a></code></dd>
</dl>
</li>
</ul>
<a name="executeCall-org.eclipse.persistence.queries.Call-org.eclipse.persistence.internal.sessions.AbstractRecord-org.eclipse.persistence.queries.DatabaseQuery-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>executeCall</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;executeCall(<a href="../../../../../org/eclipse/persistence/queries/Call.html" title="interface in org.eclipse.persistence.queries">Call</a>&nbsp;call,
                          org.eclipse.persistence.internal.sessions.AbstractRecord&nbsp;translationRow,
                          <a href="../../../../../org/eclipse/persistence/queries/DatabaseQuery.html" title="class in org.eclipse.persistence.queries">DatabaseQuery</a>&nbsp;query)
                   throws <a href="../../../../../org/eclipse/persistence/exceptions/DatabaseException.html" title="class in org.eclipse.persistence.exceptions">DatabaseException</a></pre>
<div class="block">INTERNAL:
 Execute the call on the correct connection accessor.
 Outside of a transaction the server session's read connection pool is used.
 In side a transaction, or for exclusive sessions the write connection is used.
 For partitioning there may be multiple write connections.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>executeCall</code>&nbsp;in class&nbsp;<code>org.eclipse.persistence.internal.sessions.AbstractSession</code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/eclipse/persistence/exceptions/DatabaseException.html" title="class in org.eclipse.persistence.exceptions">DatabaseException</a></code></dd>
</dl>
</li>
</ul>
<a name="releaseConnectionAfterCall-org.eclipse.persistence.queries.DatabaseQuery-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>releaseConnectionAfterCall</h4>
<pre>public&nbsp;void&nbsp;releaseConnectionAfterCall(<a href="../../../../../org/eclipse/persistence/queries/DatabaseQuery.html" title="class in org.eclipse.persistence.queries">DatabaseQuery</a>&nbsp;query)</pre>
<div class="block">INTERNAL:
 Release (if required) connection after call.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>releaseConnectionAfterCall</code>&nbsp;in class&nbsp;<code>org.eclipse.persistence.internal.sessions.AbstractSession</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>query</code> - </dd>
</dl>
</li>
</ul>
<a name="getAccessors--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAccessors</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;org.eclipse.persistence.internal.databaseaccess.Accessor&gt;&nbsp;getAccessors()</pre>
<div class="block">INTERNAL:
 Return the write connections if in a transaction.
 These may be empty/null until the first query has been executed inside the transaction.
 This should only be called within a transaction.
 If outside of a transaction it will return null (unless using an exclusive connection).</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>getAccessors</code>&nbsp;in class&nbsp;<code>org.eclipse.persistence.internal.sessions.AbstractSession</code></dd>
</dl>
</li>
</ul>
<a name="getAccessor--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAccessor</h4>
<pre>public&nbsp;org.eclipse.persistence.internal.databaseaccess.Accessor&nbsp;getAccessor()</pre>
<div class="block">INTERNAL:
 This should normally not be used, getAccessors() should be used to support partitioning.
 To maintain backward compatibility, and to support certain cases that required a default accessor,
 if inside a transaction, then a default connection will be allocated.
 This is required for sequencing, and JPA connection unwrapping, and ordt mappings.
 Outside of a transaction, to maintain backward compatibility the server session's accessor will be returned.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>getAccessor</code>&nbsp;in class&nbsp;<code>org.eclipse.persistence.internal.sessions.AbstractSession</code></dd>
</dl>
</li>
</ul>
<a name="getConnectionPolicy--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getConnectionPolicy</h4>
<pre>public&nbsp;<a href="../../../../../org/eclipse/persistence/sessions/server/ConnectionPolicy.html" title="class in org.eclipse.persistence.sessions.server">ConnectionPolicy</a>&nbsp;getConnectionPolicy()</pre>
<div class="block">ADVANCED:
 This method will return the connection policy that was used during the
 acquisition of this client session.  The properties within the ConnectionPolicy
 may be used when acquiring an exclusive connection for an IsolatedSession.</div>
</li>
</ul>
<a name="getDescriptors--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDescriptors</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>,<a href="../../../../../org/eclipse/persistence/descriptors/ClassDescriptor.html" title="class in org.eclipse.persistence.descriptors">ClassDescriptor</a>&gt;&nbsp;getDescriptors()</pre>
<div class="block">ADVANCED:
 Return all registered descriptors.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/eclipse/persistence/core/sessions/CoreSession.html#getDescriptors--">getDescriptors</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/eclipse/persistence/core/sessions/CoreSession.html" title="interface in org.eclipse.persistence.core.sessions">CoreSession</a>&lt;<a href="../../../../../org/eclipse/persistence/descriptors/ClassDescriptor.html" title="class in org.eclipse.persistence.descriptors">ClassDescriptor</a>,<a href="../../../../../org/eclipse/persistence/sessions/Login.html" title="interface in org.eclipse.persistence.sessions">Login</a>,org.eclipse.persistence.internal.databaseaccess.Platform,<a href="../../../../../org/eclipse/persistence/sessions/Project.html" title="class in org.eclipse.persistence.sessions">Project</a>,<a href="../../../../../org/eclipse/persistence/sessions/SessionEventManager.html" title="class in org.eclipse.persistence.sessions">SessionEventManager</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/eclipse/persistence/sessions/Session.html#getDescriptors--">getDescriptors</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/eclipse/persistence/sessions/Session.html" title="interface in org.eclipse.persistence.sessions">Session</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>getDescriptors</code>&nbsp;in class&nbsp;<code>org.eclipse.persistence.internal.sessions.AbstractSession</code></dd>
</dl>
</li>
</ul>
<a name="getParentIdentityMapSession-org.eclipse.persistence.descriptors.ClassDescriptor-boolean-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParentIdentityMapSession</h4>
<pre>public&nbsp;org.eclipse.persistence.internal.sessions.AbstractSession&nbsp;getParentIdentityMapSession(<a href="../../../../../org/eclipse/persistence/descriptors/ClassDescriptor.html" title="class in org.eclipse.persistence.descriptors">ClassDescriptor</a>&nbsp;descriptor,
                                                                                             boolean&nbsp;canReturnSelf,
                                                                                             boolean&nbsp;terminalOnly)</pre>
<div class="block">INTERNAL:
 Returns the appropriate IdentityMap session for this descriptor.  Sessions can be
 chained and each session can have its own Cache/IdentityMap.  Entities can be stored
 at different levels based on Cache Isolation.  This method will return the correct Session
 for a particular Entity class based on the Isolation Level and the attributes provided.
 <p></div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>getParentIdentityMapSession</code>&nbsp;in class&nbsp;<code>org.eclipse.persistence.internal.sessions.AbstractSession</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>canReturnSelf</code> - true when method calls itself.  If the path
 starting at <code>this</code> is acceptable.  Sometimes true if want to
 move to the first valid session, i.e. executing on ClientSession when really
 should be on ServerSession.</dd>
<dd><code>terminalOnly</code> - return the last session in the chain where the Enitity is stored.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Session with the required IdentityMap</dd>
</dl>
</li>
</ul>
<a name="getProperty-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getProperty</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;getProperty(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
<div class="block">Search for and return the user defined property from this client session, if it not found then search for the property
 from parent.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/eclipse/persistence/sessions/Session.html#getProperty-java.lang.String-">getProperty</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/eclipse/persistence/sessions/Session.html" title="interface in org.eclipse.persistence.sessions">Session</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>getProperty</code>&nbsp;in class&nbsp;<code>org.eclipse.persistence.internal.sessions.AbstractSession</code></dd>
</dl>
</li>
</ul>
<a name="getExecutionSession-org.eclipse.persistence.queries.DatabaseQuery-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getExecutionSession</h4>
<pre>public&nbsp;org.eclipse.persistence.internal.sessions.AbstractSession&nbsp;getExecutionSession(<a href="../../../../../org/eclipse/persistence/queries/DatabaseQuery.html" title="class in org.eclipse.persistence.queries">DatabaseQuery</a>&nbsp;query)</pre>
<div class="block">INTERNAL:
 Gets the session which this query will be executed on.
 Generally will be called immediately before the call is translated,
 which is immediately before session.executeCall.
 <p>
 Since the execution session also knows the correct datasource platform
 to execute on, it is often used in the mappings where the platform is
 needed for type conversion, or where calls are translated.
 <p>
 Is also the session with the accessor.  Will return a ClientSession if
 it is in transaction and has a write connection.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>getExecutionSession</code>&nbsp;in class&nbsp;<code>org.eclipse.persistence.internal.sessions.AbstractSession</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>query</code> - may store session name or reference class for brokers case</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a session with a live accessor</dd>
</dl>
</li>
</ul>
<a name="getParent--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParent</h4>
<pre>public&nbsp;<a href="../../../../../org/eclipse/persistence/sessions/server/ServerSession.html" title="class in org.eclipse.persistence.sessions.server">ServerSession</a>&nbsp;getParent()</pre>
<div class="block">INTERNAL:
 Return the parent.
 This is a server session.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>getParent</code>&nbsp;in class&nbsp;<code>org.eclipse.persistence.internal.sessions.AbstractSession</code></dd>
</dl>
</li>
</ul>
<a name="getQuery-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getQuery</h4>
<pre>public&nbsp;<a href="../../../../../org/eclipse/persistence/queries/DatabaseQuery.html" title="class in org.eclipse.persistence.queries">DatabaseQuery</a>&nbsp;getQuery(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
<div class="block">INTERNAL:
 Was PUBLIC: customer will be redirected to <a href="../../../../../org/eclipse/persistence/sessions/Session.html" title="interface in org.eclipse.persistence.sessions"><code>Session</code></a>.
 Return the query from the session pre-defined queries with the given name.
 This allows for common queries to be pre-defined, reused and executed by name.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/eclipse/persistence/sessions/Session.html#getQuery-java.lang.String-">getQuery</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/eclipse/persistence/sessions/Session.html" title="interface in org.eclipse.persistence.sessions">Session</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>getQuery</code>&nbsp;in class&nbsp;<code>org.eclipse.persistence.internal.sessions.AbstractSession</code></dd>
</dl>
</li>
</ul>
<a name="getQuery-java.lang.String-java.util.Vector-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getQuery</h4>
<pre>public&nbsp;<a href="../../../../../org/eclipse/persistence/queries/DatabaseQuery.html" title="class in org.eclipse.persistence.queries">DatabaseQuery</a>&nbsp;getQuery(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
                              <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Vector.html?is-external=true" title="class or interface in java.util">Vector</a>&nbsp;args)</pre>
<div class="block">INTERNAL:</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>getQuery</code>&nbsp;in class&nbsp;<code>org.eclipse.persistence.internal.sessions.AbstractSession</code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><code>AbstractSession.getQuery(String)</code></dd>
</dl>
</li>
</ul>
<a name="initializeSequencing--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>initializeSequencing</h4>
<pre>public&nbsp;void&nbsp;initializeSequencing()</pre>
<div class="block">INTERNAL:
 was ADVANCED:
 Creates sequencing object for the session.
 Typically there is no need for the user to call this method -
 it is called from the constructor.</div>
</li>
</ul>
<a name="getSequencing--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSequencing</h4>
<pre>public&nbsp;org.eclipse.persistence.internal.sequencing.Sequencing&nbsp;getSequencing()</pre>
<div class="block">INTERNAL:
 Return the Sequencing object used by the session.
 Lazy init sequencing to defer from client session creation to improve creation performance.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>getSequencing</code>&nbsp;in class&nbsp;<code>org.eclipse.persistence.internal.sessions.AbstractSession</code></dd>
</dl>
</li>
</ul>
<a name="getServerPlatform--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getServerPlatform</h4>
<pre>public&nbsp;<a href="../../../../../org/eclipse/persistence/platform/server/ServerPlatform.html" title="interface in org.eclipse.persistence.platform.server">ServerPlatform</a>&nbsp;getServerPlatform()</pre>
<div class="block">INTERNAL:
 Marked internal as this is not customer API but helper methods for
 accessing the server platform from within other sessions types
 (i.e. not DatabaseSession)</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/eclipse/persistence/sessions/Session.html#getServerPlatform--">getServerPlatform</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/eclipse/persistence/sessions/Session.html" title="interface in org.eclipse.persistence.sessions">Session</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>getServerPlatform</code>&nbsp;in class&nbsp;<code>org.eclipse.persistence.internal.sessions.AbstractSession</code></dd>
</dl>
</li>
</ul>
<a name="getSessionTypeString--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSessionTypeString</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getSessionTypeString()</pre>
<div class="block">INTERNAL:
 Returns the type of session, its class.
 <p>
 Override to hide from the user when they are using an internal subclass
 of a known class.
 <p>
 A user does not need to know that their UnitOfWork is a
 non-deferred UnitOfWork, or that their ClientSession is an
 IsolatedClientSession.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>getSessionTypeString</code>&nbsp;in class&nbsp;<code>org.eclipse.persistence.internal.sessions.AbstractSession</code></dd>
</dl>
</li>
</ul>
<a name="getWriteConnections--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getWriteConnections</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,org.eclipse.persistence.internal.databaseaccess.Accessor&gt;&nbsp;getWriteConnections()</pre>
<div class="block">INTERNAL:
 Return the map of write connections.
 Multiple connections can be used for data partitioning and replication.
 The connections are keyed by connection pool name.</div>
</li>
</ul>
<a name="getWriteConnection--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getWriteConnection</h4>
<pre>public&nbsp;org.eclipse.persistence.internal.databaseaccess.Accessor&nbsp;getWriteConnection()</pre>
<div class="block">INTERNAL:
 Return the connection to be used for database modification.</div>
</li>
</ul>
<a name="hasWriteConnection--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hasWriteConnection</h4>
<pre>public&nbsp;boolean&nbsp;hasWriteConnection()</pre>
<div class="block">INTERNAL:
 Return if this session has been connected.</div>
</li>
</ul>
<a name="initializeIdentityMapAccessor--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>initializeIdentityMapAccessor</h4>
<pre>public&nbsp;void&nbsp;initializeIdentityMapAccessor()</pre>
<div class="block">INTERNAL:
 Set up the IdentityMapManager.  This method allows subclasses of Session to override
 the default IdentityMapManager functionality.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>initializeIdentityMapAccessor</code>&nbsp;in class&nbsp;<code>org.eclipse.persistence.internal.sessions.AbstractSession</code></dd>
</dl>
</li>
</ul>
<a name="isActive--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isActive</h4>
<pre>public&nbsp;boolean&nbsp;isActive()</pre>
<div class="block">INTERNAL:
 Was PUBLIC: customer will be redirected to <a href="../../../../../org/eclipse/persistence/sessions/Session.html" title="interface in org.eclipse.persistence.sessions"><code>Session</code></a>.
 Return if the client session is active (has not been released).</div>
</li>
</ul>
<a name="isClientSession--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isClientSession</h4>
<pre>public&nbsp;boolean&nbsp;isClientSession()</pre>
<div class="block">INTERNAL:
 Return if this session is a client session.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/eclipse/persistence/sessions/Session.html#isClientSession--">isClientSession</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/eclipse/persistence/sessions/Session.html" title="interface in org.eclipse.persistence.sessions">Session</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>isClientSession</code>&nbsp;in class&nbsp;<code>org.eclipse.persistence.internal.sessions.AbstractSession</code></dd>
</dl>
</li>
</ul>
<a name="isConnected--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isConnected</h4>
<pre>public&nbsp;boolean&nbsp;isConnected()</pre>
<div class="block">INTERNAL:
 Was PUBLIC: customer will be redirected to <a href="../../../../../org/eclipse/persistence/sessions/Session.html" title="interface in org.eclipse.persistence.sessions"><code>Session</code></a>.
 Return if this session has been connected to the database.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/eclipse/persistence/sessions/Session.html#isConnected--">isConnected</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/eclipse/persistence/sessions/Session.html" title="interface in org.eclipse.persistence.sessions">Session</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>isConnected</code>&nbsp;in class&nbsp;<code>org.eclipse.persistence.internal.sessions.AbstractSession</code></dd>
</dl>
</li>
</ul>
<a name="release--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>release</h4>
<pre>public&nbsp;void&nbsp;release()
             throws <a href="../../../../../org/eclipse/persistence/exceptions/DatabaseException.html" title="class in org.eclipse.persistence.exceptions">DatabaseException</a></pre>
<div class="block">INTERNAL:
 Was PUBLIC: customer will be redirected to <a href="../../../../../org/eclipse/persistence/sessions/Session.html" title="interface in org.eclipse.persistence.sessions"><code>Session</code></a>.
 Release the client session.
 This releases the client session back to it server.
 Normally this will logout of the client session's connection,
 and allow the client session to garbage collect.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/eclipse/persistence/sessions/Session.html#release--">release</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/eclipse/persistence/sessions/Session.html" title="interface in org.eclipse.persistence.sessions">Session</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>release</code>&nbsp;in class&nbsp;<code>org.eclipse.persistence.internal.sessions.AbstractSession</code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/eclipse/persistence/exceptions/DatabaseException.html" title="class in org.eclipse.persistence.exceptions">DatabaseException</a></code></dd>
</dl>
</li>
</ul>
<a name="retryQuery-org.eclipse.persistence.queries.DatabaseQuery-org.eclipse.persistence.internal.sessions.AbstractRecord-org.eclipse.persistence.exceptions.DatabaseException-int-org.eclipse.persistence.internal.sessions.AbstractSession-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>retryQuery</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;retryQuery(<a href="../../../../../org/eclipse/persistence/queries/DatabaseQuery.html" title="class in org.eclipse.persistence.queries">DatabaseQuery</a>&nbsp;query,
                         org.eclipse.persistence.internal.sessions.AbstractRecord&nbsp;row,
                         <a href="../../../../../org/eclipse/persistence/exceptions/DatabaseException.html" title="class in org.eclipse.persistence.exceptions">DatabaseException</a>&nbsp;databaseException,
                         int&nbsp;retryCount,
                         org.eclipse.persistence.internal.sessions.AbstractSession&nbsp;executionSession)</pre>
<div class="block">INTERNAL:
 A query execution failed due to an invalid query.
 Re-connect and retry the query.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>retryQuery</code>&nbsp;in class&nbsp;<code>org.eclipse.persistence.internal.sessions.AbstractSession</code></dd>
</dl>
</li>
</ul>
<a name="releaseWriteConnection--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>releaseWriteConnection</h4>
<pre>protected&nbsp;void&nbsp;releaseWriteConnection()</pre>
<div class="block">INTERNAL:
 This is internal to the unit of work and should not be called otherwise.</div>
</li>
</ul>
<a name="setConnectionPolicy-org.eclipse.persistence.sessions.server.ConnectionPolicy-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setConnectionPolicy</h4>
<pre>public&nbsp;void&nbsp;setConnectionPolicy(<a href="../../../../../org/eclipse/persistence/sessions/server/ConnectionPolicy.html" title="class in org.eclipse.persistence.sessions.server">ConnectionPolicy</a>&nbsp;connectionPolicy)</pre>
<div class="block">INTERNAL:
 Set the connection policy.</div>
</li>
</ul>
<a name="setIsActive-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setIsActive</h4>
<pre>protected&nbsp;void&nbsp;setIsActive(boolean&nbsp;isActive)</pre>
<div class="block">INTERNAL:
 Set if the client session is active (has not been released).</div>
</li>
</ul>
<a name="setParent-org.eclipse.persistence.sessions.server.ServerSession-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setParent</h4>
<pre>protected&nbsp;void&nbsp;setParent(<a href="../../../../../org/eclipse/persistence/sessions/server/ServerSession.html" title="class in org.eclipse.persistence.sessions.server">ServerSession</a>&nbsp;parent)</pre>
<div class="block">INTERNAL:
 Set the parent.
 This is a server session.</div>
</li>
</ul>
<a name="addWriteConnection-java.lang.String-org.eclipse.persistence.internal.databaseaccess.Accessor-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addWriteConnection</h4>
<pre>public&nbsp;org.eclipse.persistence.internal.databaseaccess.Accessor&nbsp;addWriteConnection(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;poolName,
                                                                                   org.eclipse.persistence.internal.databaseaccess.Accessor&nbsp;writeConnection)</pre>
<div class="block">INTERNAL:
 Add the connection to the client session.
 Multiple connections are supported to allow data partitioning and replication.
 The accessor is returned, as if detected to be dead it may be replaced.</div>
</li>
</ul>
<a name="retryTransaction-org.eclipse.persistence.internal.databaseaccess.Accessor-org.eclipse.persistence.exceptions.DatabaseException-int-org.eclipse.persistence.internal.sessions.AbstractSession-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>retryTransaction</h4>
<pre>public&nbsp;<a href="../../../../../org/eclipse/persistence/exceptions/DatabaseException.html" title="class in org.eclipse.persistence.exceptions">DatabaseException</a>&nbsp;retryTransaction(org.eclipse.persistence.internal.databaseaccess.Accessor&nbsp;writeConnection,
                                          <a href="../../../../../org/eclipse/persistence/exceptions/DatabaseException.html" title="class in org.eclipse.persistence.exceptions">DatabaseException</a>&nbsp;databaseException,
                                          int&nbsp;retryCount,
                                          org.eclipse.persistence.internal.sessions.AbstractSession&nbsp;executionSession)</pre>
<div class="block">INTERNAL:
 A begin transaction failed.
 Re-connect and retry the begin transaction.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>retryTransaction</code>&nbsp;in class&nbsp;<code>org.eclipse.persistence.internal.sessions.AbstractSession</code></dd>
</dl>
</li>
</ul>
<a name="setWriteConnections-java.util.Map-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setWriteConnections</h4>
<pre>public&nbsp;void&nbsp;setWriteConnections(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,org.eclipse.persistence.internal.databaseaccess.Accessor&gt;&nbsp;writeConnections)</pre>
<div class="block">INTERNAL:
 Set the connection to be used for database modification.</div>
</li>
</ul>
<a name="setWriteConnection-org.eclipse.persistence.internal.databaseaccess.Accessor-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setWriteConnection</h4>
<pre>public&nbsp;void&nbsp;setWriteConnection(org.eclipse.persistence.internal.databaseaccess.Accessor&nbsp;writeConnection)</pre>
<div class="block">INTERNAL:
 Set the connection to be used for database modification.</div>
</li>
</ul>
<a name="toString--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toString</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;toString()</pre>
<div class="block">INTERNAL:
 Print the connection status with the session.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>toString</code>&nbsp;in class&nbsp;<code>org.eclipse.persistence.internal.sessions.AbstractSession</code></dd>
</dl>
</li>
</ul>
<a name="getCommandManager--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCommandManager</h4>
<pre>public&nbsp;<a href="../../../../../org/eclipse/persistence/sessions/coordination/CommandManager.html" title="interface in org.eclipse.persistence.sessions.coordination">CommandManager</a>&nbsp;getCommandManager()</pre>
<div class="block">INTERNAL:
 Return the manager that allows this processor to receive or propagate commands from/to TopLink cluster</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/eclipse/persistence/sessions/coordination/CommandProcessor.html#getCommandManager--">getCommandManager</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/eclipse/persistence/sessions/coordination/CommandProcessor.html" title="interface in org.eclipse.persistence.sessions.coordination">CommandProcessor</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>getCommandManager</code>&nbsp;in class&nbsp;<code>org.eclipse.persistence.internal.sessions.AbstractSession</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a remote command manager</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/eclipse/persistence/sessions/coordination/CommandManager.html" title="interface in org.eclipse.persistence.sessions.coordination"><code>CommandManager</code></a></dd>
</dl>
</li>
</ul>
<a name="shouldPropagateChanges--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>shouldPropagateChanges</h4>
<pre>public&nbsp;boolean&nbsp;shouldPropagateChanges()</pre>
<div class="block">INTERNAL:
 Return whether changes should be propagated to TopLink cluster.  This is one of the required
 cache synchronization setting</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>shouldPropagateChanges</code>&nbsp;in class&nbsp;<code>org.eclipse.persistence.internal.sessions.AbstractSession</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>True if propagation is set to occur, false if not</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><code>AbstractSession.setCommandManager(CommandManager)</code></dd>
</dl>
</li>
</ul>
<a name="releaseReadConnection-org.eclipse.persistence.internal.databaseaccess.Accessor-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>releaseReadConnection</h4>
<pre>public&nbsp;void&nbsp;releaseReadConnection(org.eclipse.persistence.internal.databaseaccess.Accessor&nbsp;connection)</pre>
<div class="block">INTERNAL:
 Release the cursor query's connection.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>releaseReadConnection</code>&nbsp;in class&nbsp;<code>org.eclipse.persistence.internal.sessions.AbstractSession</code></dd>
</dl>
</li>
</ul>
<a name="isExclusiveConnectionRequired--">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>isExclusiveConnectionRequired</h4>
<pre>public&nbsp;boolean&nbsp;isExclusiveConnectionRequired()</pre>
<div class="block">INTERNAL:
 This method is called in case externalConnectionPooling is used.
 If returns true, accessor used by the session keeps its
 connection open until released by the session.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>isExclusiveConnectionRequired</code>&nbsp;in class&nbsp;<code>org.eclipse.persistence.internal.sessions.AbstractSession</code></dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage">EclipseLink 3.0.2, API Reference</div>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Class</li>
<li><a href="../../../../../org/eclipse/persistence/sessions/server/ConnectionPolicy.html" title="class in org.eclipse.persistence.sessions.server"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/eclipse/persistence/sessions/server/ClientSession.html" target="_top">Frames</a></li>
<li><a href="ClientSession.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2021 <a href="http://www.eclipse.org/eclipselink">Eclipse.org - EclipseLink Project</a>. All rights reserved.</small></p>
</body>
</html>
