Class OlrNetworkClient

java.lang.Object
io.debezium.connector.oracle.olr.client.OlrNetworkClient

public class OlrNetworkClient extends Object
An OpenLogReplicator network client that communicates using JSON streaming payloads.
Author:
Chris Cranford
  • Field Details

    • LOGGER

      private static final org.slf4j.Logger LOGGER
    • mapper

      private final com.fasterxml.jackson.databind.ObjectMapper mapper
    • hostName

      private final String hostName
    • port

      private final int port
    • sourceName

      private final String sourceName
    • channel

      private SocketChannel channel
    • skipToStartScn

      private boolean skipToStartScn
    • startScn

      private Scn startScn
    • prevScn

      private long prevScn
  • Constructor Details

    • OlrNetworkClient

      public OlrNetworkClient(OracleConnectorConfig connectorConfig)
      Create the OpenLogReplicator network client.
      Parameters:
      connectorConfig - connector configuration
  • Method Details

    • connect

      public boolean connect(Scn scn, Long index)
      Connect to the OpenLogReplicator process.
      Parameters:
      scn - the checkpoint commit to begin streaming from
      index - the checkpoint commit sequence index to begin streaming from
      Returns:
      true if the connection was established, false if the connection failed
    • disconnect

      public void disconnect()
      Disconnect from the OpenLogReplicator network service.
    • isConnected

      public boolean isConnected()
      Returns whether the network client is connected to the OpenLogReplicator process.
      Returns:
      true if the client is connected, false otherwise.
    • readEvent

      public StreamingEvent readEvent() throws OlrNetworkClientException
      A blocking call that reads the next streaming event from the OpenLogReplicator process.
      Returns:
      the streaming event
      Throws:
      OlrNetworkClientException
    • confirm

      public void confirm(Scn scn, Long index)
    • readNextEventWithStartScnSkip

      private StreamingEvent readNextEventWithStartScnSkip()
    • readNextEvent

      private StreamingEvent readNextEvent()
    • confirm

      private void confirm(long newScn, Long index)
    • startFrom

      private boolean startFrom(Scn scn, Long index)
    • createRequest

    • readResponse

    • read

      private ByteBuffer read()
    • send

      private int send(OpenLogReplicatorProtocol.RedoRequest request)
    • fillBuffer

      private void fillBuffer(ByteBuffer buffer)