blob: e1ff775b4f6f9c27434c471a72a0421f3988d3cc [file] [log] [blame]
<!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:39:10 UTC 2021 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>AbstractTransactionController (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="AbstractTransactionController (EclipseLink 3.0.2, API Reference)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":6,"i2":10,"i3":10,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":10,"i10":6,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":6,"i18":10,"i19":6,"i20":10,"i21":6,"i22":10,"i23":10,"i24":10,"i25":10,"i26":6,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":6,"i34":10,"i35":10,"i36":10,"i37":6,"i38":10,"i39":10,"i40":10,"i41":6,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract 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><a href="../../../../org/eclipse/persistence/transaction/AbstractSynchronizationListener.html" title="class in org.eclipse.persistence.transaction"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/eclipse/persistence/transaction/JTA11TransactionController.html" title="class in org.eclipse.persistence.transaction"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/eclipse/persistence/transaction/AbstractTransactionController.html" target="_top">Frames</a></li>
<li><a href="AbstractTransactionController.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.transaction</div>
<h2 title="Class AbstractTransactionController" class="title">Class AbstractTransactionController</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.transaction.AbstractTransactionController</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../../org/eclipse/persistence/sessions/ExternalTransactionController.html" title="interface in org.eclipse.persistence.sessions">ExternalTransactionController</a></dd>
</dl>
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><a href="../../../../org/eclipse/persistence/transaction/JTATransactionController.html" title="class in org.eclipse.persistence.transaction">JTATransactionController</a></dd>
</dl>
<hr>
<br>
<pre>public abstract class <span class="typeNameLabel">AbstractTransactionController</span>
extends <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>
implements <a href="../../../../org/eclipse/persistence/sessions/ExternalTransactionController.html" title="interface in org.eclipse.persistence.sessions">ExternalTransactionController</a></pre>
<div class="block"><p>
<b>Purpose</b>: Abstract implementation of an ExternalTransactionController.
<p>
<b>Description</b>: This class implements the ExternalTransactionController
interface. Concrete implementations of this class are responsible for performing
the coordination with the external transaction manager through whatever means
available to that manager. Different transaction services may do this in slightly
different ways, but most common ones (JTA and JTS/OTS) will use a synchronization
interface.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/eclipse/persistence/transaction/AbstractSynchronizationListener.html" title="class in org.eclipse.persistence.transaction"><code>AbstractSynchronizationListener</code></a>,
<a href="../../../../org/eclipse/persistence/sessions/ExternalTransactionController.html" title="interface in org.eclipse.persistence.sessions"><code>ExternalTransactionController</code></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="https://docs.oracle.com/javase/8/docs/api/java/lang/ThreadLocal.html?is-external=true" title="class or interface in java.lang">ThreadLocal</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/transaction/AbstractTransactionController.html#activeUnitOfWorkThreadLocal">activeUnitOfWorkThreadLocal</a></span></code>
<div class="block">PERF: Cache the active uow in a thread local.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;<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>,<a href="../../../../org/eclipse/persistence/transaction/AbstractSynchronizationListener.html" title="class in org.eclipse.persistence.transaction">AbstractSynchronizationListener</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/transaction/AbstractTransactionController.html#currentlyProcessedListeners">currentlyProcessedListeners</a></span></code>
<div class="block">Non-null only in case sequencing callbacks are used: numSessionsRequiringSequencingCallback &gt; 0</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="../../../../org/eclipse/persistence/exceptions/ExceptionHandler.html" title="interface in org.eclipse.persistence.exceptions">ExceptionHandler</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/transaction/AbstractTransactionController.html#exceptionHandler">exceptionHandler</a></span></code>
<div class="block">Allow exception in before/after completion to be wrapped.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected <a href="../../../../org/eclipse/persistence/transaction/SynchronizationListenerFactory.html" title="interface in org.eclipse.persistence.transaction">SynchronizationListenerFactory</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/transaction/AbstractTransactionController.html#listenerFactory">listenerFactory</a></span></code>
<div class="block">Generates listener instances for synchronization</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/transaction/AbstractTransactionController.html#numSessionsRequiringSequencingCallback">numSessionsRequiringSequencingCallback</a></span></code>
<div class="block">more - the session is a session broker with several members requiring sequencing callbacks.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;<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>,<a href="../../../../org/eclipse/persistence/transaction/AbstractSynchronizationListener.html" title="class in org.eclipse.persistence.transaction">AbstractSynchronizationListener</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/transaction/AbstractTransactionController.html#sequencingListeners">sequencingListeners</a></span></code>
<div class="block">Non-null only in case sequencing callbacks are used: numSessionsRequiringSequencingCallback &gt; 0</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected org.eclipse.persistence.internal.sessions.AbstractSession</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/transaction/AbstractTransactionController.html#session">session</a></span></code>
<div class="block">The session this controller is responsible for controlling</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/transaction/AbstractTransactionController.html#unitsOfWork">unitsOfWork</a></span></code>
<div class="block">Table of external transaction object keys and unit of work values</div>
</td>
</tr>
</table>
</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="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/transaction/AbstractTransactionController.html#AbstractTransactionController--">AbstractTransactionController</a></span>()</code>
<div class="block">INTERNAL:
Return a new controller.</div>
</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="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract 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>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/transaction/AbstractTransactionController.html#addUnitOfWork-java.lang.Object-org.eclipse.persistence.internal.sessions.UnitOfWorkImpl-">addUnitOfWork</a></span>(<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;transactionKey,
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl&nbsp;activeUnitOfWork)</code>
<div class="block">INTERNAL:
Add a UnitOfWork object to the Hashtable keyed on the external transaction object.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>protected abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/transaction/AbstractTransactionController.html#beginTransaction_impl--">beginTransaction_impl</a></span>()</code>
<div class="block">INTERNAL:
Begin an external transaction.</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/transaction/AbstractTransactionController.html#beginTransaction-org.eclipse.persistence.internal.sessions.AbstractSession-">beginTransaction</a></span>(org.eclipse.persistence.internal.sessions.AbstractSession&nbsp;session)</code>
<div class="block">INTERNAL:
Begin an external transaction.</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/transaction/AbstractTransactionController.html#bindToCurrentTransaction-org.eclipse.persistence.internal.sessions.UnitOfWorkImpl-org.eclipse.persistence.internal.sessions.AbstractSession-">bindToCurrentTransaction</a></span>(org.eclipse.persistence.internal.sessions.UnitOfWorkImpl&nbsp;unitOfWork,
org.eclipse.persistence.internal.sessions.AbstractSession&nbsp;session)</code>
<div class="block">INTERNAL:
Associate the given unit of work and EclipseLink session with the active external
transaction.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>protected abstract boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/transaction/AbstractTransactionController.html#canBeginTransaction_impl-java.lang.Object-">canBeginTransaction_impl</a></span>(<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;status)</code>
<div class="block">INTERNAL:
Return true if the status indicates that a transaction can be started.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>protected abstract boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/transaction/AbstractTransactionController.html#canCommitTransaction_impl-java.lang.Object-">canCommitTransaction_impl</a></span>(<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;status)</code>
<div class="block">INTERNAL:
Return true if the status indicates that a transaction can be committed.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>protected abstract boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/transaction/AbstractTransactionController.html#canIssueSQLToDatabase_impl-java.lang.Object-">canIssueSQLToDatabase_impl</a></span>(<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;status)</code>
<div class="block">INTERNAL:
Return true if the status indicates that the SQL should be issued to the db.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>protected abstract boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/transaction/AbstractTransactionController.html#canMergeUnitOfWork_impl-java.lang.Object-">canMergeUnitOfWork_impl</a></span>(<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;status)</code>
<div class="block">INTERNAL:
Return true if the status indicates that the unit of work should be merged
into the shared cache.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>protected abstract boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/transaction/AbstractTransactionController.html#canRollbackTransaction_impl-java.lang.Object-">canRollbackTransaction_impl</a></span>(<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;status)</code>
<div class="block">INTERNAL:
Return true if the status indicates that a transaction can be rolled back.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/transaction/AbstractTransactionController.html#clearSequencingListeners--">clearSequencingListeners</a></span>()</code>
<div class="block">INTERNAL:
Clears sequencing listeners.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>protected abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/transaction/AbstractTransactionController.html#commitTransaction_impl--">commitTransaction_impl</a></span>()</code>
<div class="block">INTERNAL:
Commit the external transaction.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/transaction/AbstractTransactionController.html#commitTransaction-org.eclipse.persistence.internal.sessions.AbstractSession-">commitTransaction</a></span>(org.eclipse.persistence.internal.sessions.AbstractSession&nbsp;session)</code>
<div class="block">INTERNAL:
Commit the external transaction.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>org.eclipse.persistence.internal.sequencing.SequencingCallback</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/transaction/AbstractTransactionController.html#getActiveSequencingCallback-org.eclipse.persistence.sessions.DatabaseSession-org.eclipse.persistence.internal.sequencing.SequencingCallbackFactory-">getActiveSequencingCallback</a></span>(<a href="../../../../org/eclipse/persistence/sessions/DatabaseSession.html" title="interface in org.eclipse.persistence.sessions">DatabaseSession</a>&nbsp;dbSession,
org.eclipse.persistence.internal.sequencing.SequencingCallbackFactory&nbsp;sequencingCallbackFactory)</code>
<div class="block">INTERNAL:
Returns sequencingCallback for the current active external transaction.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>org.eclipse.persistence.internal.sessions.UnitOfWorkImpl</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/transaction/AbstractTransactionController.html#getActiveUnitOfWork--">getActiveUnitOfWork</a></span>()</code>
<div class="block">INTERNAL:
Return the active unit of work for the current external transaction.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code><a href="../../../../org/eclipse/persistence/exceptions/ExceptionHandler.html" title="interface in org.eclipse.persistence.exceptions">ExceptionHandler</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/transaction/AbstractTransactionController.html#getExceptionHandler--">getExceptionHandler</a></span>()</code>
<div class="block">Return the exception handler used to handle or wrap exceptions thrown in before/after completion.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/eclipse/persistence/transaction/SynchronizationListenerFactory.html" title="interface in org.eclipse.persistence.transaction">SynchronizationListenerFactory</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/transaction/AbstractTransactionController.html#getListenerFactory--">getListenerFactory</a></span>()</code>
<div class="block">INTERNAL:
Get the factory used to generate synchronization listeners.</div>
</td>
</tr>
<tr id="i16" 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/transaction/AbstractTransactionController.html#getSession--">getSession</a></span>()</code>
<div class="block">INTERNAL:
Return the manager's session.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>protected abstract <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/transaction/AbstractTransactionController.html#getTransaction_impl--">getTransaction_impl</a></span>()</code>
<div class="block">INTERNAL:
Return the active external transaction for the calling thread, or null if
none is currently active for this thread.</div>
</td>
</tr>
<tr id="i18" 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/transaction/AbstractTransactionController.html#getTransaction--">getTransaction</a></span>()</code>
<div class="block">INTERNAL:
Return the active external transaction object, or null if
none is active.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>protected abstract <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/transaction/AbstractTransactionController.html#getTransactionKey_impl-java.lang.Object-">getTransactionKey_impl</a></span>(<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;transaction)</code>
<div class="block">INTERNAL:
Return a key for the specified external transaction object.</div>
</td>
</tr>
<tr id="i20" 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/transaction/AbstractTransactionController.html#getTransactionKey-java.lang.Object-">getTransactionKey</a></span>(<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;transaction)</code>
<div class="block">INTERNAL:
Return a key for the specified external transaction object.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>protected abstract <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/transaction/AbstractTransactionController.html#getTransactionStatus_impl--">getTransactionStatus_impl</a></span>()</code>
<div class="block">INTERNAL:
Return the transaction status.</div>
</td>
</tr>
<tr id="i22" 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/transaction/AbstractTransactionController.html#getTransactionStatus--">getTransactionStatus</a></span>()</code>
<div class="block">INTERNAL:
Return the transaction status.</div>
</td>
</tr>
<tr id="i23" 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></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/transaction/AbstractTransactionController.html#getUnitsOfWork--">getUnitsOfWork</a></span>()</code>
<div class="block">INTERNAL:
Return the hashtable keyed on the external transaction objects with values
that are the associated units of work.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/transaction/AbstractTransactionController.html#hasActiveUnitOfWork--">hasActiveUnitOfWork</a></span>()</code>
<div class="block">INTERNAL:
Return true if there is a unit of work associated with the active external
transaction.</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/transaction/AbstractTransactionController.html#initializeSequencingListeners--">initializeSequencingListeners</a></span>()</code>
<div class="block">INTERNAL:
Initializes sequencing listeners.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>abstract boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/transaction/AbstractTransactionController.html#isRolledBack_impl-java.lang.Object-">isRolledBack_impl</a></span>(<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;status)</code>
<div class="block">INTERNAL:
Return true if the transaction is in the rolled back state.</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/transaction/AbstractTransactionController.html#isSequencingCallbackRequired--">isSequencingCallbackRequired</a></span>()</code>
<div class="block">INTERNAL:
Indicates whether sequencing callback may be required.</div>
</td>
</tr>
<tr id="i28" 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/transaction/AbstractTransactionController.html#jndiLookup-java.lang.String-">jndiLookup</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;jndiName)</code>
<div class="block">PUBLIC:
Look up a given name in JNDI.</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/transaction/AbstractTransactionController.html#logTxStateTrace-org.eclipse.persistence.internal.sessions.AbstractSession-java.lang.String-java.lang.Object-">logTxStateTrace</a></span>(org.eclipse.persistence.internal.sessions.AbstractSession&nbsp;session,
<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;msgInd,
<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;status)</code>&nbsp;</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/transaction/AbstractTransactionController.html#logTxTrace-org.eclipse.persistence.internal.sessions.AbstractSession-java.lang.String-java.lang.Object:A-">logTxTrace</a></span>(org.eclipse.persistence.internal.sessions.AbstractSession&nbsp;session,
<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;msgInd,
<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;args)</code>&nbsp;</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code>org.eclipse.persistence.internal.sessions.UnitOfWorkImpl</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/transaction/AbstractTransactionController.html#lookupActiveUnitOfWork--">lookupActiveUnitOfWork</a></span>()</code>
<div class="block">INTERNAL:
Return the unit of work associated with the active external transaction.</div>
</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code>org.eclipse.persistence.internal.sessions.UnitOfWorkImpl</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/transaction/AbstractTransactionController.html#lookupActiveUnitOfWork-java.lang.Object-">lookupActiveUnitOfWork</a></span>(<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;transaction)</code>
<div class="block">INTERNAL:
Return the unit of work associated with the active external transaction.</div>
</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code>protected abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/transaction/AbstractTransactionController.html#markTransactionForRollback_impl--">markTransactionForRollback_impl</a></span>()</code>
<div class="block">INTERNAL:
Mark the external transaction for rollback.</div>
</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/transaction/AbstractTransactionController.html#markTransactionForRollback--">markTransactionForRollback</a></span>()</code>
<div class="block">INTERNAL:
Mark the external transaction for rollback.</div>
</td>
</tr>
<tr id="i35" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/transaction/AbstractTransactionController.html#noTransactionOrRolledBackOrCommited--">noTransactionOrRolledBackOrCommited</a></span>()</code>
<div class="block">INTERNAL:
Used the EJB 3.0 to determine if a transaction is in a state where an EntityManager can
be closed</div>
</td>
</tr>
<tr id="i36" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/transaction/AbstractTransactionController.html#numSessionsRequiringSequencingCallback--">numSessionsRequiringSequencingCallback</a></span>()</code>
<div class="block">INTERNAL:
Indicates how many sessions require sequencing callbacks.</div>
</td>
</tr>
<tr id="i37" class="rowColor">
<td class="colFirst"><code>protected abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/transaction/AbstractTransactionController.html#registerSynchronization_impl-org.eclipse.persistence.transaction.AbstractSynchronizationListener-java.lang.Object-">registerSynchronization_impl</a></span>(<a href="../../../../org/eclipse/persistence/transaction/AbstractSynchronizationListener.html" title="class in org.eclipse.persistence.transaction">AbstractSynchronizationListener</a>&nbsp;listener,
<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;txn)</code>
<div class="block">INTERNAL:
Register the specified synchronization listener with the given active
transaction.</div>
</td>
</tr>
<tr id="i38" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/transaction/AbstractTransactionController.html#registerSynchronizationListener-org.eclipse.persistence.internal.sessions.UnitOfWorkImpl-org.eclipse.persistence.internal.sessions.AbstractSession-">registerSynchronizationListener</a></span>(org.eclipse.persistence.internal.sessions.UnitOfWorkImpl&nbsp;uow,
org.eclipse.persistence.internal.sessions.AbstractSession&nbsp;session)</code>
<div class="block">INTERNAL:
Associate the given unit of work and EclipseLink session with the current external
transaction.</div>
</td>
</tr>
<tr id="i39" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/transaction/AbstractTransactionController.html#removeSequencingListener-java.lang.Object-">removeSequencingListener</a></span>(<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;transactionKey)</code>
<div class="block">INTERNAL:
Clears sequencingCallbacks.</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/transaction/AbstractTransactionController.html#removeUnitOfWork-java.lang.Object-">removeUnitOfWork</a></span>(<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;transactionKey)</code>
<div class="block">INTERNAL:
Remove the unit of work associated with the transaction passed in.</div>
</td>
</tr>
<tr id="i41" class="rowColor">
<td class="colFirst"><code>protected abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/transaction/AbstractTransactionController.html#rollbackTransaction_impl--">rollbackTransaction_impl</a></span>()</code>
<div class="block">INTERNAL:
Roll back the external transaction.</div>
</td>
</tr>
<tr id="i42" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/transaction/AbstractTransactionController.html#rollbackTransaction-org.eclipse.persistence.internal.sessions.AbstractSession-">rollbackTransaction</a></span>(org.eclipse.persistence.internal.sessions.AbstractSession&nbsp;session)</code>
<div class="block">INTERNAL:
Roll back the external transaction.</div>
</td>
</tr>
<tr id="i43" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/transaction/AbstractTransactionController.html#setExceptionHandler-org.eclipse.persistence.exceptions.ExceptionHandler-">setExceptionHandler</a></span>(<a href="../../../../org/eclipse/persistence/exceptions/ExceptionHandler.html" title="interface in org.eclipse.persistence.exceptions">ExceptionHandler</a>&nbsp;exceptionHandler)</code>
<div class="block">Set an exception handler to handle or wrap exceptions thrown in before/after completion.</div>
</td>
</tr>
<tr id="i44" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/transaction/AbstractTransactionController.html#setListenerFactory-org.eclipse.persistence.transaction.SynchronizationListenerFactory-">setListenerFactory</a></span>(<a href="../../../../org/eclipse/persistence/transaction/SynchronizationListenerFactory.html" title="interface in org.eclipse.persistence.transaction">SynchronizationListenerFactory</a>&nbsp;factory)</code>
<div class="block">INTERNAL:
Set the factory used to generate synchronization listeners.</div>
</td>
</tr>
<tr id="i45" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/transaction/AbstractTransactionController.html#setSession-org.eclipse.persistence.internal.sessions.AbstractSession-">setSession</a></span>(org.eclipse.persistence.internal.sessions.AbstractSession&nbsp;session)</code>
<div class="block">INTERNAL:
Set the manager's session.</div>
</td>
</tr>
<tr id="i46" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/transaction/AbstractTransactionController.html#setUnitsOfWork-java.util.concurrent.ConcurrentMap-">setUnitsOfWork</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&nbsp;unitsOfWork)</code>
<div class="block">INTERNAL:
Set the table of transactions to units of work.</div>
</td>
</tr>
<tr id="i47" class="rowColor">
<td class="colFirst"><code>protected abstract <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/transaction/AbstractTransactionController.html#statusToString_impl-java.lang.Object-">statusToString_impl</a></span>(<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;status)</code>
<div class="block">INTERNAL:
Convert the status to a string for tracing.</div>
</td>
</tr>
</table>
<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#clone--" title="class or interface in java.lang">clone</a>, <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#toString--" title="class or interface in java.lang">toString</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="unitsOfWork">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>unitsOfWork</h4>
<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a> unitsOfWork</pre>
<div class="block">Table of external transaction object keys and unit of work values</div>
</li>
</ul>
<a name="session">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>session</h4>
<pre>protected&nbsp;org.eclipse.persistence.internal.sessions.AbstractSession session</pre>
<div class="block">The session this controller is responsible for controlling</div>
</li>
</ul>
<a name="listenerFactory">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>listenerFactory</h4>
<pre>protected&nbsp;<a href="../../../../org/eclipse/persistence/transaction/SynchronizationListenerFactory.html" title="interface in org.eclipse.persistence.transaction">SynchronizationListenerFactory</a> listenerFactory</pre>
<div class="block">Generates listener instances for synchronization</div>
</li>
</ul>
<a name="activeUnitOfWorkThreadLocal">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>activeUnitOfWorkThreadLocal</h4>
<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ThreadLocal.html?is-external=true" title="class or interface in java.lang">ThreadLocal</a> activeUnitOfWorkThreadLocal</pre>
<div class="block">PERF: Cache the active uow in a thread local.</div>
</li>
</ul>
<a name="sequencingListeners">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>sequencingListeners</h4>
<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;<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>,<a href="../../../../org/eclipse/persistence/transaction/AbstractSynchronizationListener.html" title="class in org.eclipse.persistence.transaction">AbstractSynchronizationListener</a>&gt; sequencingListeners</pre>
<div class="block">Non-null only in case sequencing callbacks are used: numSessionsRequiringSequencingCallback &gt; 0</div>
</li>
</ul>
<a name="currentlyProcessedListeners">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>currentlyProcessedListeners</h4>
<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;<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>,<a href="../../../../org/eclipse/persistence/transaction/AbstractSynchronizationListener.html" title="class in org.eclipse.persistence.transaction">AbstractSynchronizationListener</a>&gt; currentlyProcessedListeners</pre>
<div class="block">Non-null only in case sequencing callbacks are used: numSessionsRequiringSequencingCallback &gt; 0</div>
</li>
</ul>
<a name="numSessionsRequiringSequencingCallback">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>numSessionsRequiringSequencingCallback</h4>
<pre>protected&nbsp;int numSessionsRequiringSequencingCallback</pre>
<div class="block">more - the session is a session broker with several members requiring sequencing callbacks.</div>
</li>
</ul>
<a name="exceptionHandler">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>exceptionHandler</h4>
<pre>protected&nbsp;<a href="../../../../org/eclipse/persistence/exceptions/ExceptionHandler.html" title="interface in org.eclipse.persistence.exceptions">ExceptionHandler</a> exceptionHandler</pre>
<div class="block">Allow exception in before/after completion to be wrapped.</div>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="AbstractTransactionController--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>AbstractTransactionController</h4>
<pre>public&nbsp;AbstractTransactionController()</pre>
<div class="block">INTERNAL:
Return a new controller.</div>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="getExceptionHandler--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getExceptionHandler</h4>
<pre>public&nbsp;<a href="../../../../org/eclipse/persistence/exceptions/ExceptionHandler.html" title="interface in org.eclipse.persistence.exceptions">ExceptionHandler</a>&nbsp;getExceptionHandler()</pre>
<div class="block">Return the exception handler used to handle or wrap exceptions thrown in before/after completion.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../org/eclipse/persistence/sessions/ExternalTransactionController.html#getExceptionHandler--">getExceptionHandler</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/persistence/sessions/ExternalTransactionController.html" title="interface in org.eclipse.persistence.sessions">ExternalTransactionController</a></code></dd>
</dl>
</li>
</ul>
<a name="setExceptionHandler-org.eclipse.persistence.exceptions.ExceptionHandler-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setExceptionHandler</h4>
<pre>public&nbsp;void&nbsp;setExceptionHandler(<a href="../../../../org/eclipse/persistence/exceptions/ExceptionHandler.html" title="interface in org.eclipse.persistence.exceptions">ExceptionHandler</a>&nbsp;exceptionHandler)</pre>
<div class="block">Set an exception handler to handle or wrap exceptions thrown in before/after completion.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../org/eclipse/persistence/sessions/ExternalTransactionController.html#setExceptionHandler-org.eclipse.persistence.exceptions.ExceptionHandler-">setExceptionHandler</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/persistence/sessions/ExternalTransactionController.html" title="interface in org.eclipse.persistence.sessions">ExternalTransactionController</a></code></dd>
</dl>
</li>
</ul>
<a name="bindToCurrentTransaction-org.eclipse.persistence.internal.sessions.UnitOfWorkImpl-org.eclipse.persistence.internal.sessions.AbstractSession-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>bindToCurrentTransaction</h4>
<pre>public&nbsp;void&nbsp;bindToCurrentTransaction(org.eclipse.persistence.internal.sessions.UnitOfWorkImpl&nbsp;unitOfWork,
org.eclipse.persistence.internal.sessions.AbstractSession&nbsp;session)</pre>
<div class="block">INTERNAL:
Associate the given unit of work and EclipseLink session with the active external
transaction. This may be done by whatever means supported by the transaction
manager (i.e. through a synchronization protocol).</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>unitOfWork</code> - The unit of work that is to be bound to the active transaction</dd>
<dd><code>session</code> - The session ancestor of the unit of work</dd>
</dl>
</li>
</ul>
<a name="beginTransaction-org.eclipse.persistence.internal.sessions.AbstractSession-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>beginTransaction</h4>
<pre>public&nbsp;void&nbsp;beginTransaction(org.eclipse.persistence.internal.sessions.AbstractSession&nbsp;session)</pre>
<div class="block">INTERNAL:
Begin an external transaction.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../org/eclipse/persistence/sessions/ExternalTransactionController.html#beginTransaction-org.eclipse.persistence.internal.sessions.AbstractSession-">beginTransaction</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/persistence/sessions/ExternalTransactionController.html" title="interface in org.eclipse.persistence.sessions">ExternalTransactionController</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>session</code> - The session for which the transaction is being begun.</dd>
</dl>
</li>
</ul>
<a name="commitTransaction-org.eclipse.persistence.internal.sessions.AbstractSession-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>commitTransaction</h4>
<pre>public&nbsp;void&nbsp;commitTransaction(org.eclipse.persistence.internal.sessions.AbstractSession&nbsp;session)</pre>
<div class="block">INTERNAL:
Commit the external transaction.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../org/eclipse/persistence/sessions/ExternalTransactionController.html#commitTransaction-org.eclipse.persistence.internal.sessions.AbstractSession-">commitTransaction</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/persistence/sessions/ExternalTransactionController.html" title="interface in org.eclipse.persistence.sessions">ExternalTransactionController</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>session</code> - The session for which the transaction is being committed.</dd>
</dl>
</li>
</ul>
<a name="rollbackTransaction-org.eclipse.persistence.internal.sessions.AbstractSession-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rollbackTransaction</h4>
<pre>public&nbsp;void&nbsp;rollbackTransaction(org.eclipse.persistence.internal.sessions.AbstractSession&nbsp;session)</pre>
<div class="block">INTERNAL:
Roll back the external transaction.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../org/eclipse/persistence/sessions/ExternalTransactionController.html#rollbackTransaction-org.eclipse.persistence.internal.sessions.AbstractSession-">rollbackTransaction</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/persistence/sessions/ExternalTransactionController.html" title="interface in org.eclipse.persistence.sessions">ExternalTransactionController</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>session</code> - The session for which the transaction is being rolled back.</dd>
</dl>
</li>
</ul>
<a name="markTransactionForRollback--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>markTransactionForRollback</h4>
<pre>public&nbsp;void&nbsp;markTransactionForRollback()</pre>
<div class="block">INTERNAL:
Mark the external transaction for rollback.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../org/eclipse/persistence/sessions/ExternalTransactionController.html#markTransactionForRollback--">markTransactionForRollback</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/persistence/sessions/ExternalTransactionController.html" title="interface in org.eclipse.persistence.sessions">ExternalTransactionController</a></code></dd>
</dl>
</li>
</ul>
<a name="getTransaction--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTransaction</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;getTransaction()</pre>
<div class="block">INTERNAL:
Return the active external transaction object, or null if
none is active. This may be in whatever form the transaction system uses.</div>
</li>
</ul>
<a name="getTransactionKey-java.lang.Object-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTransactionKey</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;getTransactionKey(<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;transaction)</pre>
<div class="block">INTERNAL:
Return a key for the specified external transaction object.
The key is just something that can be inserted into a hashtable (must support
hashCode() and equals() methods).</div>
</li>
</ul>
<a name="getTransactionStatus--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTransactionStatus</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;getTransactionStatus()</pre>
<div class="block">INTERNAL:
Return the transaction status. This may be any type of status or value,
depending upon the transaction system.</div>
</li>
</ul>
<a name="noTransactionOrRolledBackOrCommited--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>noTransactionOrRolledBackOrCommited</h4>
<pre>public&nbsp;boolean&nbsp;noTransactionOrRolledBackOrCommited()</pre>
<div class="block">INTERNAL:
Used the EJB 3.0 to determine if a transaction is in a state where an EntityManager can
be closed</div>
</li>
</ul>
<a name="isRolledBack_impl-java.lang.Object-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isRolledBack_impl</h4>
<pre>public abstract&nbsp;boolean&nbsp;isRolledBack_impl(<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;status)</pre>
<div class="block">INTERNAL:
Return true if the transaction is in the rolled back state.</div>
</li>
</ul>
<a name="hasActiveUnitOfWork--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hasActiveUnitOfWork</h4>
<pre>public&nbsp;boolean&nbsp;hasActiveUnitOfWork()</pre>
<div class="block">INTERNAL:
Return true if there is a unit of work associated with the active external
transaction. Return false if no transaction is current, or if no uow has
been associated with the active transaction yet.</div>
</li>
</ul>
<a name="getActiveUnitOfWork--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getActiveUnitOfWork</h4>
<pre>public&nbsp;org.eclipse.persistence.internal.sessions.UnitOfWorkImpl&nbsp;getActiveUnitOfWork()</pre>
<div class="block">INTERNAL:
Return the active unit of work for the current external transaction.
If no transaction is active then return null. If a transaction is active
but no unit of work has been bound to it then create and return one.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../org/eclipse/persistence/sessions/ExternalTransactionController.html#getActiveUnitOfWork--">getActiveUnitOfWork</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/persistence/sessions/ExternalTransactionController.html" title="interface in org.eclipse.persistence.sessions">ExternalTransactionController</a></code></dd>
</dl>
</li>
</ul>
<a name="lookupActiveUnitOfWork--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>lookupActiveUnitOfWork</h4>
<pre>public&nbsp;org.eclipse.persistence.internal.sessions.UnitOfWorkImpl&nbsp;lookupActiveUnitOfWork()</pre>
<div class="block">INTERNAL:
Return the unit of work associated with the active external transaction.
Return null if no transaction is active, or if no uow has been associated with
the active transaction yet.</div>
</li>
</ul>
<a name="lookupActiveUnitOfWork-java.lang.Object-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>lookupActiveUnitOfWork</h4>
<pre>public&nbsp;org.eclipse.persistence.internal.sessions.UnitOfWorkImpl&nbsp;lookupActiveUnitOfWork(<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;transaction)</pre>
<div class="block">INTERNAL:
Return the unit of work associated with the active external transaction.
Return null if no transaction is active, or if no uow has been associated with
the active transaction yet.</div>
</li>
</ul>
<a name="addUnitOfWork-java.lang.Object-org.eclipse.persistence.internal.sessions.UnitOfWorkImpl-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addUnitOfWork</h4>
<pre>public&nbsp;void&nbsp;addUnitOfWork(<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;transactionKey,
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl&nbsp;activeUnitOfWork)</pre>
<div class="block">INTERNAL:
Add a UnitOfWork object to the Hashtable keyed on the external transaction object.</div>
</li>
</ul>
<a name="removeUnitOfWork-java.lang.Object-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeUnitOfWork</h4>
<pre>public&nbsp;void&nbsp;removeUnitOfWork(<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;transactionKey)</pre>
<div class="block">INTERNAL:
Remove the unit of work associated with the transaction passed in.</div>
</li>
</ul>
<a name="getSession--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSession</h4>
<pre>public&nbsp;org.eclipse.persistence.internal.sessions.AbstractSession&nbsp;getSession()</pre>
<div class="block">INTERNAL:
Return the manager's session.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../org/eclipse/persistence/sessions/ExternalTransactionController.html#getSession--">getSession</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/persistence/sessions/ExternalTransactionController.html" title="interface in org.eclipse.persistence.sessions">ExternalTransactionController</a></code></dd>
</dl>
</li>
</ul>
<a name="setSession-org.eclipse.persistence.internal.sessions.AbstractSession-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setSession</h4>
<pre>public&nbsp;void&nbsp;setSession(org.eclipse.persistence.internal.sessions.AbstractSession&nbsp;session)</pre>
<div class="block">INTERNAL:
Set the manager's session.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../org/eclipse/persistence/sessions/ExternalTransactionController.html#setSession-org.eclipse.persistence.internal.sessions.AbstractSession-">setSession</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/persistence/sessions/ExternalTransactionController.html" title="interface in org.eclipse.persistence.sessions">ExternalTransactionController</a></code></dd>
</dl>
</li>
</ul>
<a name="getUnitsOfWork--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getUnitsOfWork</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>&nbsp;getUnitsOfWork()</pre>
<div class="block">INTERNAL:
Return the hashtable keyed on the external transaction objects with values
that are the associated units of work.</div>
</li>
</ul>
<a name="setUnitsOfWork-java.util.concurrent.ConcurrentMap-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setUnitsOfWork</h4>
<pre>protected&nbsp;void&nbsp;setUnitsOfWork(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&nbsp;unitsOfWork)</pre>
<div class="block">INTERNAL:
Set the table of transactions to units of work.</div>
</li>
</ul>
<a name="getListenerFactory--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getListenerFactory</h4>
<pre>public&nbsp;<a href="../../../../org/eclipse/persistence/transaction/SynchronizationListenerFactory.html" title="interface in org.eclipse.persistence.transaction">SynchronizationListenerFactory</a>&nbsp;getListenerFactory()</pre>
<div class="block">INTERNAL:
Get the factory used to generate synchronization listeners.</div>
</li>
</ul>
<a name="setListenerFactory-org.eclipse.persistence.transaction.SynchronizationListenerFactory-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setListenerFactory</h4>
<pre>public&nbsp;void&nbsp;setListenerFactory(<a href="../../../../org/eclipse/persistence/transaction/SynchronizationListenerFactory.html" title="interface in org.eclipse.persistence.transaction">SynchronizationListenerFactory</a>&nbsp;factory)</pre>
<div class="block">INTERNAL:
Set the factory used to generate synchronization listeners. This should be
set if a listener other than the default one is being used.</div>
</li>
</ul>
<a name="registerSynchronizationListener-org.eclipse.persistence.internal.sessions.UnitOfWorkImpl-org.eclipse.persistence.internal.sessions.AbstractSession-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>registerSynchronizationListener</h4>
<pre>public&nbsp;void&nbsp;registerSynchronizationListener(org.eclipse.persistence.internal.sessions.UnitOfWorkImpl&nbsp;uow,
org.eclipse.persistence.internal.sessions.AbstractSession&nbsp;session)
throws <a href="../../../../org/eclipse/persistence/exceptions/DatabaseException.html" title="class in org.eclipse.persistence.exceptions">DatabaseException</a></pre>
<div class="block">INTERNAL:
Associate the given unit of work and EclipseLink session with the current external
transaction. This method is offered only for backwards compatibility.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../org/eclipse/persistence/sessions/ExternalTransactionController.html#registerSynchronizationListener-org.eclipse.persistence.internal.sessions.UnitOfWorkImpl-org.eclipse.persistence.internal.sessions.AbstractSession-">registerSynchronizationListener</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/persistence/sessions/ExternalTransactionController.html" title="interface in org.eclipse.persistence.sessions">ExternalTransactionController</a></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="jndiLookup-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>jndiLookup</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;jndiLookup(<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;jndiName)</pre>
<div class="block">PUBLIC:
Look up a given name in JNDI. This can be used by a subclass or even an
application to look up transaction artifacts that are required for the
implementation.
<p>
The lookup assumes that it is taking place on the server side, and that the
InitialContext can be used without requiring any special properties.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>jndiName</code> - The name to look up</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The object bound in JNDI to the specified name</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../org/eclipse/persistence/exceptions/TransactionException.html" title="class in org.eclipse.persistence.exceptions">TransactionException</a></code> - Thrown in case of lookup failure</dd>
</dl>
</li>
</ul>
<a name="initializeSequencingListeners--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>initializeSequencingListeners</h4>
<pre>public&nbsp;void&nbsp;initializeSequencingListeners()</pre>
<div class="block">INTERNAL:
Initializes sequencing listeners.
There are two methods calling this method:
1. setSession method - this could lead to initialization of sequencing listeners
only if sequencing already connected (that would happen if setSession is called
after session.login, which is normally not the case).
2. in the very end of connecting sequencing or adding descriptors to sequencing,
after it's determined whether sequencing callbacks (and therefore listeners)
will be required.
In SessionBroker case each member's sequencing may call this method.
Note that the number of sessions requiring callbacks may never decrease,
therefore if isSequencingCallbackRequired method has returned true once,
it will always return true after that (unless clearSequencingListeners method is called).</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../org/eclipse/persistence/sessions/ExternalTransactionController.html#initializeSequencingListeners--">initializeSequencingListeners</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/persistence/sessions/ExternalTransactionController.html" title="interface in org.eclipse.persistence.sessions">ExternalTransactionController</a></code></dd>
</dl>
</li>
</ul>
<a name="getActiveSequencingCallback-org.eclipse.persistence.sessions.DatabaseSession-org.eclipse.persistence.internal.sequencing.SequencingCallbackFactory-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getActiveSequencingCallback</h4>
<pre>public&nbsp;org.eclipse.persistence.internal.sequencing.SequencingCallback&nbsp;getActiveSequencingCallback(<a href="../../../../org/eclipse/persistence/sessions/DatabaseSession.html" title="interface in org.eclipse.persistence.sessions">DatabaseSession</a>&nbsp;dbSession,
org.eclipse.persistence.internal.sequencing.SequencingCallbackFactory&nbsp;sequencingCallbackFactory)</pre>
<div class="block">INTERNAL:
Returns sequencingCallback for the current active external transaction.
DatabaseSession is passed for the sake of SessionBroker case.
This method requires active external transaction.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../org/eclipse/persistence/sessions/ExternalTransactionController.html#getActiveSequencingCallback-org.eclipse.persistence.sessions.DatabaseSession-org.eclipse.persistence.internal.sequencing.SequencingCallbackFactory-">getActiveSequencingCallback</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/persistence/sessions/ExternalTransactionController.html" title="interface in org.eclipse.persistence.sessions">ExternalTransactionController</a></code></dd>
</dl>
</li>
</ul>
<a name="clearSequencingListeners--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>clearSequencingListeners</h4>
<pre>public&nbsp;void&nbsp;clearSequencingListeners()</pre>
<div class="block">INTERNAL:
Clears sequencing listeners.
Called by initializeSequencingListeners and by sequencing on disconnect.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../org/eclipse/persistence/sessions/ExternalTransactionController.html#clearSequencingListeners--">clearSequencingListeners</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/persistence/sessions/ExternalTransactionController.html" title="interface in org.eclipse.persistence.sessions">ExternalTransactionController</a></code></dd>
</dl>
</li>
</ul>
<a name="isSequencingCallbackRequired--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isSequencingCallbackRequired</h4>
<pre>public&nbsp;boolean&nbsp;isSequencingCallbackRequired()</pre>
<div class="block">INTERNAL:
Indicates whether sequencing callback may be required.</div>
</li>
</ul>
<a name="numSessionsRequiringSequencingCallback--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>numSessionsRequiringSequencingCallback</h4>
<pre>public&nbsp;int&nbsp;numSessionsRequiringSequencingCallback()</pre>
<div class="block">INTERNAL:
Indicates how many sessions require sequencing callbacks.</div>
</li>
</ul>
<a name="removeSequencingListener-java.lang.Object-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeSequencingListener</h4>
<pre>public&nbsp;void&nbsp;removeSequencingListener(<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;transactionKey)</pre>
<div class="block">INTERNAL:
Clears sequencingCallbacks.
Called by initializeSequencingCallbacks and by sequencing on disconnect.</div>
</li>
</ul>
<a name="logTxTrace-org.eclipse.persistence.internal.sessions.AbstractSession-java.lang.String-java.lang.Object:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>logTxTrace</h4>
<pre>public&nbsp;void&nbsp;logTxTrace(org.eclipse.persistence.internal.sessions.AbstractSession&nbsp;session,
<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;msgInd,
<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;args)</pre>
</li>
</ul>
<a name="logTxStateTrace-org.eclipse.persistence.internal.sessions.AbstractSession-java.lang.String-java.lang.Object-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>logTxStateTrace</h4>
<pre>public&nbsp;void&nbsp;logTxStateTrace(org.eclipse.persistence.internal.sessions.AbstractSession&nbsp;session,
<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;msgInd,
<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;status)</pre>
</li>
</ul>
<a name="registerSynchronization_impl-org.eclipse.persistence.transaction.AbstractSynchronizationListener-java.lang.Object-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>registerSynchronization_impl</h4>
<pre>protected abstract&nbsp;void&nbsp;registerSynchronization_impl(<a href="../../../../org/eclipse/persistence/transaction/AbstractSynchronizationListener.html" title="class in org.eclipse.persistence.transaction">AbstractSynchronizationListener</a>&nbsp;listener,
<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;txn)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<div class="block">INTERNAL:
Register the specified synchronization listener with the given active
transaction.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>listener</code> - The synchronization listener created for this transaction</dd>
<dd><code>txn</code> - The active transaction for which notification is being requested</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
</dl>
</li>
</ul>
<a name="getTransaction_impl--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTransaction_impl</h4>
<pre>protected abstract&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;getTransaction_impl()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<div class="block">INTERNAL:
Return the active external transaction for the calling thread, or null if
none is currently active for this thread.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The active transaction object, or null if no transaction is active</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
</dl>
</li>
</ul>
<a name="getTransactionKey_impl-java.lang.Object-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTransactionKey_impl</h4>
<pre>protected abstract&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;getTransactionKey_impl(<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;transaction)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<div class="block">INTERNAL:
Return a key for the specified external transaction object.
The key is just something that can be inserted into a hashtable (must support
hashCode() and equals() methods).</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>transaction</code> - The transaction to which the returned key applies (may be null)</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A key for the passed in transaction, or null if no transaction specified</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
</dl>
</li>
</ul>
<a name="getTransactionStatus_impl--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTransactionStatus_impl</h4>
<pre>protected abstract&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;getTransactionStatus_impl()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<div class="block">INTERNAL:
Return the transaction status. This may be any type of status or value,
depending upon the transaction system.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The current transaction status</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
</dl>
</li>
</ul>
<a name="beginTransaction_impl--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>beginTransaction_impl</h4>
<pre>protected abstract&nbsp;void&nbsp;beginTransaction_impl()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<div class="block">INTERNAL:
Begin an external transaction. Do this in a way appropriate to the
transaction subsystem.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
</dl>
</li>
</ul>
<a name="commitTransaction_impl--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>commitTransaction_impl</h4>
<pre>protected abstract&nbsp;void&nbsp;commitTransaction_impl()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<div class="block">INTERNAL:
Commit the external transaction. Do this in a way appropriate to the
transaction subsystem.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
</dl>
</li>
</ul>
<a name="rollbackTransaction_impl--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rollbackTransaction_impl</h4>
<pre>protected abstract&nbsp;void&nbsp;rollbackTransaction_impl()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<div class="block">INTERNAL:
Roll back the external transaction. Do this in a way appropriate to the
transaction subsystem.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
</dl>
</li>
</ul>
<a name="markTransactionForRollback_impl--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>markTransactionForRollback_impl</h4>
<pre>protected abstract&nbsp;void&nbsp;markTransactionForRollback_impl()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<div class="block">INTERNAL:
Mark the external transaction for rollback. Do this in a way appropriate to the
transaction subsystem.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
</dl>
</li>
</ul>
<a name="canBeginTransaction_impl-java.lang.Object-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>canBeginTransaction_impl</h4>
<pre>protected abstract&nbsp;boolean&nbsp;canBeginTransaction_impl(<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;status)</pre>
<div class="block">INTERNAL:
Return true if the status indicates that a transaction can be started. This
would normally mean that no transaction is currently active.
The status is interpreted by the transaction subsystem.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>status</code> - The current transaction status</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the current state allows for a transaction to be started</dd>
</dl>
</li>
</ul>
<a name="canCommitTransaction_impl-java.lang.Object-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>canCommitTransaction_impl</h4>
<pre>protected abstract&nbsp;boolean&nbsp;canCommitTransaction_impl(<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;status)</pre>
<div class="block">INTERNAL:
Return true if the status indicates that a transaction can be committed. This
would normally mean that a transaction is currently active.
The status is interpreted by the transaction subsystem.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>status</code> - The current transaction status</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the current state allows for a transaction to be committed</dd>
</dl>
</li>
</ul>
<a name="canRollbackTransaction_impl-java.lang.Object-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>canRollbackTransaction_impl</h4>
<pre>protected abstract&nbsp;boolean&nbsp;canRollbackTransaction_impl(<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;status)</pre>
<div class="block">INTERNAL:
Return true if the status indicates that a transaction can be rolled back. This
would normally mean that a transaction is currently active.
The status is interpreted by the transaction subsystem.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>status</code> - The current transaction status</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the current state allows for a transaction to be rolled back</dd>
</dl>
</li>
</ul>
<a name="canIssueSQLToDatabase_impl-java.lang.Object-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>canIssueSQLToDatabase_impl</h4>
<pre>protected abstract&nbsp;boolean&nbsp;canIssueSQLToDatabase_impl(<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;status)</pre>
<div class="block">INTERNAL:
Return true if the status indicates that the SQL should be issued to the db.
This would normally mean that a transaction was active and not being rolled
back or marked for rollback.
The status is interpreted by the transaction subsystem.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>status</code> - The current transaction status</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the current state allows for the SQL to be sent to the database</dd>
</dl>
</li>
</ul>
<a name="canMergeUnitOfWork_impl-java.lang.Object-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>canMergeUnitOfWork_impl</h4>
<pre>protected abstract&nbsp;boolean&nbsp;canMergeUnitOfWork_impl(<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;status)</pre>
<div class="block">INTERNAL:
Return true if the status indicates that the unit of work should be merged
into the shared cache. This would normally mean that the transaction was
committed successfully.
The status is interpreted by the transaction subsystem.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>status</code> - The current transaction status</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the current state dictates that the unit of work should be merged</dd>
</dl>
</li>
</ul>
<a name="statusToString_impl-java.lang.Object-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>statusToString_impl</h4>
<pre>protected abstract&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;statusToString_impl(<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;status)</pre>
<div class="block">INTERNAL:
Convert the status to a string for tracing.</div>
</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><a href="../../../../org/eclipse/persistence/transaction/AbstractSynchronizationListener.html" title="class in org.eclipse.persistence.transaction"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/eclipse/persistence/transaction/JTA11TransactionController.html" title="class in org.eclipse.persistence.transaction"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/eclipse/persistence/transaction/AbstractTransactionController.html" target="_top">Frames</a></li>
<li><a href="AbstractTransactionController.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>