blob: 0ae31703d17ffb5f74383349c8941b098f1d8505 [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="../../javax/ejb/TransactionAttribute.html" title="annotation in javax.ejb"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../javax/ejb/TransactionManagement.html" title="annotation in javax.ejb"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../index.html?javax/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">javax.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="../../javax/ejb/TransactionAttributeType.html" title="enum in javax.ejb">TransactionAttributeType</a>&gt;</li>
<li>
<ul class="inheritance">
<li>javax.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="../../javax/ejb/TransactionAttributeType.html" title="enum in javax.ejb">TransactionAttributeType</a>&gt;</dd>
</dl>
<hr>
<br>
<pre>public enum <span class="typeNameLabel">TransactionAttributeType</span>
extends java.lang.Enum&lt;<a href="../../javax/ejb/TransactionAttributeType.html" title="enum in javax.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="../../javax/ejb/TransactionAttribute.html" title="annotation in javax.ejb"><code>TransactionAttribute</code></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="../../javax/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="../../javax/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="../../javax/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="../../javax/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="../../javax/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="../../javax/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="../../javax/ejb/TransactionAttributeType.html" title="enum in javax.ejb">TransactionAttributeType</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/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="../../javax/ejb/TransactionAttributeType.html" title="enum in javax.ejb">TransactionAttributeType</a>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/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="../../javax/ejb/TransactionAttributeType.html" title="enum in javax.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="../../javax/ejb/TransactionAttributeType.html" title="enum in javax.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="../../javax/ejb/TransactionAttributeType.html" title="enum in javax.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="../../javax/ejb/TransactionAttributeType.html" title="enum in javax.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="../../javax/ejb/TransactionAttributeType.html" title="enum in javax.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="../../javax/ejb/TransactionAttributeType.html" title="enum in javax.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="../../javax/ejb/TransactionAttributeType.html" title="enum in javax.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="../../javax/ejb/TransactionAttributeType.html" title="enum in javax.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="../../javax/ejb/TransactionAttribute.html" title="annotation in javax.ejb"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../javax/ejb/TransactionManagement.html" title="annotation in javax.ejb"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../index.html?javax/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>