Class ReplicationStreamBuilder

java.lang.Object
org.postgresql.replication.fluent.ReplicationStreamBuilder
All Implemented Interfaces:
ChainedStreamBuilder

public class ReplicationStreamBuilder extends Object implements ChainedStreamBuilder
  • Field Details

  • Constructor Details

    • ReplicationStreamBuilder

      public ReplicationStreamBuilder(BaseConnection connection)
      Parameters:
      connection - not null connection with that will be associate replication
  • Method Details

    • logical

      public ChainedLogicalStreamBuilder logical()
      Description copied from interface: ChainedStreamBuilder
      Create logical replication stream that decode raw wal logs by output plugin to logical form. Default about logical decoding you can see by following link Logical Decoding Concepts .

      Example usage:

        
      
         PGReplicationStream stream =
             pgConnection
                 .getReplicationAPI()
                 .replicationStream()
                 .logical()
                 .withSlotName("test_decoding")
                 .withSlotOption("include-xids", false)
                 .withSlotOption("skip-empty-xacts", true)
                 .start();
      
         while (true) {
           ByteBuffer buffer = stream.read();
           //process logical changes
         }
      
        
      
      Specified by:
      logical in interface ChainedStreamBuilder
      Returns:
      not null fluent api
    • physical

      public ChainedPhysicalStreamBuilder physical()
      Description copied from interface: ChainedStreamBuilder
      Create physical replication stream for process wal logs in binary form.

      Example usage:

        
      
         LogSequenceNumber lsn = getCurrentLSN();
      
         PGReplicationStream stream =
             pgConnection
                 .getReplicationAPI()
                 .replicationStream()
                 .physical()
                 .withStartPosition(lsn)
                 .withSlotName("test_decoding")
                 .withSlotOption("include-xids", false)
                 .withSlotOption("skip-empty-xacts", true)
                 .withStatusInterval(5, TimeUnit.SECONDS)
                 .withAutomaticFlush(true)
                 .start();
      
         while (true) {
           ByteBuffer buffer = stream.read();
           //process binary WAL logs
         }
      
        
      
      Specified by:
      physical in interface ChainedStreamBuilder
      Returns:
      not null fluent api