blob: 676cb13d9c294420b5c45016b1a2c2cd4681cae6 [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>
<title>TransactionAttributeType</title>
<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="TransactionAttributeType";
}
}
catch(err) {
}
//-->
var methods = {"i0":9,"i1":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static 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>
<div class="subNav">
<ul class="navList">
<li><a href="../../jakarta/ejb/TransactionAttribute.html" title="annotation in jakarta.ejb"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../jakarta/ejb/TransactionManagement.html" title="annotation in jakarta.ejb"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../index.html?jakarta/ejb/TransactionAttributeType.html" target="_top">Frames</a></li>
<li><a href="TransactionAttributeType.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="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
<li>Field&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">jakarta.ejb</div>
<h2 title="Enum TransactionAttributeType" class="title">Enum TransactionAttributeType</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>java.lang.Enum&lt;<a href="../../jakarta/ejb/TransactionAttributeType.html" title="enum in jakarta.ejb">TransactionAttributeType</a>&gt;</li>
<li>
<ul class="inheritance">
<li>jakarta.ejb.TransactionAttributeType</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd>java.io.Serializable, java.lang.Comparable&lt;<a href="../../jakarta/ejb/TransactionAttributeType.html" title="enum in jakarta.ejb">TransactionAttributeType</a>&gt;</dd>
</dl>
<hr>
<br>
<pre>public enum <span class="typeNameLabel">TransactionAttributeType</span>
extends java.lang.Enum&lt;<a href="../../jakarta/ejb/TransactionAttributeType.html" title="enum in jakarta.ejb">TransactionAttributeType</a>&gt;</pre>
<div class="block">The enum <code>TransactionAttributeType</code> is used with the <code>TransactionAttribute</code> annotation to
specify whether the methods of a session bean or message driven bean are called with a valid transaction context.
<p>
For a message-driven bean's message listener methods (or interface), only the <code>REQUIRED</code> and
<code>NOT_SUPPORTED</code> values may be used.
<p>
For an enterprise bean's timeout callback methods, only the <code>REQUIRED</code>, <code>REQUIRES_NEW</code> and
<code>NOT_SUPPORTED</code> values may be used.
<p>
For a session bean's asynchronous business methods, only the <code>REQUIRED</code>, <code>REQUIRES_NEW</code>, and
<code>NOT_SUPPORTED</code> values may be used.
<p>
For a singleton session bean's <code>PostConstruct</code> and <code>PreDestroy</code> lifecycle callback interceptor
methods, only the <code>REQUIRED</code>, <code>REQUIRES_NEW</code>, and <code>NOT_SUPPORTED</code> values may be
used.
<p>
If an enterprise bean implements the <code>SessionSynchronization</code> interface or uses any of the session
synchronization annotations, only the following values may be used for the transaction attributes of the bean's
methods: <code>REQUIRED</code>, <code>REQUIRES_NEW</code>, <code>MANDATORY</code>.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>EJB 3.0</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../jakarta/ejb/TransactionAttribute.html" title="annotation in jakarta.ejb"><code>TransactionAttribute</code></a></dd>
<dt><span class="simpleTagLabel">Examples (en):</span></dt>
<dd><a href="../../../../../tomee-9.0/examples/testing-transactions.html">testing-transactions</a>, <a href="../../../../../tomee-9.0/examples/testing-security.html">testing-security</a>, <a href="../../../../../tomee-9.0/examples/testing-security-meta.html">testing-security-meta</a>, <a href="../../../../../tomee-9.0/examples/testing-security-4.html">testing-security-4</a>, <a href="../../../../../tomee-9.0/examples/testing-security-3.html">testing-security-3</a>, <a href="../../../../../tomee-9.0/examples/testing-security-2.html">testing-security-2</a>, <a href="../../../../../tomee-9.0/examples/testcase-injection.html">testcase-injection</a>, <a href="../../../../../tomee-9.0/examples/reload-persistence-unit-properties.html">reload-persistence-unit-properties</a>, <a href="../../../../../tomee-9.0/examples/polling-parent.html">polling-parent</a>, <a href="../../../../../tomee-9.0/examples/movies-complete.html">movies-complete</a>, <a href="../../../../../tomee-9.0/examples/movies-complete-meta.html">movies-complete-meta</a>, <a href="../../../../../tomee-9.0/examples/moviefun.html">moviefun</a>, <a href="../../../../../tomee-9.0/examples/dynamic-datasource-routing.html">dynamic-datasource-routing</a>, <a href="../../../../../tomee-9.0/examples/connector-war.html">connector-war</a>, <a href="../../../../../tomee-9.0/examples/arquillian-jpa.html">arquillian-jpa</a>, <a href="../../../../../tomee-9.0/examples/application-composer.html">application-composer</a>, <a href="../../../../../tomee-9.0/examples/alternate-descriptors.html">alternate-descriptors</a></dd>
<dt><span class="simpleTagLabel">Examples (es):</span></dt>
<dd><a href="../../../../../tomee-9.0/es/examples/arquillian-jpa.html">arquillian-jpa</a>, <a href="../../../../../tomee-9.0/es/examples/alternate-descriptors.html">alternate-descriptors</a></dd>
<dt><span class="simpleTagLabel">Examples (pt):</span></dt>
<dd><a href="../../../../../tomee-9.0/pt/examples/testing-security.html">testing-security</a>, <a href="../../../../../tomee-9.0/pt/examples/dynamic-datasource-routing.html">dynamic-datasource-routing</a>, <a href="../../../../../tomee-9.0/pt/examples/arquillian-jpa.html">arquillian-jpa</a>, <a href="../../../../../tomee-9.0/pt/examples/application-composer.html">application-composer</a>, <a href="../../../../../tomee-9.0/pt/examples/alternate-descriptors.html">alternate-descriptors</a></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== ENUM CONSTANT SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="enum.constant.summary">
<!-- -->
</a>
<h3>Enum Constant Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation">
<caption><span>Enum Constants</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Enum Constant and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../jakarta/ejb/TransactionAttributeType.html#MANDATORY">MANDATORY</a></span></code>
<div class="block">If a client invokes the enterprise bean's method while the client is associated with a transaction context, the
container invokes the enterprise bean's method in the client's transaction context.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../jakarta/ejb/TransactionAttributeType.html#NEVER">NEVER</a></span></code>
<div class="block">The client is required to call without a transaction context, otherwise an exception is thrown.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../jakarta/ejb/TransactionAttributeType.html#NOT_SUPPORTED">NOT_SUPPORTED</a></span></code>
<div class="block">The container invokes an enterprise bean method whose transaction attribute <code>NOT_SUPPORTED</code> with an
unspecified transaction context.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../jakarta/ejb/TransactionAttributeType.html#REQUIRED">REQUIRED</a></span></code>
<div class="block">If a client invokes the enterprise bean's method while the client is associated with a transaction context, the
container invokes the enterprise bean's method in the client's transaction context.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../jakarta/ejb/TransactionAttributeType.html#REQUIRES_NEW">REQUIRES_NEW</a></span></code>
<div class="block">The container must invoke an enterprise bean method whose transaction attribute is set to <code>REQUIRES_NEW</code>
with a new transaction context.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../jakarta/ejb/TransactionAttributeType.html#SUPPORTS">SUPPORTS</a></span></code>
<div class="block">If the client calls with a transaction context, the container performs the same steps as described in the
<code>REQUIRED</code> case.</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="t1" class="tableTab"><span><a href="javascript:show(1);">Static 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>static <a href="../../jakarta/ejb/TransactionAttributeType.html" title="enum in jakarta.ejb">TransactionAttributeType</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/ejb/TransactionAttributeType.html#valueOf-java.lang.String-">valueOf</a></span>(java.lang.String&nbsp;name)</code>
<div class="block">Returns the enum constant of this type with the specified name.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>static <a href="../../jakarta/ejb/TransactionAttributeType.html" title="enum in jakarta.ejb">TransactionAttributeType</a>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/ejb/TransactionAttributeType.html#values--">values</a></span>()</code>
<div class="block">Returns an array containing the constants of this enum type, in
the order they are declared.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Enum</h3>
<code>clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>getClass, notify, notifyAll, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ ENUM CONSTANT DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="enum.constant.detail">
<!-- -->
</a>
<h3>Enum Constant Detail</h3>
<a name="MANDATORY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MANDATORY</h4>
<pre>public static final&nbsp;<a href="../../jakarta/ejb/TransactionAttributeType.html" title="enum in jakarta.ejb">TransactionAttributeType</a> MANDATORY</pre>
<div class="block">If a client invokes the enterprise bean's method while the client is associated with a transaction context, the
container invokes the enterprise bean's method in the client's transaction context.
<p>
If there is no existing transaction, an exception is thrown.</div>
</li>
</ul>
<a name="REQUIRED">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>REQUIRED</h4>
<pre>public static final&nbsp;<a href="../../jakarta/ejb/TransactionAttributeType.html" title="enum in jakarta.ejb">TransactionAttributeType</a> REQUIRED</pre>
<div class="block">If a client invokes the enterprise bean's method while the client is associated with a transaction context, the
container invokes the enterprise bean's method in the client's transaction context.
<p>
If the client invokes the enterprise bean's method while the client is not associated with a transaction context, the
container automatically starts a new transaction before delegating a method call to the enterprise bean method.</div>
</li>
</ul>
<a name="REQUIRES_NEW">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>REQUIRES_NEW</h4>
<pre>public static final&nbsp;<a href="../../jakarta/ejb/TransactionAttributeType.html" title="enum in jakarta.ejb">TransactionAttributeType</a> REQUIRES_NEW</pre>
<div class="block">The container must invoke an enterprise bean method whose transaction attribute is set to <code>REQUIRES_NEW</code>
with a new transaction context.
<p>
If the client invokes the enterprise bean's method while the client is not associated with a transaction context, the
container automatically starts a new transaction before delegating a method call to the enterprise bean business
method.
<p>
If a client calls with a transaction context, the container suspends the association of the transaction context with
the current thread before starting the new transaction and invoking the method. The container resumes the suspended
transaction association after the method and the new transaction have been completed.</div>
</li>
</ul>
<a name="SUPPORTS">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>SUPPORTS</h4>
<pre>public static final&nbsp;<a href="../../jakarta/ejb/TransactionAttributeType.html" title="enum in jakarta.ejb">TransactionAttributeType</a> SUPPORTS</pre>
<div class="block">If the client calls with a transaction context, the container performs the same steps as described in the
<code>REQUIRED</code> case.
<p>
If the client calls without a transaction context, the container performs the same steps as described in the
<code>NOT_SUPPORTED</code> case.
<p>
The <code>SUPPORTS</code> transaction attribute must be used with caution. This is because of the different
transactional semantics provided by the two possible modes of execution. Only enterprise beans that will execute
correctly in both modes should use the <code>SUPPORTS</code> transaction attribute.</div>
</li>
</ul>
<a name="NOT_SUPPORTED">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>NOT_SUPPORTED</h4>
<pre>public static final&nbsp;<a href="../../jakarta/ejb/TransactionAttributeType.html" title="enum in jakarta.ejb">TransactionAttributeType</a> NOT_SUPPORTED</pre>
<div class="block">The container invokes an enterprise bean method whose transaction attribute <code>NOT_SUPPORTED</code> with an
unspecified transaction context.
<p>
If a client calls with a transaction context, the container suspends the association of the transaction context with
the current thread before invoking the enterprise bean's business method. The container resumes the suspended
association when the business method has completed.</div>
</li>
</ul>
<a name="NEVER">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>NEVER</h4>
<pre>public static final&nbsp;<a href="../../jakarta/ejb/TransactionAttributeType.html" title="enum in jakarta.ejb">TransactionAttributeType</a> NEVER</pre>
<div class="block">The client is required to call without a transaction context, otherwise an exception is thrown.</div>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="values--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>values</h4>
<pre>public static&nbsp;<a href="../../jakarta/ejb/TransactionAttributeType.html" title="enum in jakarta.ejb">TransactionAttributeType</a>[]&nbsp;values()</pre>
<div class="block">Returns an array containing the constants of this enum type, in
the order they are declared. This method may be used to iterate
over the constants as follows:
<pre>
for (TransactionAttributeType c : TransactionAttributeType.values())
&nbsp; System.out.println(c);
</pre></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an array containing the constants of this enum type, in the order they are declared</dd>
</dl>
</li>
</ul>
<a name="valueOf-java.lang.String-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>valueOf</h4>
<pre>public static&nbsp;<a href="../../jakarta/ejb/TransactionAttributeType.html" title="enum in jakarta.ejb">TransactionAttributeType</a>&nbsp;valueOf(java.lang.String&nbsp;name)</pre>
<div class="block">Returns the enum constant of this type with the specified name.
The string must match <i>exactly</i> an identifier used to declare an
enum constant in this type. (Extraneous whitespace characters are
not permitted.)</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - the name of the enum constant to be returned.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the enum constant with the specified name</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if this enum type has no constant with the specified name</dd>
<dd><code>java.lang.NullPointerException</code> - if the argument is null</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../index-all.html">Index</a></li>
<li><a href="../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../jakarta/ejb/TransactionAttribute.html" title="annotation in jakarta.ejb"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../jakarta/ejb/TransactionManagement.html" title="annotation in jakarta.ejb"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../index.html?jakarta/ejb/TransactionAttributeType.html" target="_top">Frames</a></li>
<li><a href="TransactionAttributeType.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="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>