blob: deb3ea5b660ab0e16354df7a6270752820cf0af2 [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>
<!-- Yandex.Metrika counter -->
<script type="text/javascript" >
(function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})
(window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
ym(72949126, "init", {
clickmap:true,
trackLinks:true,
accurateTrackBounce:true,
webvisor:true
});
</script>
<noscript><div><img src="https://mc.yandex.ru/watch/72949126" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
<!-- /Yandex.Metrika counter -->
<script type='text/javascript'>
window.__lo_site_id = 284467;
(function() {
var wa = document.createElement('script'); wa.type = 'text/javascript'; wa.async = true;
wa.src = 'https://d10lpsik1i8c69.cloudfront.net/w.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(wa, s);
})();
</script>
<link rel="canonical" href="https://ignite.apache.org/releases/latest/javadoc/org/apache/ignite/cache/store/CacheStore.html" />
<!-- Generated by javadoc (1.8.0_261) on Wed Dec 09 14:33:09 MSK 2020 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>CacheStore (Ignite 2.9.1)</title>
<meta name="date" content="2020-12-09">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<link rel='shortcut icon' href='https://ignite.apache.org/favicon.ico'/>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-61232409-1', 'auto');
ga('send', 'pageview');
</script></head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="CacheStore (Ignite 2.9.1)";
}
}
catch(err) {
}
//-->
var methods = {"i0":6,"i1":38};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],32:["t6","Deprecated 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="class-use/CacheStore.html">Use</a></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="../../../../../org/apache/ignite/cache/store/CacheLoadOnlyStoreAdapter.html" title="class in org.apache.ignite.cache.store"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/ignite/cache/store/CacheStoreAdapter.html" title="class in org.apache.ignite.cache.store"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/ignite/cache/store/CacheStore.html" target="_top">Frames</a></li>
<li><a href="CacheStore.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>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&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.apache.ignite.cache.store</div>
<h2 title="Interface CacheStore" class="title">Interface CacheStore<span class='angle_bracket'>&lt;</span>K,V<span class='angle_bracket'>&gt;</span></h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Superinterfaces:</dt>
<dd>javax.cache.integration.CacheLoader<span class='angle_bracket'>&lt;</span>K,V<span class='angle_bracket'>&gt;</span>, javax.cache.integration.CacheWriter<span class='angle_bracket'>&lt;</span>K,V<span class='angle_bracket'>&gt;</span></dd>
</dl>
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><a href="../../../../../org/apache/ignite/cache/store/jdbc/CacheAbstractJdbcStore.html" title="class in org.apache.ignite.cache.store.jdbc">CacheAbstractJdbcStore</a>, <a href="../../../../../org/apache/ignite/cache/store/jdbc/CacheJdbcBlobStore.html" title="class in org.apache.ignite.cache.store.jdbc">CacheJdbcBlobStore</a>, <a href="../../../../../org/apache/ignite/cache/store/jdbc/CacheJdbcPojoStore.html" title="class in org.apache.ignite.cache.store.jdbc">CacheJdbcPojoStore</a>, <a href="../../../../../org/apache/ignite/cache/store/CacheLoadOnlyStoreAdapter.html" title="class in org.apache.ignite.cache.store">CacheLoadOnlyStoreAdapter</a>, <a href="../../../../../org/apache/ignite/cache/store/CacheStoreAdapter.html" title="class in org.apache.ignite.cache.store">CacheStoreAdapter</a>, <a href="../../../../../org/apache/ignite/cache/store/cassandra/CassandraCacheStore.html" title="class in org.apache.ignite.cache.store.cassandra">CassandraCacheStore</a></dd>
</dl>
<hr>
<br>
<pre>public interface <span class="typeNameLabel">CacheStore<span class='angle_bracket'>&lt;</span>K,V<span class='angle_bracket'>&gt;</span></span>
extends javax.cache.integration.CacheLoader<span class='angle_bracket'>&lt;</span>K,V<span class='angle_bracket'>&gt;</span>, javax.cache.integration.CacheWriter<span class='angle_bracket'>&lt;</span>K,V<span class='angle_bracket'>&gt;</span></pre>
<div class="block">API for cache persistent storage for read-through and write-through behavior.
Persistent store is configured via <a href="../../../../../org/apache/ignite/configuration/CacheConfiguration.html#getCacheStoreFactory--"><code>CacheConfiguration.getCacheStoreFactory()</code></a>
configuration property. If not provided, values will be only kept in cache memory
or swap storage without ever being persisted to a persistent storage.
<p>
<a href="../../../../../org/apache/ignite/cache/store/CacheStoreAdapter.html" title="class in org.apache.ignite.cache.store"><code>CacheStoreAdapter</code></a> provides default implementation for bulk operations,
such as <code>CacheLoader.loadAll(Iterable)</code>,
<code>CacheWriter.writeAll(Collection)</code>, and <code>CacheWriter.deleteAll(Collection)</code>
by sequentially calling corresponding <code>CacheLoader.load(Object)</code>,
<code>CacheWriter.write(javax.cache.Cache.Entry)</code>, and <code>CacheWriter.delete(Object)</code>
operations. Use this adapter whenever such behaviour is acceptable. However
in many cases it maybe more preferable to take advantage of database batch update
functionality, and therefore default adapter implementation may not be the best option.
<p>
Provided implementations may be used for test purposes:
<ul>
<li><a href="../../../../../org/apache/ignite/cache/store/hibernate/CacheHibernateBlobStore.html"><code>CacheHibernateBlobStore</code></a></li>
<li><a href="../../../../../org/apache/ignite/cache/store/jdbc/CacheJdbcBlobStore.html" title="class in org.apache.ignite.cache.store.jdbc"><code>CacheJdbcBlobStore</code></a></li>
</ul>
<p>
All transactional operations of this API are provided with ongoing <a href="../../../../../org/apache/ignite/transactions/Transaction.html" title="interface in org.apache.ignite.transactions"><code>Transaction</code></a>,
if any. You can attach any metadata to it, e.g. to recognize if several operations belong
to the same transaction or not.
Here is an example of how attach a JDBC connection as transaction metadata:
<pre name="code" class="java">
Connection conn = tx.meta("some.name");
if (conn == null) {
conn = ...; // Get JDBC connection.
// Store connection in transaction metadata, so it can be accessed
// for other operations on the same transaction.
tx.addMeta("some.name", conn);
}
</pre></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/apache/ignite/cache/store/CacheStoreSession.html" title="interface in org.apache.ignite.cache.store"><code>CacheStoreSession</code></a></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== 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="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated 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/apache/ignite/cache/store/CacheStore.html#loadCache-org.apache.ignite.lang.IgniteBiInClosure-java.lang.Object...-">loadCache</a></span>(<a href="../../../../../org/apache/ignite/lang/IgniteBiInClosure.html" title="interface in org.apache.ignite.lang">IgniteBiInClosure</a><span class='angle_bracket'>&lt;</span><a href="../../../../../org/apache/ignite/cache/store/CacheStore.html" title="type parameter in CacheStore">K</a>,<a href="../../../../../org/apache/ignite/cache/store/CacheStore.html" title="type parameter in CacheStore">V</a><span class='angle_bracket'>&gt;</span>&nbsp;clo,
<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;args)</code>
<div class="block">Loads all values from underlying persistent storage.</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/apache/ignite/cache/store/CacheStore.html#sessionEnd-boolean-">sessionEnd</a></span>(boolean&nbsp;commit)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">Use <a href="../../../../../org/apache/ignite/cache/store/CacheStoreSessionListener.html" title="interface in org.apache.ignite.cache.store"><code>CacheStoreSessionListener</code></a> instead (refer to its JavaDoc for details).</span></div>
</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.javax.cache.integration.CacheLoader">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;javax.cache.integration.CacheLoader</h3>
<code>load, loadAll</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.javax.cache.integration.CacheWriter">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;javax.cache.integration.CacheWriter</h3>
<code>delete, deleteAll, write, writeAll</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="loadCache-org.apache.ignite.lang.IgniteBiInClosure-java.lang.Object...-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>loadCache</h4>
<pre>void&nbsp;loadCache(<a href="../../../../../org/apache/ignite/lang/IgniteBiInClosure.html" title="interface in org.apache.ignite.lang">IgniteBiInClosure</a><span class='angle_bracket'>&lt;</span><a href="../../../../../org/apache/ignite/cache/store/CacheStore.html" title="type parameter in CacheStore">K</a>,<a href="../../../../../org/apache/ignite/cache/store/CacheStore.html" title="type parameter in CacheStore">V</a><span class='angle_bracket'>&gt;</span>&nbsp;clo,
@Nullable
<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;args)
throws javax.cache.integration.CacheLoaderException</pre>
<div class="block">Loads all values from underlying persistent storage. Note that keys are not
passed, so it is up to implementation to figure out what to load. This method
is called whenever <a href="../../../../../org/apache/ignite/IgniteCache.html#loadCache-org.apache.ignite.lang.IgniteBiPredicate-java.lang.Object...-"><code>IgniteCache.loadCache(IgniteBiPredicate, Object...)</code></a>
method is invoked which is usually to preload the cache from persistent storage.
<p>
This method is optional, and cache implementation does not depend on this
method to do anything. Default implementation of this method in
<a href="../../../../../org/apache/ignite/cache/store/CacheStoreAdapter.html" title="class in org.apache.ignite.cache.store"><code>CacheStoreAdapter</code></a> does nothing.
<p>
For every loaded value method <a href="../../../../../org/apache/ignite/lang/IgniteBiInClosure.html#apply-E1-E2-"><code>IgniteBiInClosure.apply(Object, Object)</code></a>
should be called on the passed in closure. The closure will then make sure
that the loaded value is stored in cache.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>clo</code> - Closure for loaded values.</dd>
<dd><code>args</code> - Arguments passes into
<a href="../../../../../org/apache/ignite/IgniteCache.html#loadCache-org.apache.ignite.lang.IgniteBiPredicate-java.lang.Object...-"><code>IgniteCache.loadCache(IgniteBiPredicate, Object...)</code></a> method.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>javax.cache.integration.CacheLoaderException</code> - If loading failed.</dd>
</dl>
</li>
</ul>
<a name="sessionEnd-boolean-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>sessionEnd</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
void&nbsp;sessionEnd(boolean&nbsp;commit)
throws javax.cache.integration.CacheWriterException</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Use <a href="../../../../../org/apache/ignite/cache/store/CacheStoreSessionListener.html" title="interface in org.apache.ignite.cache.store"><code>CacheStoreSessionListener</code></a> instead (refer to its JavaDoc for details).</span></div>
<div class="block">Tells store to commit or rollback a transaction depending on the value of the <code>'commit'</code>
parameter.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>commit</code> - <code>True</code> if transaction should commit, <code>false</code> for rollback.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>javax.cache.integration.CacheWriterException</code> - If commit or rollback failed. Note that commit failure in some cases
may bring cache transaction into <a href="../../../../../org/apache/ignite/transactions/TransactionState.html#UNKNOWN"><code>TransactionState.UNKNOWN</code></a> which will
consequently cause all transacted entries to be invalidated.</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="class-use/CacheStore.html">Use</a></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="../../../../../org/apache/ignite/cache/store/CacheLoadOnlyStoreAdapter.html" title="class in org.apache.ignite.cache.store"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/ignite/cache/store/CacheStoreAdapter.html" title="class in org.apache.ignite.cache.store"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/ignite/cache/store/CacheStore.html" target="_top">Frames</a></li>
<li><a href="CacheStore.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>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&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><table width="100%" border="0" cellspacing=0 cellpadding=0 style="padding: 5px"> <tr> <td> <table style="padding-left: 0; margin: 0"> <tbody style="padding: 0; margin: 0"> <tr style="padding: 0; margin: 0"> <td> <a target=_blank href="https://ignite.apache.org"><nobr>2020 Copyright &#169; Apache Software Foundation</nobr></a> </td> </tr> </tbody> </table> </td> <td width="100%" align="right" valign="center"> <a href="https://twitter.com/ApacheIgnite" class="twitter-follow-button" data-show-count="false" data-size="large">Follow @ApacheIgnite</a> </td> </tr> <tr> <td colspan="2" valign="top" align="left"> <table style="padding-left: 0; margin: 0"> <tbody style="padding: 0; margin: 0"> <tr style="padding: 0; margin: 0"> <td> <b>Ignite Database and Caching Platform</b> </td> <td>:&nbsp;&nbsp; ver. <strong>2.9.1</strong> </td> </tr> <tr style="padding: 0; margin: 0"> <td> <b>Release Date</b> </td> <td>:&nbsp;&nbsp; December 9 2020 </td> </tr> </tbody> </table> </td> </tr> </table></small></p>
</body>
</html>