
# PGReplicationStream
PGReplicationStream是GaussDB JDBC驱动中提供的一个API接口类，用于操作逻辑复制流。
#### PGReplicationStream的继承关系
PGReplicationStream是逻辑复制的接口，实现类是V3PGReplicationStream，该类位于org.postgresql.core.v3.replication Package中，该类的声明如下：
```
public class V3PGReplicationStream implements PGReplicationStream
```
#### 构造方法
public V3PGReplicationStream(CopyDual copyDual, LogSequenceNumber startLSN, long updateIntervalMs, ReplicationType replicationType)
#### 常用方法
表1PGReplicationConnection常用方法 
| 返回值               | 方法                                       | 描述                               | throws       |
|:---|:---|:---|:---|
| void              | close()                                  | 结束逻辑复制，并释放资源。                    | SQLException |
| void              | forceUpdateStatus()                      | 强制将上次接收、刷新和应用的 LSN 状态发送到后端。      | SQLException |
| LogSequenceNumber | getLastAppliedLSN()                      | 获取上次主机日志回放的LSN。                  | -            |
| LogSequenceNumber | getLastFlushedLSN()                      | 获取上次主机刷新的LSN，即当前逻辑解码推进的LSN。      | -            |
| LogSequenceNumber | getLastReceiveLSN()                      | 获取上次接收的LSN。                      | -            |
| boolean           | isClosed()                               | 复制流是否关闭。                         | -            |
| ByteBuffer        | read()                                   | 从后端读取下一条WAL记录。如果读取不到，该方法阻塞I/O读。  | SQLException |
| ByteBuffer        | readPending()                            | 从后端读取下一条WAL记录。如果读取不到，该方法不阻塞I/O读。 | SQLException |
| void              | setAppliedLSN(LogSequenceNumber applied) | 设置应用的LSN。                        | -            |
| void              | setFlushedLSN(LogSequenceNumber flushed) | 设置刷新的LSN，在下次更新时发送至后端，用于推进服务端LSN。 | -            |
   
