blob: 68d2c57e7f3da97ed525edee566c0281587668ff [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 Thu Apr 08 02:07:36 UTC 2021 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>AbstractSynchronizationListener (EclipseLink 3.0.1, API Reference)</title>
<meta name="date" content="2021-04-08">
<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="AbstractSynchronizationListener (EclipseLink 3.0.1, 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};
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.1, API Reference</div>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Class</li>
<li><a href="../../../../org/eclipse/persistence/transaction/AbstractTransactionController.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/AbstractSynchronizationListener.html" target="_top">Frames</a></li>
<li><a href="AbstractSynchronizationListener.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 AbstractSynchronizationListener" class="title">Class AbstractSynchronizationListener</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.AbstractSynchronizationListener</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd>jakarta.transaction.Synchronization</dd>
</dl>
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><a href="../../../../org/eclipse/persistence/transaction/JTASynchronizationListener.html" title="class in org.eclipse.persistence.transaction">JTASynchronizationListener</a></dd>
</dl>
<hr>
<br>
<pre>public abstract class <span class="typeNameLabel">AbstractSynchronizationListener</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 jakarta.transaction.Synchronization</pre>
<div class="block"><p>
<b>Purpose</b>: Abstract Synchronization Listener class
<b>Description</b>: This abstract class is paired with the
AbstractTransactionController class. It contains most of the implementation
logic to handle callback notifications from an external transaction
manager to ensure consistency between the global transaction and the
EclipseLink unit of work. It does not assume any particular specification
or interface, but can be called by any implementation subclass.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/eclipse/persistence/transaction/AbstractTransactionController.html" title="class in org.eclipse.persistence.transaction"><code>AbstractTransactionController</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="../../../../org/eclipse/persistence/transaction/AbstractTransactionController.html" title="class in org.eclipse.persistence.transaction">AbstractTransactionController</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/transaction/AbstractSynchronizationListener.html#controller">controller</a></span></code>
<div class="block">The external txn controller that is intimate with the transaction manager
and knows how to do things like rolling back transactions, etc.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected org.eclipse.persistence.internal.sequencing.SequencingCallback</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/transaction/AbstractSynchronizationListener.html#sequencingCallback">sequencingCallback</a></span></code>
<div class="block">sequencingCallback used in case listener has a single callback.</div>
</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="../../../../org/eclipse/persistence/sessions/DatabaseSession.html" title="interface in org.eclipse.persistence.sessions">DatabaseSession</a>,org.eclipse.persistence.internal.sequencing.SequencingCallback&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/transaction/AbstractSynchronizationListener.html#sequencingCallbackMap">sequencingCallbackMap</a></span></code>
<div class="block">sequencingCallbackMap used in case listener has more than one callback:
SessionBroker with at least two members requiring callbacks.</div>
</td>
</tr>
<tr class="rowColor">
<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/AbstractSynchronizationListener.html#session">session</a></span></code>
<div class="block">The parent of the uow.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <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/AbstractSynchronizationListener.html#transaction">transaction</a></span></code>
<div class="block">The global transaction object.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected <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/AbstractSynchronizationListener.html#transactionKey">transactionKey</a></span></code>
<div class="block">The global transaction key.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected org.eclipse.persistence.internal.sessions.UnitOfWorkImpl</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/transaction/AbstractSynchronizationListener.html#unitOfWork">unitOfWork</a></span></code>
<div class="block">The unit of work associated with the global txn that this listener is
bound to.</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="colFirst" scope="col">Modifier</th>
<th class="colLast" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/transaction/AbstractSynchronizationListener.html#AbstractSynchronizationListener--">AbstractSynchronizationListener</a></span>()</code>
<div class="block">INTERNAL:</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected </code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/transaction/AbstractSynchronizationListener.html#AbstractSynchronizationListener-org.eclipse.persistence.internal.sessions.UnitOfWorkImpl-org.eclipse.persistence.internal.sessions.AbstractSession-java.lang.Object-org.eclipse.persistence.transaction.AbstractTransactionController-">AbstractSynchronizationListener</a></span>(org.eclipse.persistence.internal.sessions.UnitOfWorkImpl&nbsp;unitOfWork,
org.eclipse.persistence.internal.sessions.AbstractSession&nbsp;session,
<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,
<a href="../../../../org/eclipse/persistence/transaction/AbstractTransactionController.html" title="class in org.eclipse.persistence.transaction">AbstractTransactionController</a>&nbsp;controller)</code>
<div class="block">INTERNAL:</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="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/AbstractSynchronizationListener.html#afterCompletion-java.lang.Object-">afterCompletion</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:
The method performs the logic that should be executed after the transaction
has been completed.</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/transaction/AbstractSynchronizationListener.html#beforeCompletion--">beforeCompletion</a></span>()</code>
<div class="block">INTERNAL:
This method performs the logic that occurs at transaction
completion time.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/transaction/AbstractSynchronizationListener.html#callSequencingCallback--">callSequencingCallback</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i3" class="rowColor">
<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/AbstractSynchronizationListener.html#getSequencingCallback-org.eclipse.persistence.sessions.DatabaseSession-org.eclipse.persistence.internal.sequencing.SequencingCallbackFactory-">getSequencingCallback</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">Return sequencingCallback corresponding to the passed session.</div>
</td>
</tr>
<tr id="i4" 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/AbstractSynchronizationListener.html#getSession--">getSession</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>protected <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/AbstractSynchronizationListener.html#getTransaction--">getTransaction</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>protected <a href="../../../../org/eclipse/persistence/transaction/AbstractTransactionController.html" title="class in org.eclipse.persistence.transaction">AbstractTransactionController</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/transaction/AbstractSynchronizationListener.html#getTransactionController--">getTransactionController</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>protected <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/AbstractSynchronizationListener.html#getTransactionKey--">getTransactionKey</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>protected org.eclipse.persistence.internal.sessions.UnitOfWorkImpl</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/transaction/AbstractSynchronizationListener.html#getUnitOfWork--">getUnitOfWork</a></span>()</code>&nbsp;</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/AbstractSynchronizationListener.html#handleException-java.lang.RuntimeException-">handleException</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang">RuntimeException</a>&nbsp;exception)</code>
<div class="block">INTERNAL:
Do the appropriate thing for when an exception occurs during SQL issuance.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/transaction/AbstractSynchronizationListener.html#setSession-org.eclipse.persistence.internal.sessions.AbstractSession-">setSession</a></span>(org.eclipse.persistence.internal.sessions.AbstractSession&nbsp;session)</code>&nbsp;</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/transaction/AbstractSynchronizationListener.html#setTransaction-java.lang.Object-">setTransaction</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>&nbsp;</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/transaction/AbstractSynchronizationListener.html#setTransactionController-org.eclipse.persistence.transaction.AbstractTransactionController-">setTransactionController</a></span>(<a href="../../../../org/eclipse/persistence/transaction/AbstractTransactionController.html" title="class in org.eclipse.persistence.transaction">AbstractTransactionController</a>&nbsp;newController)</code>&nbsp;</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/transaction/AbstractSynchronizationListener.html#setTransactionKey-java.lang.Object-">setTransactionKey</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>&nbsp;</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/transaction/AbstractSynchronizationListener.html#setUnitOfWork-org.eclipse.persistence.internal.sessions.UnitOfWorkImpl-">setUnitOfWork</a></span>(org.eclipse.persistence.internal.sessions.UnitOfWorkImpl&nbsp;unitOfWork)</code>&nbsp;</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>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.jakarta.transaction.Synchronization">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;jakarta.transaction.Synchronization</h3>
<code>afterCompletion</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="controller">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>controller</h4>
<pre>protected&nbsp;<a href="../../../../org/eclipse/persistence/transaction/AbstractTransactionController.html" title="class in org.eclipse.persistence.transaction">AbstractTransactionController</a> controller</pre>
<div class="block">The external txn controller that is intimate with the transaction manager
and knows how to do things like rolling back transactions, etc.</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 parent of the uow.</div>
</li>
</ul>
<a name="unitOfWork">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>unitOfWork</h4>
<pre>protected&nbsp;org.eclipse.persistence.internal.sessions.UnitOfWorkImpl unitOfWork</pre>
<div class="block">The unit of work associated with the global txn that this listener is
bound to.
Note that unitOfWork is null in case it's a purely sequencing listener.</div>
</li>
</ul>
<a name="transaction">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>transaction</h4>
<pre>protected&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> transaction</pre>
<div class="block">The global transaction object.</div>
</li>
</ul>
<a name="transactionKey">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>transactionKey</h4>
<pre>protected&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> transactionKey</pre>
<div class="block">The global transaction key.</div>
</li>
</ul>
<a name="sequencingCallback">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>sequencingCallback</h4>
<pre>protected&nbsp;org.eclipse.persistence.internal.sequencing.SequencingCallback sequencingCallback</pre>
<div class="block">sequencingCallback used in case listener has a single callback.</div>
</li>
</ul>
<a name="sequencingCallbackMap">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>sequencingCallbackMap</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="../../../../org/eclipse/persistence/sessions/DatabaseSession.html" title="interface in org.eclipse.persistence.sessions">DatabaseSession</a>,org.eclipse.persistence.internal.sequencing.SequencingCallback&gt; sequencingCallbackMap</pre>
<div class="block">sequencingCallbackMap used in case listener has more than one callback:
SessionBroker with at least two members requiring callbacks.</div>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="AbstractSynchronizationListener--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>AbstractSynchronizationListener</h4>
<pre>public&nbsp;AbstractSynchronizationListener()</pre>
<div class="block">INTERNAL:</div>
</li>
</ul>
<a name="AbstractSynchronizationListener-org.eclipse.persistence.internal.sessions.UnitOfWorkImpl-org.eclipse.persistence.internal.sessions.AbstractSession-java.lang.Object-org.eclipse.persistence.transaction.AbstractTransactionController-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>AbstractSynchronizationListener</h4>
<pre>protected&nbsp;AbstractSynchronizationListener(org.eclipse.persistence.internal.sessions.UnitOfWorkImpl&nbsp;unitOfWork,
org.eclipse.persistence.internal.sessions.AbstractSession&nbsp;session,
<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,
<a href="../../../../org/eclipse/persistence/transaction/AbstractTransactionController.html" title="class in org.eclipse.persistence.transaction">AbstractTransactionController</a>&nbsp;controller)</pre>
<div class="block">INTERNAL:</div>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="beforeCompletion--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>beforeCompletion</h4>
<pre>public&nbsp;void&nbsp;beforeCompletion()</pre>
<div class="block">INTERNAL:
This method performs the logic that occurs at transaction
completion time. This includes issuing the SQL, etc.
This method executes within the transaction context of the caller of
transaction.commit(), or in the case of container-managed transactions,
in the context of the method for which the Container started the transaction.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>beforeCompletion</code>&nbsp;in interface&nbsp;<code>jakarta.transaction.Synchronization</code></dd>
</dl>
</li>
</ul>
<a name="afterCompletion-java.lang.Object-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>afterCompletion</h4>
<pre>public&nbsp;void&nbsp;afterCompletion(<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:
The method performs the logic that should be executed after the transaction
has been completed. The status passed in indicates whether the transaction
was committed or rolled back. This status flag may be different for different
implementations.
This method executes without a transaction context.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>status</code> - The status code of the transaction completion.</dd>
</dl>
</li>
</ul>
<a name="handleException-java.lang.RuntimeException-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handleException</h4>
<pre>public&nbsp;void&nbsp;handleException(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang">RuntimeException</a>&nbsp;exception)</pre>
<div class="block">INTERNAL:
Do the appropriate thing for when an exception occurs during SQL issuance.
The default thing to do is to simply mark the transaction to be rolled back,
for those transaction managers that support this, and rethrow the exception.
We hope that the exception will do the trick for those that do not allow
marking rollback.
This method may optionally be overridden by concrete subclass implementations.
Different transaction manager vendors may have different reactions to exceptions
that get signalled during the commit phase of synchronization.</div>
</li>
</ul>
<a name="getTransactionController--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTransactionController</h4>
<pre>protected&nbsp;<a href="../../../../org/eclipse/persistence/transaction/AbstractTransactionController.html" title="class in org.eclipse.persistence.transaction">AbstractTransactionController</a>&nbsp;getTransactionController()</pre>
</li>
</ul>
<a name="setTransactionController-org.eclipse.persistence.transaction.AbstractTransactionController-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setTransactionController</h4>
<pre>protected&nbsp;void&nbsp;setTransactionController(<a href="../../../../org/eclipse/persistence/transaction/AbstractTransactionController.html" title="class in org.eclipse.persistence.transaction">AbstractTransactionController</a>&nbsp;newController)</pre>
</li>
</ul>
<a name="getTransaction--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTransaction</h4>
<pre>protected&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>
</li>
</ul>
<a name="setTransaction-java.lang.Object-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setTransaction</h4>
<pre>protected&nbsp;void&nbsp;setTransaction(<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>
</li>
</ul>
<a name="getTransactionKey--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTransactionKey</h4>
<pre>protected&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()</pre>
</li>
</ul>
<a name="setTransactionKey-java.lang.Object-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setTransactionKey</h4>
<pre>protected&nbsp;void&nbsp;setTransactionKey(<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>
</li>
</ul>
<a name="getSession--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSession</h4>
<pre>protected&nbsp;org.eclipse.persistence.internal.sessions.AbstractSession&nbsp;getSession()</pre>
</li>
</ul>
<a name="setSession-org.eclipse.persistence.internal.sessions.AbstractSession-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setSession</h4>
<pre>protected&nbsp;void&nbsp;setSession(org.eclipse.persistence.internal.sessions.AbstractSession&nbsp;session)</pre>
</li>
</ul>
<a name="getUnitOfWork--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getUnitOfWork</h4>
<pre>protected&nbsp;org.eclipse.persistence.internal.sessions.UnitOfWorkImpl&nbsp;getUnitOfWork()</pre>
</li>
</ul>
<a name="setUnitOfWork-org.eclipse.persistence.internal.sessions.UnitOfWorkImpl-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setUnitOfWork</h4>
<pre>protected&nbsp;void&nbsp;setUnitOfWork(org.eclipse.persistence.internal.sessions.UnitOfWorkImpl&nbsp;unitOfWork)</pre>
</li>
</ul>
<a name="callSequencingCallback--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>callSequencingCallback</h4>
<pre>protected&nbsp;void&nbsp;callSequencingCallback()</pre>
</li>
</ul>
<a name="getSequencingCallback-org.eclipse.persistence.sessions.DatabaseSession-org.eclipse.persistence.internal.sequencing.SequencingCallbackFactory-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getSequencingCallback</h4>
<pre>public&nbsp;org.eclipse.persistence.internal.sequencing.SequencingCallback&nbsp;getSequencingCallback(<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">Return sequencingCallback corresponding to the passed session.</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.1, API Reference</div>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Class</li>
<li><a href="../../../../org/eclipse/persistence/transaction/AbstractTransactionController.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/AbstractSynchronizationListener.html" target="_top">Frames</a></li>
<li><a href="AbstractSynchronizationListener.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>