| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |
| "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
| <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> |
| <head> |
| <meta http-equiv="Content-Type" content="text/html; charset=us-ascii" /> |
| <meta http-equiv="Content-Style-Type" content="text/css" /> |
| <meta http-equiv="Content-Script-Type" content="text/javascript" /> |
| <title>pessimistic-lock | EclipseLink 2.5.x Java Persistence API (JPA) Extensions Reference</title> |
| <meta name="generator" content="Oracle DARB XHTML Converter (Mode = document) - Version 1.0.17" /> |
| <meta name="date" content="2013-10-03T12:33:26Z" /> |
| <meta name="robots" content="noarchive" /> |
| <meta name="doctitle" content="pessimistic-lock" /> |
| <meta name="relnum" content="Release 2.5" /> |
| <link rel="stylesheet" type="text/css" href="../../../dcommon/style.css" media="screen" /> |
| <link rel="copyright" href="http://www.eclipse.org/org/documents/epl-v10.php" title="Copyright" type="text/html" /> |
| <link rel="start" href="../../index.htm" title="Home" type="text/html" /> |
| <link rel="contents" href="toc.htm" title="Contents" type="text/html" /> |
| <link rel="prev" href="q_maintain_cache.htm" title="Previous" type="text/html" /> |
| <link rel="next" href="q_prepare.htm" title="Next" type="text/html" /> |
| <!-- START: Disqus --><script type="text/javascript"> var disqus_developer = 0; </script><!-- END: Disqus --><!-- START: Sharethis --><script type="text/javascript">var switchTo5x=true;</script><script type="text/javascript" src="http://w.sharethis.com/button/buttons.js"></script><script type="text/javascript" src="http://s.sharethis.com/loader.js"></script> <!-- END: Sharethis --></head> |
| <body bgcolor="#FFFFFF"><iframe id="docheader" frameborder="0" framemargin="0" scrolling="no" src="../../../dcommon/header.html"></iframe><script src="http://www.google.com/jsapi" type="text/javascript"></script><script type="text/javascript"> google.load('search', '1', {language : 'en'}); google.setOnLoadCallback(function() { var customSearchOptions = {}; var googleAnalyticsOptions = {}; googleAnalyticsOptions['queryParameter'] = 'q'; googleAnalyticsOptions['categoryParameter'] = ''; customSearchOptions['googleAnalyticsOptions'] = googleAnalyticsOptions; var customSearchControl = new google.search.CustomSearchControl( '016171230611334810008:4sqnhke2any', customSearchOptions); customSearchControl.setResultSetSize(google.search.Search.FILTERED_CSE_RESULTSET); var options = new google.search.DrawOptions(); options.setSearchFormRoot('cse-search-form'); customSearchControl.draw('cse', options); }, true);</script><link rel="stylesheet" href="http://www.google.com/cse/style/look/default.css" type="text/css" /><div id="cse" style="width:100%;"></div> |
| <div class="header"><a id="top" name="top"></a> |
| <table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%"> |
| <tr> |
| <td align="left" valign="top"><div class="booktitle">Java Persistence API (JPA) Extensions Reference for EclipseLink, |
| <b>Release 2.5</b><br /></font></td> |
| <td valign="bottom" align="right" width="144"> |
| <table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%"> |
| <tr> |
| <td> </td> |
| <td align="center" valign="top"><a href="toc.htm"><img src="../../../dcommon/images/contents.png" alt="Go To Table Of Contents" border="0" height="16" width="16" /><br /> |
| </td><td> </td><td align="center"><a href="../../../" target="_top" class="external text" title="Search" rel="nofollow"><img src="../../../dcommon/images/search.png" alt="Search" style="border:0;" /><br /><span class="mini"></span></a></td><td> </td><td align="center"><a href="../../eclipselink_jpa_extensions.pdf" title="PDF" target="_blank"><img src="../../../dcommon/images/pdf_icon.png" style="padding-right:5px;border:0" alt="PDF"></a></td><td align="center"><a href="#disqus_thread" title="Comments""><img src="../../../dcommon/images/comments.png" style="padding-right:5px;border:0" alt="Comments"><br /><span class="mini">Comments</span></a> |
| </tr> |
| </table> |
| </td> |
| </tr> |
| </table> |
| <hr /> |
| <table class="navigation simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100" align="center"> |
| <tr> |
| <td align="center"><a href="q_maintain_cache.htm"><img src="../../../dcommon/images/larrow.png" alt="Previous" border="0" height="16" width="16" /></a></td> |
| <td align="center"><a href="q_prepare.htm"><img src="../../../dcommon/images/rarrow.png" alt="Next" border="0" height="16" width="16" /></a></td> |
| <td> </td> |
| </tr> |
| </table> |
| </div> |
| <!-- class="header" --> |
| <div class="ind"><!-- End Header --><a id="pessimisticlock" name="pessimisticlock"></a><a id="TLJPA668" name="TLJPA668"></a> |
| <hr /> |
| <div class="refsect1"> |
| <h2 class="refsect1"><font face="arial, helvetica, sans-serif" color="#330099">pessimistic-lock</font></h2> |
| <p>Use <code>eclipselink.pessimistic-lock</code> to specify if EclipseLink uses pessimistic locking.</p> |
| <a id="sthref646" name="sthref646"></a> |
| <p><strong><br /><span class="refsubsect">Values</span></strong></p> |
| <p><a href="#CIHDEEDF">Table 4-25</a> describes this query hint's valid values.</p> |
| <div class="tblhruleformalwide"><a id="TLJPA669" name="TLJPA669"></a><a id="sthref647" name="sthref647"></a><a id="CIHDEEDF" name="CIHDEEDF"></a> |
| <p><strong><em><font face="arial, helvetica, sans-serif">Table 4-25 Valid Values for org.eclipse.persistence.config.PessimisticLock</font></em></strong></p> |
| <table class="HRuleFormalWide" title="Valid Values for org.eclipse.persistence.config.PessimisticLock" summary="Valid Values for this query hint" dir="ltr" border="1" width="100%" frame="hsides" rules="rows" cellpadding="3" cellspacing="0"> |
| <col width="29%" /> |
| <col width="*" /> |
| <thead> |
| <tr align="left" valign="top"> |
| <th align="left" valign="bottom" id="r1c1-t36"><font face="Arial, Helvetica, sans-serif"><strong>Value</strong></font></th> |
| <th align="left" valign="bottom" id="r1c2-t36"><font face="Arial, Helvetica, sans-serif"><strong>Description</strong></font></th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr align="left" valign="top"> |
| <td align="left" id="r2c1-t36" headers="r1c1-t36"> |
| <p><code>NoLock</code></p> |
| </td> |
| <td align="left" headers="r2c1-t36 r1c2-t36"> |
| <p>(Default) Do not use pessimistic locking.</p> |
| </td> |
| </tr> |
| <tr align="left" valign="top"> |
| <td align="left" id="r3c1-t36" headers="r1c1-t36"> |
| <p><code>Lock</code></p> |
| </td> |
| <td align="left" headers="r3c1-t36 r1c2-t36"> |
| <p>EclipseLink issues <code>SELECT .... FOR UPDATE</code> statements.</p> |
| </td> |
| </tr> |
| <tr align="left" valign="top"> |
| <td align="left" id="r4c1-t36" headers="r1c1-t36"> |
| <p><code>LockNoWait</code></p> |
| </td> |
| <td align="left" headers="r4c1-t36 r1c2-t36"> |
| <p>EclipseLink issues <code>SELECT .... FOR UPDATE NO WAIT</code> statements.</p> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| <br /></div> |
| <!-- class="tblhruleformalwide" --> |
| <a id="sthref648" name="sthref648"></a> |
| <p><strong><br /><span class="refsubsect">Usage</span></strong></p> |
| <p>The primary advantage of using pessimistic locking is that you are assured, once the lock is obtained, of a successful edit. This is desirable in highly concurrent applications in which optimistic locking may cause too many optimistic locking errors.</p> |
| <p>One drawback of pessimistic locking is that it requires additional database resources, requiring the database transaction and connection to be maintained for the duration of the edit. Pessimistic locking may also cause deadlocks and lead to concurrency issues.</p> |
| <a id="sthref649" name="sthref649"></a> |
| <p><strong><br /><span class="refsubsect">Examples</span></strong></p> |
| <p><a href="#CIHGEJFF">Example 4-50</a> shows how to use this hint in a JPA query.</p> |
| <div class="example"><a id="CIHGEJFF" name="CIHGEJFF"></a><a id="TLJPA670" name="TLJPA670"></a> |
| <p><strong><em><font face="arial, helvetica, sans-serif">Example 4-50 Using pessimistic-lock in a JPA Query</font></em></strong></p> |
| <pre xml:space="preserve" class="oac_no_warn"> |
| import org.eclipse.persistence.config.PessimisticLock; |
| import org.eclipse.persistence.config.QueryHints; |
| query.setHint(QueryHints.PESSIMISTIC_LOCK, PessimisticLock.LockNoWait); |
| </pre></div> |
| <!-- class="example" --> |
| <p><a href="#CIHIAFGH">Example 4-51</a> shows how to use this hint with the <code>@QueryHint</code> annotation.</p> |
| <div class="example"><a id="CIHIAFGH" name="CIHIAFGH"></a><a id="TLJPA671" name="TLJPA671"></a> |
| <p><strong><em><font face="arial, helvetica, sans-serif">Example 4-51 Using pessimistic-lock in a @QueryHint Annotation</font></em></strong></p> |
| <pre xml:space="preserve" class="oac_no_warn"> |
| import org.eclipse.persistence.config.PessimisticLock; |
| import org.eclipse.persistence.config.QueryHints; |
| @QueryHint(name=QueryHints.PESSIMISTIC_LOCK, value=PessimisticLock.LockNoWait); |
| |
| </pre></div> |
| <!-- class="example" --> |
| <a id="sthref650" name="sthref650"></a> |
| <p><strong><br /><span class="refsubsect">See Also</span></strong></p> |
| <p>For more information, see:</p> |
| <ul> |
| <li> |
| <p>EclipseLink Examples<br /> |
| <code><a href="http://wiki.eclipse.org/EclipseLink/Examples/JPA/PessimisticLocking">http://wiki.eclipse.org/EclipseLink/Examples/JPA/PessimisticLocking</a></code></p> |
| </li> |
| <li> |
| <p>"Scaling EclipseLink Applications in Clusters" in <em>Solutions Guide for EclispeLink</em></p> |
| </li> |
| <li> |
| <p>"Understanding Queries" in <em>Understanding EclipseLink</em></p> |
| </li> |
| <li> |
| <p>"Building Blocks of a EclipseLink Project" in <em>Understanding EclipseLink</em></p> |
| </li> |
| </ul> |
| </div> |
| <!-- class="refsect1" --></div> |
| <!-- class="ind" --> |
| <!-- Start Footer --> |
| <div class="footer"> |
| <hr /> |
| <table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%"> |
| <col width="33%" /> |
| <col width="*" /> |
| <col width="33%" /> |
| <tr> |
| <td valign="bottom"> |
| <table class="navigation simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100" align="center"> |
| <col width="*" /> |
| <col width="48%" /> |
| <col width="48%" /> |
| <tr> |
| <td> </td> |
| <td align="center"><a href="q_maintain_cache.htm"><img src="../../../dcommon/images/larrow.png" alt="Previous" border="0" height="16" width="16" /></a></td> |
| <td align="center"><a href="q_prepare.htm"><img src="../../../dcommon/images/rarrow.png" alt="Next" border="0" height="16" width="16" /></a></td> |
| </tr> |
| </table> |
| </td> |
| <td align="center" width="34%"><a href="http://www.eclipse.org/eclipselink/" title="EclipseLink home"><img src="../../../dcommon/images/ellogo.png" alt="EclipseLink" width="150" border="0" /></a><br /> |
| </td> |
| |
| <td valign="bottom" align="right"> |
| <table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="225"> |
| <tr> |
| <td> </td> |
| <td align="center" valign="top"><a href="toc.htm"><img src="../../../dcommon/images/contents.png" alt="Go To Table Of Contents" border="0" height="16" width="16" /><br /> |
| </td><td> </td><td align="center"><a href="../../../" target="_top" class="external text" title="Search" rel="nofollow"><img src="../../../dcommon/images/search.png" alt="Search" style="border:0;" /><br /><span class="mini"></span></a></td><td> </td><td align="center"><a href="../../eclipselink_jpa_extensions.pdf" title="PDF" target="_blank"><img src="../../../dcommon/images/pdf_icon.png" style="padding-right:5px;border:0" alt="PDF"></a></td><td align="center"><a href="#disqus_thread" title="Comments""><img src="../../../dcommon/images/comments.png" style="padding-right:5px;border:0" alt="Comments"><br /><span class="mini">Comments</span></a> |
| </tr> |
| </table> |
| </td> |
| </tr> |
| </table> |
| </div> |
| <!-- class="footer" --> |
| <div id="copyright">Copyright © 2012 by The Eclipse Foundation under the <a href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License (EPL)</a><br /> <script type="text/javascript">var LastUpdated = document.lastModified;document.writeln ("Updated: " + LastUpdated);</script> </div><!-- START: Analytics --><script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-1608008-2']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); </script><!-- END: Analytics --><!-- START: Sharethis --><script>var options={ "publisher": "e2fe9e07-fab6-4f84-83ea-0991b429842c", "position": "right", "ad": { "visible": false, "openDelay": 5, "closeDelay": 0}};var st_hover_widget = new sharethis.widgets.hoverbuttons(options);</script><!-- END: Sharethis --></body> |
| </html> |