pg_settings psql和npgsql之间的差异

问题描述 投票:1回答:1

连接到第11页实例并执行时

select setting, source from pg_settings
where name='tcp_keepalives_interval';

通过psql连接和使用using Npgsql;的脚本之间我得到了两个不同的响应

命令行psql客户端返回

0   | default

而Npgsql脚本将返回

75  | default

75匹配net.ipv4.tcp_keepalive_intvl但我仍然预期0。

造成这种差异的原因是什么?如何在C#中使用Npgsql来解决这个问题?

postgresql psql npgsql
1个回答
0
投票

看着我的水晶球,我看到您的数据库服务器不在Windows上,并且psql会话正在数据库服务器上运行。您的psql会话通过UNIX套接字(local连接)连接。

The documentation说(强调我的):

keepalives_count

控制在客户端与服务器的连接被视为死亡之前可能丢失的TCP Keepalive的数量。值为零使用系统默认值。对于通过Unix域套接字建立的连接,或者如果禁用了keepalive,将忽略此参数。它仅在TCP_KEEPCNT或等效套接字选项可用的系统上受支持;在其他系统上,它没有任何影响。

如果你通过TCP连接psql,你也应该看到75。

© www.soinside.com 2019 - 2024. All rights reserved.