
# 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（针对LSN序复制槽）或CSN（针对CSN序复制槽）。                                                | -            |
| 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序复制槽）或CSN（针对CSN序复制槽），在下次更新时发送至后端，用于推进服务端LSN（针对LSN序复制槽）或CSN（针对CSN序复制槽）。 | -            |
   
