|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectjavax.management.NotificationBroadcasterSupport
com.continuent.tungsten.replicator.management.OpenReplicatorManager
public class OpenReplicatorManager
This class provides overall management for the replication and is the starting class for a Tungsten Replicator instance. Replication logic is encapsulated in a replicator plugin.
| Field Summary | |
|---|---|
static int |
FLUSH
|
static int |
MAJOR
|
static int |
MINOR
|
static int |
REPL
|
static java.lang.String |
SUFFIX
|
| Fields inherited from interface com.continuent.tungsten.replicator.management.OpenReplicatorManagerMBean |
|---|
signalConfigured, signalConsistencyFail, signalError, signalOfflineReached, signalRestored, signalShutdown, signalSynced |
| Constructor Summary | |
|---|---|
OpenReplicatorManager(java.lang.String serviceName)
Creates a new ReplicatorManager object |
|
| Method Summary | |
|---|---|
void |
advertiseInternal()
|
protected java.lang.String |
assertPropertyDefault(java.lang.String key,
java.lang.String value)
Ensures that a required property has a default if unspecified. |
protected java.lang.String |
assertPropertySet(java.lang.String key)
|
java.lang.String |
backup(java.lang.String backupAgentName,
java.lang.String storageAgentName,
long timeout)
Spawns a backup of the database and optionally waits for completion. |
java.util.Map<java.lang.String,java.lang.String> |
capabilities()
Gets the replicator capabilities. |
void |
clearDynamicProperties()
Clear dynamic properties. |
void |
configure(java.util.Map<java.lang.String,java.lang.String> props)
Re-read configuration properties. |
void |
configure(TungstenProperties tp)
Local wrapper of configure to help with unit testing. |
int |
consistencyCheck(java.lang.String method,
java.lang.String schemaName,
java.lang.String tableName,
int rowOffset,
int rowLimit)
Initiates consistency check transaction on a given table. |
DynamicMBeanHelper |
createHelper()
Returns a helper that supplies MBean metadata. |
protected void |
doConfigure()
Process configuration properties and instantiate/configure all plug-ins. |
protected boolean |
doHeartbeat(TungstenProperties props)
Implements a heartbeat call. |
java.lang.String |
flush(long timeout)
Creates a flush event, which in turn causes us to wait for the database to synchronize with THL. |
java.util.List<java.util.Map<java.lang.String,java.lang.String>> |
getClients()
Returns clients (slaves) of this server. |
java.lang.String |
getClusterName()
Gets the cluster name for this replication service |
static TungstenProperties |
getConfigurationProperties(java.lang.String serviceName)
|
java.util.concurrent.CountDownLatch |
getDoneLatch()
Returns the doneLatch value. |
java.util.Map<java.lang.String,java.lang.String> |
getDynamicProperties()
Return a copy of current dynamic properties. |
com.continuent.tungsten.fsm.event.EventDispatcher |
getEventDispatcher()
Returns the event dispatcher for reporting interesting events. |
java.lang.Object |
getExtensionMBean(java.lang.String name)
Returns the JMX API for a named extension. |
static java.lang.String |
getHostName()
Deprecated. Not used by multi-service Replicator any more. See ReplicationServiceManager.getHostName(TungstenProperties) |
java.lang.String |
getMasterConnectUri()
Returns the master remote URI to which this replicator connects when operating as a slave.stop |
int |
getMasterListenPort()
Returns the listen port used by a master pipeline |
java.lang.String |
getMasterListenUri()
Returns the URI on which this master listens when operating as a slave. |
java.lang.String |
getMaxSeqNo()
Returns the highest applied sequence number in the local transaction history log or -1 if log is not operating. |
java.lang.String[] |
getMinMaxSeqNo()
Returns the lowest and the highest sequence numbers in the local transaction history log or -1 if log is not operating. |
java.lang.String |
getMinSeqNo()
Returns the lowest sequence number in the local transaction history log or -1 if log is not operating. |
java.lang.String |
getPendingError()
Returns description of last error if we are in OFFLINE:ERROR state or null if no error is pending. |
java.lang.String |
getPendingErrorCode()
|
java.lang.String |
getPendingExceptionMessage()
Returns message from exception that provoked the last error |
java.lang.String |
getRmiHost()
Returns RMI port. |
int |
getRmiPort()
Returns the rmiPort value. |
java.lang.String |
getRole()
Returns the current replicator role. |
java.lang.String |
getServiceName()
Gets the service name for this replication service |
java.lang.String |
getSimpleServiceName()
Gets the simple name for this replication service |
java.lang.String |
getSiteName()
Gets the site name for this replication service |
java.lang.String |
getSourceId()
Returns current instance unique source identifier. |
java.lang.String |
getState()
Returns the current replicator state. |
long |
getStateChangeTimeMillis()
|
TungstenProperties |
getStatus()
Returns detailed status in a single call. |
double |
getTimeInStateSeconds()
|
double |
getUptimeSeconds()
|
java.lang.Boolean |
getUseSSLConnection()
Returns true if the Replicator uses SSL connections. |
java.lang.String |
getVersion()
Returns the replicator product version. |
void |
heartbeat(java.util.Map<java.lang.String,java.lang.String> controlParams)
Inserts a heartbeat event. |
boolean |
isAlive()
Returns true so that clients can confirm connection liveness. |
protected boolean |
isConsistencyFailureStop()
|
java.util.List<java.lang.String> |
listExtensionMBeans()
Returns a list of the names of currently defined extension MBeans. |
protected OpenReplicatorPlugin |
loadAndConfigurePlugin(java.lang.String prefix,
java.lang.String name)
Generic code to load and configure a plugin. |
void |
offline()
Sends the replicator into the offline state. |
void |
offlineDeferred(java.util.Map<java.lang.String,java.lang.String> controlParams)
Issues a request to go offline at a particular event or sequence number. |
java.lang.Object |
onCompletion(com.continuent.tungsten.fsm.core.Event event,
com.continuent.tungsten.fsm.event.EventStatus status)
Log events as they are processed in the replicator state machine. |
void |
online()
Puts the replicator into the online state using defaults for all control parameters. |
void |
online2(java.util.Map<java.lang.String,java.lang.String> controlParams)
Puts the replicator into the online state. |
java.util.Map<java.lang.String,java.lang.String> |
properties(java.lang.String key)
Return a copy of current properties. |
boolean |
provision(java.lang.String replicatorUri,
long timeout)
Provisions current database from a donor. |
int |
purge(java.util.Map<java.lang.String,java.lang.String> controlParams)
Invoke purge on underlying replicator plugin. |
void |
registerMBean(java.lang.Object mbean,
java.lang.Class<?> mbeanClass,
java.lang.String name)
Registers a JMX MBean from a lower-level service. |
java.lang.String |
restore(java.lang.String uri,
long timeout)
Spawns a restore of the database and optionally waits for completion. |
void |
setDoneLatch(java.util.concurrent.CountDownLatch doneLatch)
Sets the doneLatch value. |
void |
setRmiHost(java.lang.String rmiHost)
Sets RMI host. |
void |
setRmiPort(int rmiPort)
Sets the rmiPort value. |
void |
setRole(java.lang.String role,
java.lang.String uri)
Sets the replicator role. |
void |
signal(int signal,
java.lang.String msg)
Notification signaling methods. |
void |
start(boolean forceOffline)
Start Replicator Node Manager JMX service. |
void |
stateChanged(com.continuent.tungsten.fsm.core.Entity entity,
com.continuent.tungsten.fsm.core.State oldState,
com.continuent.tungsten.fsm.core.State newState)
Log state changes coming from the state machine. |
java.util.Map<java.lang.String,java.lang.String> |
status()
Gets status variables from replicator. |
java.util.List<java.util.Map<java.lang.String,java.lang.String>> |
statusList(java.lang.String name)
Returns a list of status instances for a particular list of items. |
void |
stop()
Stop Replicator Node Manager JMX service. |
java.lang.String |
transitioningTo()
|
boolean |
waitForAppliedSequenceNumber(java.lang.String seqno,
long timeout)
Wait for a particular event to be applied on the slave. |
boolean |
waitForState(java.lang.String stateName,
long timeout)
Waits for replicator to achieve a particular state. |
| Methods inherited from class javax.management.NotificationBroadcasterSupport |
|---|
addNotificationListener, getNotificationInfo, handleNotification, removeNotificationListener, removeNotificationListener, sendNotification |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final int MAJOR
public static final int MINOR
public static final java.lang.String SUFFIX
public static final int REPL
public static final int FLUSH
| Constructor Detail |
|---|
public OpenReplicatorManager(java.lang.String serviceName)
throws java.lang.Exception
ReplicatorManager object
serviceName - name of the current replication service
java.lang.Exception| Method Detail |
|---|
public void advertiseInternal()
protected boolean isConsistencyFailureStop()
public void stateChanged(com.continuent.tungsten.fsm.core.Entity entity,
com.continuent.tungsten.fsm.core.State oldState,
com.continuent.tungsten.fsm.core.State newState)
stateChanged in interface com.continuent.tungsten.fsm.core.StateChangeListener
public java.lang.Object onCompletion(com.continuent.tungsten.fsm.core.Event event,
com.continuent.tungsten.fsm.event.EventStatus status)
throws java.lang.InterruptedException
onCompletion in interface com.continuent.tungsten.fsm.event.EventCompletionListenerjava.lang.InterruptedExceptionpublic com.continuent.tungsten.fsm.event.EventDispatcher getEventDispatcher()
getEventDispatcher in interface OpenReplicatorContextOpenReplicatorContext.getEventDispatcher()
public void registerMBean(java.lang.Object mbean,
java.lang.Class<?> mbeanClass,
java.lang.String name)
registerMBean in interface OpenReplicatorContextOpenReplicatorContext.registerMBean(Object,
Class, String)public boolean isAlive()
OpenReplicatorManagerMBean
isAlive in interface OpenReplicatorManagerMBeanpublic java.lang.String getVersion()
OpenReplicatorManagerMBean
getVersion in interface OpenReplicatorManagerMBeanpublic java.lang.String getSiteName()
OpenReplicatorManagerMBean
getSiteName in interface OpenReplicatorManagerMBeanpublic java.lang.String getClusterName()
OpenReplicatorManagerMBean
getClusterName in interface OpenReplicatorManagerMBeanpublic java.lang.String getSimpleServiceName()
OpenReplicatorManagerMBean
getSimpleServiceName in interface OpenReplicatorManagerMBeanpublic java.lang.String getServiceName()
OpenReplicatorManagerMBean
getServiceName in interface OpenReplicatorManagerMBeanpublic java.lang.String getSourceId()
OpenReplicatorManagerMBean
getSourceId in interface OpenReplicatorManagerMBeanpublic java.lang.String getMasterConnectUri()
OpenReplicatorManagerMBean
getMasterConnectUri in interface OpenReplicatorManagerMBeanpublic java.lang.String getMasterListenUri()
OpenReplicatorManagerMBean
getMasterListenUri in interface OpenReplicatorManagerMBean
public java.lang.Boolean getUseSSLConnection()
throws java.net.URISyntaxException
OpenReplicatorManagerMBean
getUseSSLConnection in interface OpenReplicatorManagerMBeanjava.net.URISyntaxException
public java.util.List<java.util.Map<java.lang.String,java.lang.String>> getClients()
throws java.lang.Exception
OpenReplicatorManagerMBean
getClients in interface OpenReplicatorManagerMBeanjava.lang.Exceptionpublic java.lang.String getRole()
OpenReplicatorManagerMBean
getRole in interface OpenReplicatorManagerMBeanpublic double getUptimeSeconds()
public java.lang.String getState()
OpenReplicatorManagerMBean
getState in interface OpenReplicatorManagerMBeanpublic java.lang.String transitioningTo()
public double getTimeInStateSeconds()
public long getStateChangeTimeMillis()
public java.lang.String getPendingErrorCode()
public java.lang.String getPendingError()
OpenReplicatorManagerMBean
getPendingError in interface OpenReplicatorManagerMBeanpublic java.lang.String getPendingExceptionMessage()
OpenReplicatorManagerMBean
getPendingExceptionMessage in interface OpenReplicatorManagerMBean
public java.lang.String getMaxSeqNo()
throws java.lang.Exception
OpenReplicatorManagerMBean
getMaxSeqNo in interface OpenReplicatorManagerMBeanjava.lang.Exception
public java.lang.String[] getMinMaxSeqNo()
throws java.lang.Exception
OpenReplicatorManagerMBean
getMinMaxSeqNo in interface OpenReplicatorManagerMBeanjava.lang.Exception
public java.lang.String getMinSeqNo()
throws java.lang.Exception
OpenReplicatorManagerMBean
getMinSeqNo in interface OpenReplicatorManagerMBeanjava.lang.Exception
public void configure(java.util.Map<java.lang.String,java.lang.String> props)
throws java.lang.Exception
configure in interface OpenReplicatorManagerMBeanprops - A map instance or null to reread local file
java.lang.Exception
public void clearDynamicProperties()
throws java.lang.Exception
clearDynamicProperties in interface OpenReplicatorManagerMBeanjava.lang.ExceptionOpenReplicatorManagerMBean.clearDynamicProperties()
public java.util.Map<java.lang.String,java.lang.String> properties(java.lang.String key)
throws java.lang.Exception
properties in interface OpenReplicatorManagerMBeankey - optional key of a single property
java.lang.Exception
public java.util.Map<java.lang.String,java.lang.String> getDynamicProperties()
throws java.lang.Exception
getDynamicProperties in interface OpenReplicatorManagerMBeanjava.lang.ExceptionOpenReplicatorManagerMBean.getDynamicProperties()
public void setRole(java.lang.String role,
java.lang.String uri)
throws java.lang.Exception
setRole in interface OpenReplicatorManagerMBeanrole - The new replicator role; must be 'slave', 'master', or
'standby'uri - Optional uri to identify master or slave.
java.lang.ExceptionOpenReplicatorManagerMBean.setRole(java.lang.String,
java.lang.String)
public java.util.Map<java.lang.String,java.lang.String> status()
throws java.lang.Exception
status in interface OpenReplicatorManagerMBeanjava.lang.ExceptionOpenReplicatorManagerMBean.status()
public TungstenProperties getStatus()
throws java.lang.Exception
getStatus in interface OpenReplicatorManagerMBeanjava.lang.ExceptionOpenReplicatorManagerMBean.getStatus()
public java.util.List<java.util.Map<java.lang.String,java.lang.String>> statusList(java.lang.String name)
throws java.lang.Exception
statusList in interface OpenReplicatorManagerMBeanname - Name of the status list. 'tasks' is supported by the native
Tungsten replicator plugin.
java.lang.ExceptionOpenReplicatorManagerMBean.statusList(java.lang.String)
public void start(boolean forceOffline)
throws java.lang.Exception
start in interface OpenReplicatorManagerMBeanforceOffline - true to prevent the replicator from putting its
replication services online (if auto-enable is set to true)
java.lang.Exception - Thrown if start-up fails. This includes failure to go
online if the replicator is auto-enabled.
public void stop()
throws java.lang.Exception
stop in interface OpenReplicatorManagerMBeanjava.lang.Exception
public void online()
throws java.lang.Exception
online in interface OpenReplicatorManagerMBeanjava.lang.ExceptionOpenReplicatorManagerMBean.online()
public void online2(java.util.Map<java.lang.String,java.lang.String> controlParams)
throws java.lang.Exception
| Name | Description | Default |
| initEventId | Sets initial native event ID at which to start extraction, overriding value from the last event extracted | Replication starts at either last event ID extracted or, if there is none, the current event ID | skipApplyEvents | Number of events to skip applying at startup | 0 | toEventId | Replicate up to the indicated event ID | None | toSeqno | Replicate up to the indicated sequence number | None |
OpenReplicatorManagerMBean.waitForState(String, long) call to wait
synchronously for the replicator to go fully online.
online2 in interface OpenReplicatorManagerMBeancontrolParams - 0 or more control parameters expressed as name-value
pairs
java.lang.ExceptionOpenReplicatorManagerMBean.online()
public void offline()
throws java.lang.Exception
offline in interface OpenReplicatorManagerMBeanjava.lang.ExceptionOpenReplicatorManagerMBean.offline()
public void offlineDeferred(java.util.Map<java.lang.String,java.lang.String> controlParams)
throws java.lang.Exception
| Name | Description | Parameter | Default | atEventId | Go offline at the requested event | An event ID in native format | None | atHeartbeat | Go offline at the next heartbeat event. | A heartbeat name or * to select any heartbeat | * | atSeqno | Go offline at the indicated sequence number | A valid sequence number | None | atTransaction | Go offline cleanly at the next transaction. This is the best way to take a replicator offline as it ensures the replicator can reload backups when parallel apply is in effect or make change to parallel apply parameters | Insert any value | None | atTimestamp | Go offline cleanly at the next transaction. This is the best way to take a replicator offline as it ensures the replicator can reload backups when parallel apply is in effect or make change to parallel apply parameters | A timestamp String in yyyy-MM-dd HH:mm:ss format | None |
offlineDeferred in interface OpenReplicatorManagerMBeancontrolParams - 0 or more control parameters expressed as name-value
pairs
java.lang.ExceptionOpenReplicatorManagerMBean.online()
public java.lang.String flush(long timeout)
throws java.lang.Exception
flush in interface OpenReplicatorManagerMBeantimeout - Number of seconds to wait. 0 is indefinite.
java.lang.Exception - Thrown if we timeout or are canceledOpenReplicatorManagerMBean.flush(long)
public int purge(java.util.Map<java.lang.String,java.lang.String> controlParams)
throws java.lang.Exception
purge in interface OpenReplicatorManagerMBeancontrolParams - 0 or more control parameters expressed as name-value
pairs
java.lang.Exception - Thrown if we timeout or are canceledOpenReplicatorManagerMBean.purge(java.util.Map)
public void heartbeat(java.util.Map<java.lang.String,java.lang.String> controlParams)
throws java.lang.Exception
heartbeat in interface OpenReplicatorManagerMBeancontrolParams - A map instance containing heartbeat parameters
java.lang.ExceptionOpenReplicatorManagerMBean.heartbeat(Map)
public boolean waitForState(java.lang.String stateName,
long timeout)
throws java.lang.Exception
waitForState in interface OpenReplicatorManagerMBeanstateName - Name of state on which to wait. This can be a parent state
name--"OFFLINE" will also detect "OFFLINE:NORMAL" and
"OFFLINE:ERROR".timeout - Number of seconds to wait. 0 is indefinite.
java.lang.ExceptionOpenReplicatorManagerMBean.waitForState(java.lang.String,
long)
public boolean waitForAppliedSequenceNumber(java.lang.String seqno,
long timeout)
throws java.lang.Exception
waitForAppliedSequenceNumber in interface OpenReplicatorManagerMBeanseqno - Id of the event to wait fortimeout - Number of seconds to wait. 0 is indefinite.
java.lang.Exception - if there is a timeout or we are canceledOpenReplicatorManagerMBean.waitForAppliedSequenceNumber(java.lang.String,
long)
public java.lang.String backup(java.lang.String backupAgentName,
java.lang.String storageAgentName,
long timeout)
throws java.lang.Exception
backup in interface OpenReplicatorManagerMBeanbackupAgentName - Name of the backup agent to use or null to use the
default backupstorageAgentName - Name of the storage agent to use or null to use
the default storagetimeout - Number of seconds to wait. 0 is indefinite, negative means
no wait.
java.lang.Exception - if there is a backup failureOpenReplicatorManagerMBean.backup(java.lang.String,
java.lang.String, long)
public java.lang.String restore(java.lang.String uri,
long timeout)
throws java.lang.Exception
restore in interface OpenReplicatorManagerMBeanuri - URI of the backup to loadtimeout - Number of seconds to wait. 0 is indefinite, negative means
no wait.
java.lang.Exception - if there is a restore failureOpenReplicatorManagerMBean.restore(java.lang.String,
long)
public DynamicMBeanHelper createHelper()
throws java.lang.Exception
createHelper in interface OpenReplicatorManagerMBeanjava.lang.ExceptioncreateHelper()
public java.lang.Object getExtensionMBean(java.lang.String name)
throws java.lang.Exception
getExtensionMBean in interface OpenReplicatorManagerMBeanjava.lang.ExceptioncreateHelper()
public java.util.List<java.lang.String> listExtensionMBeans()
throws java.lang.Exception
listExtensionMBeans in interface OpenReplicatorManagerMBeanjava.lang.ExceptionOpenReplicatorManagerMBean.listExtensionMBeans()
public boolean provision(java.lang.String replicatorUri,
long timeout)
throws java.lang.Exception
provision in interface OpenReplicatorManagerMBeanreplicatorUri - URI of donor replicatortimeout - Number of seconds to wait. 0 is indefinite, negative means
no wait.
java.lang.Exception - if there is a provisioning failureOpenReplicatorManagerMBean.provision(java.lang.String,
long)
public int consistencyCheck(java.lang.String method,
java.lang.String schemaName,
java.lang.String tableName,
int rowOffset,
int rowLimit)
throws java.lang.Exception
consistencyCheck in interface OpenReplicatorManagerMBeanmethod - consistency check method to useschemaName - name of the table schematableName - name of the table, if null all tables in schema are
checkedrowOffset - start consistency check from this row (numeration starts
with 0). If negative - whole table is checked.rowLimit - limit consistency check to that many rows. If rowOffset
is negative this is ignored.
java.lang.ExceptionOpenReplicatorManagerMBean.consistencyCheck(java.lang.String,
java.lang.String, java.lang.String, int, int)
public void signal(int signal,
java.lang.String msg)
throws java.lang.Exception
signal in interface OpenReplicatorManagerMBeansignal - one of signal* strings listed in this interfacemsg - additional message passed along the signal
java.lang.ExceptionOpenReplicatorManagerMBean.signal(int,
java.lang.String)
public java.util.Map<java.lang.String,java.lang.String> capabilities()
throws java.lang.Exception
capabilities in interface OpenReplicatorManagerMBeanjava.lang.ExceptionOpenReplicatorManagerMBean.capabilities()
protected java.lang.String assertPropertyDefault(java.lang.String key,
java.lang.String value)
protected java.lang.String assertPropertySet(java.lang.String key)
throws ReplicatorException
ReplicatorException
protected OpenReplicatorPlugin loadAndConfigurePlugin(java.lang.String prefix,
java.lang.String name)
throws ReplicatorException
ReplicatorException
protected void doConfigure()
throws ReplicatorException
ReplicatorException - Thrown if configuration fails
public void configure(TungstenProperties tp)
throws java.lang.Exception
java.lang.Exception
protected boolean doHeartbeat(TungstenProperties props)
throws java.lang.Exception
java.lang.Exception@Deprecated public static java.lang.String getHostName()
ReplicationServiceManager.getHostName(TungstenProperties)
public int getMasterListenPort()
getMasterListenPort in interface OpenReplicatorManagerMBeanpublic java.util.concurrent.CountDownLatch getDoneLatch()
public void setDoneLatch(java.util.concurrent.CountDownLatch doneLatch)
doneLatch - The doneLatch to set.public java.lang.String getRmiHost()
public void setRmiHost(java.lang.String rmiHost)
public int getRmiPort()
public void setRmiPort(int rmiPort)
rmiPort - The rmiPort to set.
public static TungstenProperties getConfigurationProperties(java.lang.String serviceName)
throws ReplicatorException
ReplicatorException
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||