Agreed but why is there a message specification for it describe in the documentation and it ask to client reply back if a particular *bit* is set.(1 means that the client should reply to this message as soon as possible, to avoid a timeout disconnect. 0 otherwise)
Primary keepalive message (B) Byte1('k') Identifies the message as a sender keepalive. Int64 The current end of WAL on the server. Int64 The server's system clock at the time of transmission, as microseconds since midnight on 2000-01-01. Byte1 1 means that the client should reply to this message as soon as possible, to avoid a timeout disconnect. 0 otherwise. The receiving process can send replies back to the sender at any time, using one of the following message formats (also in the payload of a CopyData message): On Sun, Sep 15, 2019 at 7:39 PM Michael Loftis <mlof...@wgops.com> wrote: > > > On Fri, Sep 13, 2019 at 07:12 Virendra Negi <viren.n...@teliax.com> wrote: > >> Implemented the Logical Streaming Replication thing are working fine I >> see the XLogData message appearing and I'm able to parse them. >> >> But I haven't see any "Primary Keepalive message" yet. I had tried >> setting the *tcp_keepalive_interval*, *tcp_keepalives_idle* both from >> client runtime paramter and well as from postgresql.conf still no clue of >> it. >> >> Any information around it? >> > > Both of these options are not in the Pg protocol. They are within the OS > TCP stack and are not visible to the applications at all. > >> >> >> >> -- > > "Genius might be described as a supreme capacity for getting its possessors > into trouble of all kinds." > -- Samuel Butler >