ReplicationMessage object to a receiver. The
receiver is implemented by the ReplicationMessageReceive
class.
| Modifier and Type | Class and Description |
|---|---|
| private class | ReplicationMessageTransmit.
Thread that listens for messages from the slave. |
| Modifier and Type | Field and Description |
|---|---|
| private String | dbname
The name of the replicated database |
| private final int | DEFAULT_MESSAGE_RESPONSE_TIMEOUT
Number of millis to wait for a response message before timing out |
| private ReplicationMessage | receivedMsg
The message received from the slave as a response to sending a message. |
| private final Object | receiveSemaphore
Used to synchronize when waiting for a response message from the slave |
| private final SlaveAddress | slaveAddress
Contains the address (hostname and port number) of the slave to replicate to. |
| private SocketConnection | socketConn
Used to write/read message objects to/from a connection. |
| private volatile boolean | stopMessageReceiver
Whether or not to keep the message receiver thread alive. |
| Access | Constructor and Description |
|---|---|
| public | ReplicationMessageTransmit(SlaveAddress
contains the address (host name and port number)
of the slave to connect to. slaveAddress)Constructor initializes the slave address used in replication. |
| Modifier and Type | Method and Description |
|---|---|
| private void | brokerConnection(long
the master log instant, used to check
that the master and slave log files are in synch. If no chunks
of log records have been shipped to the slave yet, this is the
end position in the current log file. If a chunk of log has
been shipped, this is the instant of the log record shipped
last. Note that there is a difference! synchOnInstant)Used to send initiator messages to the slave and receive information about the compatibility of the slave with the master. |
| private void | |
| public void | initConnection(int
the amount of time for which the connection should
block before being established. timeout, long the master log instant, used to check
that the master and slave log files are in synch. If no chunks
of log records have been shipped to the slave yet, this is the
end position in the current log file. If a chunk of log has
been shipped, this is the instant of the log record shipped
last. Note that there is a difference! synchOnInstant)Used to create a |
| public void | sendMessage(ReplicationMessage
a message)ReplicationMessage object that contains
the message to be transmitted.Used to send a replication message to the slave. |
| public synchronized ReplicationMessage | Returns: the response messagea ReplicationMessage object that contains the message to
be transmitted. message)Send a replication message to the slave and return the message received as a response. |
| private void | |
| public void | |
| private boolean | verifyMessageType(ReplicationMessage message, int expectedType)
Used to parse a message received from the slave. |
| dbname | back to summary |
|---|---|
| private String dbname The name of the replicated database | |
| DEFAULT_MESSAGE_RESPONSE_TIMEOUT | back to summary |
|---|---|
| private final int DEFAULT_MESSAGE_RESPONSE_TIMEOUT Number of millis to wait for a response message before timing out | |
| receivedMsg | back to summary |
|---|---|
| private ReplicationMessage receivedMsg The message received from the slave as a response to sending a message. | |
| receiveSemaphore | back to summary |
|---|---|
| private final Object receiveSemaphore Used to synchronize when waiting for a response message from the slave | |
| slaveAddress | back to summary |
|---|---|
| private final SlaveAddress slaveAddress Contains the address (hostname and port number) of the slave to replicate to. | |
| socketConn | back to summary |
|---|---|
| private SocketConnection socketConn Used to write/read message objects to/from a connection. | |
| stopMessageReceiver | back to summary |
|---|---|
| private volatile boolean stopMessageReceiver Whether or not to keep the message receiver thread alive. Set to true to terminate the thread | |
| ReplicationMessageTransmit | back to summary |
|---|---|
| public ReplicationMessageTransmit(SlaveAddress slaveAddress) Constructor initializes the slave address used in replication.
| |
| brokerConnection | back to summary |
|---|---|
| private void brokerConnection(long synchOnInstant) throws IOException, StandardException, ClassNotFoundException Used to send initiator messages to the slave and receive information about the compatibility of the slave with the master. One message is used to check that the slave and master have the same software versions. A second message is used to check that the master and slave log files are in synch.
| |
| checkSocketConnection | back to summary |
|---|---|
| private void checkSocketConnection() throws IOException Verifies if the
| |
| initConnection | back to summary |
|---|---|
| public void initConnection(int timeout, long synchOnInstant) throws IOException, StandardException, ClassNotFoundException Used to create a
| |
| sendMessage | back to summary |
|---|---|
| public void sendMessage(ReplicationMessage message) throws IOException Used to send a replication message to the slave.
| |
| sendMessageWaitForReply | back to summary |
|---|---|
| public synchronized ReplicationMessage sendMessageWaitForReply(ReplicationMessage message) throws IOException, StandardException Send a replication message to the slave and return the message received as a response. Will only wait DEFAULT_MESSAGE_RESPONSE_TIMEOUT millis for the response message. If not received when the wait times out, no message is returned. The method is synchronized to guarantee that only one thread will be waiting for a response message at any time.
| |
| startMessageReceiverThread | back to summary |
|---|---|
| private void startMessageReceiverThread(String dbname) | |
| tearDown | back to summary |
|---|---|
| public void tearDown() throws IOException Tear down the network connection established with the other replication peer
| |
| verifyMessageType | back to summary |
|---|---|
| private boolean verifyMessageType(ReplicationMessage message, int expectedType) throws StandardException Used to parse a message received from the slave. If the message is an ack of the last shipped message, this method terminates quietly. Otherwise, it throws the exception received in the message from the slave describing why the last message could not be acked.
| |
| Modifier and Type | Field and Description |
|---|---|
| private final ReplicationMessage |
| Access | Constructor and Description |
|---|---|
| pack-priv |
| Modifier and Type | Method and Description |
|---|---|
| private ReplicationMessage | |
| public void | run()
Overrides java. Implements java. This method is run by the thread when it executes. |
| pongMsg | back to summary |
|---|---|
| private final ReplicationMessage pongMsg | |
| MasterReceiverThread | back to summary |
|---|---|
| pack-priv MasterReceiverThread(String dbname) | |
| readMessage | back to summary |
|---|---|
| private ReplicationMessage readMessage() throws ClassNotFoundException, IOException Used to read a replication message sent by the slave. Hangs until a message is received from the slave
| |
| run | back to summary |
|---|---|
| public void run() Overrides java. Implements java. Doc from java. This method is run by the thread when it executes. Subclasses of This method is not intended to be invoked directly. If this thread is a
platform thread created with a | |