public class CacheJdbcStoreSessionListener extends Object implements CacheStoreSessionListener, LifecycleAware
For each session this listener gets a new JDBC connection
from provided DataSource and commits (or rolls
back) it when session ends.
The connection is saved as a store session
attachment.
The listener guarantees that the connection will be
available for any store operation. If there is an
ongoing cache transaction, all operations within this
transaction will be committed or rolled back only when
the session ends.
As an example, here is how the CacheWriter.write(Cache.Entry)
method can be implemented if CacheJdbcStoreSessionListener
is configured:
private static class Store extends CacheStoreAdapter<Integer, Integer> {
@CacheStoreSessionResource
private CacheStoreSession ses;
@Override public void write(Cache.Entry<? extends Integer, ? extends Integer> entry) throws CacheWriterException {
// Get connection from the current session.
Connection conn = ses.attachment();
// Execute update SQL query.
try {
conn.createStatement().executeUpdate("...");
}
catch (SQLException e) {
throw new CacheWriterException("Failed to update the store.", e);
}
}
}
JDBC connection will be automatically created by the listener
at the start of the session and closed when it ends.| Constructor and Description |
|---|
CacheJdbcStoreSessionListener() |
| Modifier and Type | Method and Description |
|---|---|
DataSource |
getDataSource()
Gets data source.
|
void |
onSessionEnd(CacheStoreSession ses,
boolean commit)
On session end callback.
|
void |
onSessionStart(CacheStoreSession ses)
On session start callback.
|
void |
setDataSource(DataSource dataSrc)
Sets data source.
|
void |
start()
Starts grid component, called on grid start.
|
void |
stop()
Stops grid component, called on grid shutdown.
|
public void setDataSource(DataSource dataSrc)
This is a required parameter. If data source is not set, exception will be thrown on startup.
dataSrc - Data source.public DataSource getDataSource()
public void start()
throws IgniteException
start in interface LifecycleAwareIgniteException - If failed.public void stop()
throws IgniteException
stop in interface LifecycleAwareIgniteException - If failed.public void onSessionStart(CacheStoreSession ses)
Called before any store operation within a session is invoked.
onSessionStart in interface CacheStoreSessionListenerses - Current session.public void onSessionEnd(CacheStoreSession ses, boolean commit)
Called after all operations within a session are invoked.
onSessionEnd in interface CacheStoreSessionListenerses - Current session.commit - True if persistence store transaction
should commit, false for rollback.
Follow @ApacheIgnite
Ignite Fabric : ver. 1.5.11 Release Date : April 8 2016