blob: a6177280f805dd7588ff22f67fba44fe6f8da4fb [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>
<META NAME="ROBOTS" CONTENT="NOINDEX">
<link rel="canonical" href="https://ignite.apache.org/releases/1.0.0-rc3/javadoc/org/apache/ignite/cache/store/CacheStore.html" />
<!-- Generated by javadoc (version 1.7.0_21) on Tue Mar 24 10:27:31 MSK 2015 -->
<meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
<title>CacheStore (Ignite 1.0.0-RC3)</title>
<meta name="date" content="2015-03-24">
<link rel="stylesheet" type="text/css" href="../../../../../javadoc.css" title="Style">
<link rel='shortcut icon' href='http://gridgain.com/wp-content/uploads/2014/09/favicon.ico'/>
<link type='text/css' rel='stylesheet' href='http://gridgain.com/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/styles/shCore.css'/>
<link type='text/css' rel='stylesheet' href='http://gridgain.com/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/styles/shThemeDefault.css'/>
<script type='text/javascript' src='http://gridgain.com/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shCore.js'></script>
<script type='text/javascript' src='http://gridgain.com/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shLegacy.js'></script>
<script type='text/javascript' src='http://gridgain.com/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shBrushJava.js'></script>
<script type='text/javascript' src='http://gridgain.com/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shBrushPlain.js'></script>
<script type='text/javascript' src='http://gridgain.com/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shBrushJScript.js'></script>
<script type='text/javascript' src='http://gridgain.com/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shBrushBash.js'></script>
<script type='text/javascript' src='http://gridgain.com/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shBrushXml.js'></script>
<script type='text/javascript' src='http://gridgain.com/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shBrushScala.js'></script>
<script type='text/javascript' src='http://gridgain.com/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shBrushGroovy.js'></script>
<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"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="CacheStore (Ignite 1.0.0-RC3)";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><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 class="aboutLanguage"><em>Apache Ignite - In-Memory Data Fabric</em></div>
</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="strong">Prev Class</span></a></li>
<li><a href="../../../../../org/apache/ignite/cache/store/CacheStoreAdapter.html" title="class in org.apache.ignite.cache.store"><span class="strong">Next 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 Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All 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/hibernate/CacheHibernateBlobStore.html" title="class in org.apache.ignite.cache.store.hibernate">CacheHibernateBlobStore</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></dd>
</dl>
<hr>
<br>
<pre>public interface <span class="strong">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>#write(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="strong">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="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/ignite/cache/store/CacheStore.html#loadCache(org.apache.ignite.lang.IgniteBiInClosure, java.lang.Object...)">loadCache</a></strong>(<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="http://docs.oracle.com/javase/7/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 class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/ignite/cache/store/CacheStore.html#txEnd(boolean)">txEnd</a></strong>(boolean&nbsp;commit)</code>
<div class="block">Tells store to commit or rollback a transaction depending on the value of the <code>'commit'</code>
parameter.</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="http://docs.oracle.com/javase/7/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="strong">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="strong">Throws:</span></dt>
<dd><code>javax.cache.integration.CacheLoaderException</code> - If loading failed.</dd></dl>
</li>
</ul>
<a name="txEnd(boolean)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>txEnd</h4>
<pre>void&nbsp;txEnd(boolean&nbsp;commit)
throws javax.cache.integration.CacheWriterException</pre>
<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="strong">Parameters:</span></dt><dd><code>commit</code> - <code>True</code> if transaction should commit, <code>false</code> for rollback.</dd>
<dt><span class="strong">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><a href="#skip-navbar_bottom" title="Skip navigation links"></a><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 class="aboutLanguage"><em>Apache Ignite - In-Memory Data Fabric</em></div>
</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="strong">Prev Class</span></a></li>
<li><a href="../../../../../org/apache/ignite/cache/store/CacheStoreAdapter.html" title="class in org.apache.ignite.cache.store"><span class="strong">Next 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 Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All 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://incubator.apache.org/projects/ignite.html"><nobr>2015 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> <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script> </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>Apache Ignite Fabric</b> </td> <td>:&nbsp;&nbsp; ver. <strong>1.0.0-RC3</strong> </td> </tr> <tr style="padding: 0; margin: 0"> <td> <b>Release Date</b> </td> <td>:&nbsp;&nbsp; March 24 2015 </td> </tr> </tbody> </table> </td> </tr> </table></small></p>
<!--FOOTER--><script type='text/javascript'>SyntaxHighlighter.all();dp.SyntaxHighlighter.HighlightAll('code');</script>
</body>
</html>