|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.continuent.tungsten.replicator.applier.JdbcPrefetcher
public class JdbcPrefetcher
Implements a JDBC prefetcher.
| Field Summary | |
|---|---|
protected Database |
conn
|
protected java.util.HashMap<java.lang.String,java.lang.String> |
currentOptions
|
protected java.lang.String |
currentSchema
|
protected long |
currentTimestamp
|
protected java.lang.String |
driver
|
protected long |
eventCount
|
protected java.util.regex.Pattern |
ignoreSessionPattern
|
protected java.lang.String |
ignoreSessionVars
|
protected int |
maxSQLLogLength
Maximum length of SQL string to log in case of an error. |
protected java.lang.String |
metadataSchema
|
protected java.lang.String |
password
|
protected ReplicatorRuntime |
runtime
|
protected java.sql.Statement |
statement
|
protected int |
taskId
|
protected java.lang.String |
url
|
protected java.lang.String |
user
|
| Constructor Summary | |
|---|---|
JdbcPrefetcher()
|
|
| Method Summary | |
|---|---|
protected Column |
addColumn(java.sql.ResultSet rs,
java.lang.String columnName)
Returns a new column definition. |
void |
apply(DBMSEvent event,
ReplDBMSHeader header,
boolean doCommit,
boolean doRollback)
Apply the proffered event to the replication target. |
protected void |
applyRowIdData(RowIdData data)
|
protected boolean |
applySessionVariables(java.util.List<ReplOption> options)
applyOptionsToStatement adds to the batch queries used to change the connection options, if needed and if possible (if the database support such a feature) |
protected void |
applySetTimestamp(java.lang.Long timestamp)
applySetTimestamp adds to the batch the query used to change the server timestamp, if needed and if possible (if the database support such a feature) |
protected void |
applyUseSchema(java.lang.String schema)
applySetUseSchema adds to the batch the query used to change the current schema where queries should be executed, if needed and if possible (if the database support such a feature) |
protected int |
bindValues(java.sql.PreparedStatement prepStatement,
java.util.ArrayList<OneRowChange.ColumnVal> values,
int startBindLoc,
java.util.ArrayList<OneRowChange.ColumnSpec> specs,
boolean skipNulls)
|
void |
commit()
Commits current open transaction to ensure data applied up to current point are durable. |
void |
configure(PluginContext context)
Complete plug-in configuration. |
protected int |
fillColumnNames(OneRowChange data)
Queries database for column names of a table that OneRowChange is affecting. |
Database |
getDatabase()
|
ReplDBMSHeader |
getLastEvent()
Return header information corresponding to last committed event. |
protected void |
logFailedStatementSQL(java.lang.String sql,
java.sql.SQLException ex)
Logs SQL into error log stream. |
protected boolean |
needNewSQLStatement(int row,
java.util.ArrayList<java.util.ArrayList<OneRowChange.ColumnVal>> keyValues)
|
protected void |
prefetchOneRowChangePrepared(OneRowChange oneRowChange)
|
protected void |
prefetchRowChangeData(RowChangeData data,
java.util.List<ReplOption> options)
|
protected void |
prefetchStatementData(StatementData data)
|
void |
prepare(PluginContext context)
Prepare plug-in for use. |
protected void |
printColumnSpec(java.lang.StringBuffer stmt,
java.util.ArrayList<OneRowChange.ColumnSpec> cols,
java.util.ArrayList<OneRowChange.ColumnVal> keyValues,
com.continuent.tungsten.replicator.applier.JdbcPrefetcher.PrintMode mode,
java.lang.String separator)
|
void |
release(PluginContext context)
Release all resources used by plug-in. |
void |
rollback()
Rolls back any current work. |
void |
setDriver(java.lang.String driver)
|
void |
setIgnoreSessionVars(java.lang.String ignoreSessionVars)
|
protected void |
setObject(java.sql.PreparedStatement prepStatement,
int bindLoc,
OneRowChange.ColumnVal value,
OneRowChange.ColumnSpec columnSpec)
|
void |
setPassword(java.lang.String password)
|
void |
setTaskId(int id)
Sets the ID of the task using this raw applier. |
void |
setUrl(java.lang.String url)
|
void |
setUser(java.lang.String user)
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
protected int taskId
protected ReplicatorRuntime runtime
protected java.lang.String driver
protected java.lang.String url
protected java.lang.String user
protected java.lang.String password
protected java.lang.String ignoreSessionVars
protected java.lang.String metadataSchema
protected Database conn
protected java.sql.Statement statement
protected java.util.regex.Pattern ignoreSessionPattern
protected java.lang.String currentSchema
protected long currentTimestamp
protected java.util.HashMap<java.lang.String,java.lang.String> currentOptions
protected long eventCount
protected int maxSQLLogLength
| Constructor Detail |
|---|
public JdbcPrefetcher()
| Method Detail |
|---|
public void setTaskId(int id)
setTaskId in interface RawApplierid - Task IDRawApplier.setTaskId(int)public void setDriver(java.lang.String driver)
public Database getDatabase()
public void setUrl(java.lang.String url)
public void setUser(java.lang.String user)
public void setPassword(java.lang.String password)
public void setIgnoreSessionVars(java.lang.String ignoreSessionVars)
protected void printColumnSpec(java.lang.StringBuffer stmt,
java.util.ArrayList<OneRowChange.ColumnSpec> cols,
java.util.ArrayList<OneRowChange.ColumnVal> keyValues,
com.continuent.tungsten.replicator.applier.JdbcPrefetcher.PrintMode mode,
java.lang.String separator)
keyValues - Is used to identify NULL values, in which case, if the
mode is ASSIGNMENT, "x IS ?" is constructed instead of "x =
?".
protected int fillColumnNames(OneRowChange data)
throws java.sql.SQLException
data -
java.sql.SQLException
protected Column addColumn(java.sql.ResultSet rs,
java.lang.String columnName)
throws java.sql.SQLException
rs - Metadata resultsetcolumnName - Name of the column to be added
java.sql.SQLException - if an error occurs
protected int bindValues(java.sql.PreparedStatement prepStatement,
java.util.ArrayList<OneRowChange.ColumnVal> values,
int startBindLoc,
java.util.ArrayList<OneRowChange.ColumnSpec> specs,
boolean skipNulls)
throws java.sql.SQLException
java.sql.SQLException
protected void setObject(java.sql.PreparedStatement prepStatement,
int bindLoc,
OneRowChange.ColumnVal value,
OneRowChange.ColumnSpec columnSpec)
throws java.sql.SQLException
java.sql.SQLException
protected void applyRowIdData(RowIdData data)
throws ReplicatorException
ReplicatorException
protected void prefetchStatementData(StatementData data)
throws ReplicatorException
ReplicatorException
protected void applySetTimestamp(java.lang.Long timestamp)
throws java.sql.SQLException
timestamp - the timestamp to be used
java.sql.SQLException - if an error occurs
protected void applyUseSchema(java.lang.String schema)
throws java.sql.SQLException
schema - the schema to be used
java.sql.SQLException - if an error occurs
protected boolean applySessionVariables(java.util.List<ReplOption> options)
throws java.sql.SQLException
options -
java.sql.SQLException
protected void logFailedStatementSQL(java.lang.String sql,
java.sql.SQLException ex)
sql - the sql statement to be loggedmaxSQLLogLength
protected boolean needNewSQLStatement(int row,
java.util.ArrayList<java.util.ArrayList<OneRowChange.ColumnVal>> keyValues)
protected void prefetchOneRowChangePrepared(OneRowChange oneRowChange)
throws ReplicatorException
ReplicatorException
protected void prefetchRowChangeData(RowChangeData data,
java.util.List<ReplOption> options)
throws ReplicatorException
ReplicatorException
public void apply(DBMSEvent event,
ReplDBMSHeader header,
boolean doCommit,
boolean doRollback)
apply in interface RawApplierevent - Event to be applied. If a DBMSEmptyEvent, just mark the
apply position.header - Header data corresponding to eventdoCommit - Boolean flag indicating whether this is the last part of
multi-part eventdoRollback - Boolean flag indicating whether this transaction should
rollbackRawApplier.apply(com.continuent.tungsten.replicator.event.DBMSEvent,
com.continuent.tungsten.replicator.event.ReplDBMSHeader, boolean,
boolean)
public void commit()
throws ReplicatorException,
java.lang.InterruptedException
commit in interface RawApplierReplicatorException - Thrown if applier processing fails
java.lang.InterruptedException - Thrown if the applier is interruptedRawApplier.commit()
public void rollback()
throws java.lang.InterruptedException
rollback in interface RawApplierjava.lang.InterruptedException - Thrown if the applier is interrupted.RawApplier.rollback()
public ReplDBMSHeader getLastEvent()
throws ReplicatorException
getLastEvent in interface RawApplierReplicatorException - Thrown if getting sequence number failsRawApplier.getLastEvent()
public void prepare(PluginContext context)
throws ReplicatorException
prepare in interface ReplicatorPluginReplicatorException - Thrown if resource allocation failsReplicatorPlugin.prepare(com.continuent.tungsten.replicator.plugin.PluginContext)
public void configure(PluginContext context)
throws ReplicatorException
configure in interface ReplicatorPluginReplicatorException - Thrown if configuration is incomplete or
failsReplicatorPlugin.configure(com.continuent.tungsten.replicator.plugin.PluginContext)
public void release(PluginContext context)
throws ReplicatorException
release in interface ReplicatorPluginReplicatorException - Thrown if resource deallocation failsReplicatorPlugin.release(com.continuent.tungsten.replicator.plugin.PluginContext)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||