<!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>About Cache Architecture | EclipseLink 2.6.x Understanding EclipseLink</title>
<meta name="generator" content="Oracle DARB XHTML Converter (Mode = document) - Version 1.0.22 Build 1" />
<meta name="date" content="2014-06-10T10:39:53Z" />
<meta name="robots" content="noarchive" />
<meta name="doctitle" content="About Cache Architecture" />
<meta name="relnum" content="2.6" />
<link rel="stylesheet" type="text/css" href="../../dcommon/style.css" media="screen" />
<link rel="copyright" href="../../dcommon/html/cpyr.htm" 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="cache.htm" title="Previous" type="text/html" />
<link rel="next" href="cache002.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:mdbgdwjv8zu', 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">Understanding EclipseLink, 
<b>2.6</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>&nbsp;</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>&nbsp;</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>&nbsp;</td><td align="center"><a href="../eclipselink_otlcg.pdf" title="PDF" target="_blank"><img src="../../dcommon/images/pdf_icon.png" style="padding-right:5px;border:0" alt="PDF"></a></td>
</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="cache.htm"><img src="../../dcommon/images/larrow.png" alt="Previous" border="0" height="16" width="16" /></a></td>
<td align="center"><a href="cache002.htm"><img src="../../dcommon/images/rarrow.png" alt="Next" border="0" height="16" width="16" /></a></td>
<td>&nbsp;</td>
</tr>
</table>
</div>
<!-- class="header" -->
<div class="ind"><!-- End Header --><a id="CHECCJJD" name="CHECCJJD"></a><a id="OTLCG93795" name="OTLCG93795"></a>
<div class="sect1"><!-- infolevel="all" infotype="General" -->
<h1 class="sect1"><font face="arial, helvetica, sans-serif" color="#330099">About Cache Architecture</font></h1>
<p>EclipseLink uses two types of cache: the shared <strong>persistence unit cache</strong> (L2) maintains objects retrieved from and written to the data source; and the isolated <strong>persistence context cache</strong> (L1) holds objects while they participate in transactions. When a persistence context (entity manager) successfully commits to the data source, EclipseLink updates the persistence unit cache accordingly. Conceptually the persistence context cache is represented by the <code>EntityManager</code> and the persistence unit cache is represented by the <code>EntityManagerFactory</code>.</p>
<p>Internally, EclipseLink stores the persistence unit cache on a EclipseLink session, and the persistence context cache on a EclipseLink persistence unit. As <a href="#i1129035">Figure 8-1</a> shows, the persistence unit (session) cache and the persistence context (unit of work) cache work together with the data source connection to manage objects in a EclipseLink application.</p>
<p>Read requests from the database are sent to the persistence unit (session) cache in EclipseLink session. Write requests from the database are sent to the EclipseLink persistence context (unit of work) cache. The persistence unit (session) cache registers objects with the persistence context. During a commit or merge transaction, the persistence context cache refreshes the persistence unit cache. The object life cycle relies on these mechanisms.</p>
<div class="figure"><a id="i1129035" name="i1129035"></a><a id="OTLCG93796" name="OTLCG93796"></a>
<p><strong><em><font face="arial, helvetica, sans-serif">Figure 8-1 Object Life Cycle and the EclipseLink Caches</font></em></strong></p>
<img src="img/cacharch.gif" alt="Description of Figure 8-1 follows" title="Description of Figure 8-1 follows" longdesc="img_text/cacharch.htm" /><br />
<a id="sthref54" name="sthref54" href="img_text/cacharch.htm">Description of "Figure 8-1 Object Life Cycle and the EclipseLink Caches"</a><br />
<br /></div>
<!-- class="figure" -->
<a id="CACHIFGC" name="CACHIFGC"></a><a id="OTLCG93797" name="OTLCG93797"></a>
<div class="sect2">
<h2 class="sect2"><font face="arial, helvetica, sans-serif" color="#330099">Persistence Unit Cache</font></h2>
<p>The persistence unit cache is a shared cache (L2) that services clients attached to a given persistence unit. When you read objects from or write objects to the data source using an <code>EntityManager</code> object, EclipseLink saves a copy of the objects in the persistence unit's cache and makes them accessible to all other processes accessing the same persistence unit.</p>
<p>EclipseLink adds objects to the persistence unit cache from the following:</p>
<ul>
<li>
<p>The data store, when EclipseLink executes a read operation</p>
</li>
<li>
<p>The persistence context cache, when a persistence context successfully commits a transaction</p>
</li>
</ul>
<p>EclipseLink defines three cache isolation levels: Isolated, Shared, and Protected. For more information on these levels, see <a href="#CDEEGICF">Shared, Isolated, Protected, Weak, and Read-only Caches.</a></p>
<p>There is a separate persistence unit cache for each unique persistence unit name. Although the cache is conceptually stored with the <code>EntityManagerFactory</code>, two factories with the same persistence unit name will share the same cache (and effectively be the same persistence unit instance). If the same persistence unit is deployed in two separate applications in Java EE, their full persistence unit name will normally still be unique, and they will use separate caches. Certain persistence unit properties, such as data-source, database URL, user, and tenant id can affect the unique name of the persistence unit, and result in separate persistence unit instances and separate caches. The <code>eclipselink.session.name</code> persistence unit property can be used to force two persistence units to resolve to the same instance and share a cache.</p>
</div>
<!-- class="sect2" -->
<a id="OTLCG93798" name="OTLCG93798"></a>
<div class="sect2"><a id="sthref55" name="sthref55"></a>
<h2 class="sect2"><font face="arial, helvetica, sans-serif" color="#330099">Persistence Context Cache</font></h2>
<p>The persistence context cache is an isolated cache (L1) that services operations within an EntityManager. It maintains and isolates objects from the persistence unit cache, and writes changed or new objects to the persistence unit cache after the persistence context commits changes to the data source.</p>
<div align="center">
<div class="inftblnote"><br />
<table class="Note oac_no_warn" summary="" border="1" width="80%" frame="hsides" rules="groups" cellpadding="3" cellspacing="0">
<tbody>
<tr>
<td align="left">
<p class="note"><img src="../../dcommon/images/note_icon.png" width="16" height="16" alt="Note" style="vertical-align:middle;padding-right:5px;" />Note:</p>
<p>Only committed changes are merged into the shared persistence unit cache, flush or other operations do not affect the persistence unit cache until the transaction is committed.</p>
</td>
</tr>
</tbody>
</table>
<br /></div>
<!-- class="inftblnote" --></div>
<p>The life-cycle for the persistence context cache differs between application managed, and container managed persistence contexts. The persistence context (unit of work) cache services operations within the persistence unit. It maintains and isolates objects from the persistence context (session) cache, and writes changed or new objects to the persistence context cache after the persistence unit commits changes to the data source.</p>
<a id="OTLCG94324" name="OTLCG94324"></a>
<div class="sect3"><a id="sthref56" name="sthref56"></a>
<h3 class="sect3"><font face="arial, helvetica, sans-serif" color="#330099">Application Managed Persistence Contexts</font></h3>
<p>An application managed persistence context is created by the application from an <code>EntityManagerFactory</code>. The application managed persistence context's cache will remain until the <code>EntityManager</code> is closed or <code>clear()</code> is called. It is important to keep application managed persistence units short lived, or to make use of <code>clear()</code> to avoid the persistence context cache from growing too big, or from becoming out of sync with the persistence unit cache and the database. Typically a separate <code>EntityManager</code> should be created for each transaction or request.</p>
<p>An extended persistence context has the same caching behavior as an application managed persistence context, even if it is managed by the container.</p>
<p>EclipseLink also supports a <code>WEAK</code> reference mode option for long lived persistence contexts, such as two-tier applications. See <a href="#CDEJAHDJ">Weak Reference Mode.</a></p>
</div>
<!-- class="sect3" -->
<a id="OTLCG94325" name="OTLCG94325"></a>
<div class="sect3"><a id="sthref57" name="sthref57"></a>
<h3 class="sect3"><font face="arial, helvetica, sans-serif" color="#330099">Container Managed Persistence Contexts</font></h3>
<p>A container managed persistence context is typically injected into a <code>SessionBean</code> or other managed object by a Java EE container, or frameworks such as Spring. The container managed persistence context's cache will only remain for the duration of the transaction. Entities read in a transaction will become detached after the completion of the transaction and will require merging or editing in subsequent transactions.</p>
<div align="center">
<div class="inftblnote"><br />
<table class="Note oac_no_warn" summary="" border="1" width="80%" frame="hsides" rules="groups" cellpadding="3" cellspacing="0">
<tbody>
<tr>
<td align="left">
<p class="note"><img src="../../dcommon/images/note_icon.png" width="16" height="16" alt="Note" style="vertical-align:middle;padding-right:5px;" />Note:</p>
<p>EclipseLink supports accessing an entity's LAZY relationships after the persistence context has been closed.</p>
</td>
</tr>
</tbody>
</table>
<br /></div>
<!-- class="inftblnote" --></div>
</div>
<!-- class="sect3" --></div>
<!-- class="sect2" -->
<a id="CDEEGICF" name="CDEEGICF"></a><a id="OTLCG94326" name="OTLCG94326"></a>
<div class="sect2">
<h2 class="sect2"><font face="arial, helvetica, sans-serif" color="#330099">Shared, Isolated, Protected, Weak, and Read-only Caches</font></h2>
<p>EclipseLink defines three cache isolation levels. The cache isolation level defines how caching for an entity is performed by the persistence unit and the persistence context. The cache isolation levels can be set with the <code>isolation</code> attribute on the <code>@Cache</code> annotation. the possible values of the isolation attribute are:</p>
<ul>
<li>
<p><code>isolated</code>&mdash;entities are only cached in the persistence context, not in the persistence unit. See <a href="#CDEBIHCH">Isolated Cache.</a></p>
</li>
<li>
<p><code>shared</code>&mdash;entities are cached both in the persistence context and persistence unit, read-only entities are shared and only cached in the persistence unit. See <a href="#CDEEIBAC">Shared Cache.</a></p>
</li>
<li>
<p><code>protected</code>&mdash;entities are cached both in the persistence context and persistence unit, read-only entities are isolated and cached in the persistence unit and persistence context. See <a href="#CDEHCDJD">Protected Cache.</a></p>
</li>
</ul>
<a id="CDEBIHCH" name="CDEBIHCH"></a><a id="OTLCG94327" name="OTLCG94327"></a>
<div class="sect3">
<h3 class="sect3"><font face="arial, helvetica, sans-serif" color="#330099">Isolated Cache</font></h3>
<p>The isolated cache (L1) is the cache stored in the persistence context. It is a transactional or user session based cache. Setting the cache isolation to <code>isolated</code> for an entity disables its shared cache. With an isolated cache all queries and find operations will access the database unless the object has already been read into the persistence context and refreshing is not used.</p>
<p>Use a isolated cache to do the following:</p>
<ul>
<li>
<p>avoid caching highly volatile data in the shared cache</p>
</li>
<li>
<p>achieve serializable transaction isolation</p>
</li>
</ul>
<p>Each persistence context owns an initially empty isolated cache. The persistence context's isolated cache is discarded when the persistence context is closed, or the <code>EntityManager.clear()</code> operation is used.</p>
<p>When you use an <code>EntityManager</code> to read an isolated entity, the <code>EntityManager</code> reads the entity directly from the database and stores it in the persistence context's isolated cache. When you read a read-only entity it is still stored in the isolated cache, but is not change tracked.</p>
<p>The persistence context can access the database using a connection pool or an exclusive connection. The persistence unit property <code>eclipselink.jdbc.exclusive-connection.mode</code> can be used to use an exclusive connection. Using an exclusive connection provides improved user-based security for reads and writes. Specific queries can also be configured to use the persistence context's exclusive connection.</p>
<div align="center">
<div class="inftblnote"><br />
<table class="Note oac_no_warn" summary="" border="1" width="80%" frame="hsides" rules="groups" cellpadding="3" cellspacing="0">
<tbody>
<tr>
<td align="left">
<p class="note"><img src="../../dcommon/images/note_icon.png" width="16" height="16" alt="Note" style="vertical-align:middle;padding-right:5px;" />Note:</p>
<p>If an <code>EntityManager</code> contains an exclusive connection, you must close the <code>EntityManager</code> when you are finished using it. We do not recommend relying on the finalizer to release the connection when the <code>EntityManager</code> is garbage-collected. If you are using a managed persistence context, then you do not need to close it.</p>
</td>
</tr>
</tbody>
</table>
<br /></div>
<!-- class="inftblnote" --></div>
</div>
<!-- class="sect3" -->
<a id="CDEEIBAC" name="CDEEIBAC"></a><a id="OTLCG94328" name="OTLCG94328"></a>
<div class="sect3">
<h3 class="sect3"><font face="arial, helvetica, sans-serif" color="#330099">Shared Cache</font></h3>
<p>The shared cache (L2) is the cache stored in the persistence unit. It is a shared object cache for the entire persistence unit. Setting the cache isolation to <code>shared</code> for an entity enables its shared cache. With a shared cache queries and find operations will resolve against the shared cache unless refreshing is used.</p>
<p>Use a shared cache to do the following:</p>
<ul>
<li>
<p>improve performance by avoiding database access when finding or querying an entity by Id or index;</p>
</li>
<li>
<p>improve performance by avoiding database access when accessing an entity's relationships;</p>
</li>
<li>
<p>preserve object identity across persistence contexts for read-only entities.</p>
</li>
</ul>
<p>When you use an <code>EntityManager</code> to find a shared entity, the <code>EntityManager</code> first checks the persistence unit's shared cache. If the entity is not in the persistence unit's shared cache, it will be read from the database and stored in the persistence unit's shared cache, a copy will also be stored in the persistence context's isolated cache. Any query not by Id, and not by an indexed attribute will first access the database. For each query result row, if the object is already in the shared cache, the shared object (with its relationships) will be used, otherwise a new object will be built from the row and put into the shared cache, and a copy will be put into the isolated cache. The isolated copy is always returned, unless read-only is used. For read-only the shared object is returned as the isolated copy is not required.</p>
<p>The size and memory usage of the shared cache depends on the entities cache type. attributes on the <code>@Cache</code> annotation can also be used to invalidate or clear the cache.</p>
</div>
<!-- class="sect3" -->
<a id="CDEHCDJD" name="CDEHCDJD"></a><a id="OTLCG94329" name="OTLCG94329"></a>
<div class="sect3">
<h3 class="sect3"><font face="arial, helvetica, sans-serif" color="#330099">Protected Cache</font></h3>
<p>The protected cache option allows for shared objects to reference isolated objects. Setting the cache isolation to <code>protected</code> for an entity enables its shared cache. The protected option is mostly the same as the shared option, except that protected entities can have relationships to isolated entities, whereas shared cannot.</p>
<p>Use a protected cache to do the following:</p>
<ul>
<li>
<p>improve performance by avoiding database access when finding or querying an entity by Id or index</p>
</li>
<li>
<p>improve performance by avoiding database access when accessing an entity's relationships to shared entities</p>
</li>
<li>
<p>ensure read-only entities are isolated to the persistence context</p>
</li>
<li>
<p>allow relationships to isolated entities</p>
</li>
</ul>
<p>Protected entities have the same life-cycle as shared entities, except for relationships, and read-only. Protected entities relationships to shared entities are cached in the shared cache, but their relationships to isolated entities are isolated and not cached in the shared cache. The <code>@Noncacheable</code> annotation can also be used to disable caching of a relationship to shared entities. Protected entities that are read-only are always copied into the isolated cache, but are not change tracked.</p>
</div>
<!-- class="sect3" -->
<a id="CDEJAHDJ" name="CDEJAHDJ"></a><a id="OTLCG94330" name="OTLCG94330"></a>
<div class="sect3">
<h3 class="sect3"><font face="arial, helvetica, sans-serif" color="#330099">Weak Reference Mode</font></h3>
<p>EclipseLink offers a specialized persistence context cache for long-lived persistence contexts. Normally it is best to keep persistence contexts short-lived, such as creating a new <code>EntityManager</code> per request, or per transaction. This is referred to as a stateless model. This ensures the persistence context does not become too big, causing memory and performance issues. It also ensures the objects cached in the persistence context do not become stale or out of sync with their committed state.</p>
<p>Some two-tier applications, or stateful models require long-lived persistence contexts. EclipseLink offers a special weak reference mode option for these types of applications. A weak reference mode maintains weak references to the objects in the persistence context. This allows the objects to garbage-collected if not referenced by the application. This helps prevent the persistence context from becoming too big, reducing memory usage and improving performance. Any new, removed or changed objects will be held with strong references until a commit occurs.</p>
<p>A weak reference mode can be configured through the <code>eclipselink.persistence-context.reference-mode</code> persistence unit property. The following options can be used:</p>
<ul>
<li>
<p><code>HARD</code>&mdash;This is the default, weak references are not used. The persistence context will grow until cleared or closed.</p>
</li>
<li>
<p><code>WEAK</code>&mdash;Weak references are used. Unreferenced unchanged objects will be eligible for garbage collection. Objects that use deferred change tracking will not be eligible for garbage collection.</p>
</li>
<li>
<p><code>FORCE_WEAK</code>&mdash;Weak references are used. Unreferenced, unchanged objects will be eligible for garbage collection. Changed (but unreferenced) objects that use deferred change tracking will also be eligible for garbage collection, causing any changes to be lost.</p>
</li>
</ul>
</div>
<!-- class="sect3" -->
<a id="OTLCG94331" name="OTLCG94331"></a>
<div class="sect3"><a id="sthref58" name="sthref58"></a>
<h3 class="sect3"><font face="arial, helvetica, sans-serif" color="#330099">Read-Only Entities</font></h3>
<p>An entity can be configured as read-only using the <code>@ReadOnly</code> annotation or the <code>read-only</code> XML attribute. A read-only entity will not be tracked for changes and any updates will be ignored. Read-only entities cannot be persisted or removed. A read-only entity must not be modified, but EclipseLink does not currently enforce this. Modification to read-only objects can corrupt the persistence unit cache.</p>
<p>Queries can also be configured to return read-only objects using the <code>eclipselink.read-only</code> query hint.</p>
<p>A <code>shared</code> entity that is read-only will return the shared instance from queries. The same entity will be returned from all queries from all persistence contexts. Shared read-only entities will never be copied or isolated in the persistence context. This improves performance by avoiding the cost of copying the object, and tracking the object for changes. This both reduces memory, reduces heap usage, and improves performance. Object identity is also maintained across the entire persistence unit for read-only entities, allowing the application to hold references to these shared objects.</p>
<p>An <code>isolated</code> or <code>protected</code> entity that is read-only will still have an isolated copy returned from the persistence context. This gives some improvement in performance and memory usage because it does not track the object for changes, but it is not as significant as <code>shared</code> entities.</p>
</div>
<!-- class="sect3" --></div>
<!-- class="sect2" --></div>
<!-- class="sect1" --></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>&nbsp;</td>
<td align="center"><a href="cache.htm"><img src="../../dcommon/images/larrow.png" alt="Previous" border="0" height="16" width="16" /></a></td>
<td align="center"><a href="cache002.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 valign="bottom" align="right">
<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="225">
<tr>
<td>&nbsp;</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>&nbsp;</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>&nbsp;</td><td align="center"><a href="../eclipselink_otlcg.pdf" title="PDF" target="_blank"><img src="../../dcommon/images/pdf_icon.png" style="padding-right:5px;border:0" alt="PDF"></a></td>
</tr>
</table>
</td>
</tr>
</table>
</div>
<!-- class="footer" -->
<div id="copyright">Copyright &copy; 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>
